diff options
| -rw-r--r-- | src/content/components/common/input.js | 13 | ||||
| -rw-r--r-- | test/content/components/common/input.test.js | 24 | 
2 files changed, 36 insertions, 1 deletions
| diff --git a/src/content/components/common/input.js b/src/content/components/common/input.js index 9af9fbe..f285b0c 100644 --- a/src/content/components/common/input.js +++ b/src/content/components/common/input.js @@ -1,6 +1,17 @@ +const modifierdKeyName = (name) => { +  if (name.length === 1) { +    return name.toUpperCase(); +  } else if (name === 'Escape') { +    return 'Esc'; +  } +  return name; +}; +  const mapKey = (e) => {    if (e.ctrlKey) { -    return '<C-' + e.key.toUpperCase() + '>'; +    return '<C-' + modifierdKeyName(e.key) + '>'; +  } else if (e.shiftKey && e.key.length !== 1) { +    return '<S-' + modifierdKeyName(e.key) + '>';    }    return e.key;  }; diff --git a/test/content/components/common/input.test.js b/test/content/components/common/input.test.js index d4f554a..912ac34 100644 --- a/test/content/components/common/input.test.js +++ b/test/content/components/common/input.test.js @@ -40,6 +40,30 @@ describe('InputComponent', () => {      component.onKeyDown({ key: 'a', ctrlKey: true });    }) +  it('press X', () => { +    let component = new InputComponent(window.document); +    component.onKey((key) => { +      expect(key).is.equals('X'); +    }); +    component.onKeyDown({ key: 'X', shiftKey: true }); +  }) + +  it('press <Shift> + <Esc>', () => { +    let component = new InputComponent(window.document); +    component.onKey((key) => { +      expect(key).is.equals('<S-Esc>'); +    }); +    component.onKeyDown({ key: 'Escape', shiftKey: true }); +  }) + +  it('press <Ctrl> + <Esc>', () => { +    let component = new InputComponent(window.document); +    component.onKey((key) => { +      expect(key).is.equals('<C-Esc>'); +    }); +    component.onKeyDown({ key: 'Escape', ctrlKey: true }); +  }) +    it('does not invoke only meta keys', () => {      let component = new InputComponent(window.document);      component.onKey((key) => { | 
