Short circuit file-list key handler when links are focused
Bug: Issue 5754 Change-Id: I65087be7aab102bf33915f0a438308cd84f6e97d
This commit is contained in:
		@@ -492,6 +492,10 @@
 | 
			
		||||
      if (this.shouldSuppressKeyboardShortcut(e) ||
 | 
			
		||||
          this.modifierPressed(e)) { return; }
 | 
			
		||||
 | 
			
		||||
      // Use native handling if an anchor is selected. @see Issue 5754
 | 
			
		||||
      if (e.detail && e.detail.keyboardEvent && e.detail.keyboardEvent.target &&
 | 
			
		||||
          e.detail.keyboardEvent.target.tagName === 'A') { return; }
 | 
			
		||||
 | 
			
		||||
      e.preventDefault();
 | 
			
		||||
      if (this._showInlineDiffs) {
 | 
			
		||||
        this._openCursorFile();
 | 
			
		||||
 
 | 
			
		||||
@@ -357,6 +357,44 @@ limitations under the License.
 | 
			
		||||
              element.diffs[index].path);
 | 
			
		||||
        }
 | 
			
		||||
      });
 | 
			
		||||
 | 
			
		||||
      test('_handleEnterKey navigates', function() {
 | 
			
		||||
        sandbox.stub(element, 'shouldSuppressKeyboardShortcut').returns(false);
 | 
			
		||||
        sandbox.stub(element, 'modifierPressed').returns(false);
 | 
			
		||||
        var expandStub = sandbox.stub(element, '_openCursorFile');
 | 
			
		||||
        var navStub = sandbox.stub(element, '_openSelectedFile');
 | 
			
		||||
        var e = new CustomEvent('fake-keyboard-event');
 | 
			
		||||
        sinon.stub(e, 'preventDefault');
 | 
			
		||||
        element._showInlineDiffs = false;
 | 
			
		||||
        element._handleEnterKey(e);
 | 
			
		||||
        assert.isTrue(e.preventDefault.called);
 | 
			
		||||
        assert.isTrue(navStub.called);
 | 
			
		||||
        assert.isFalse(expandStub.called);
 | 
			
		||||
      });
 | 
			
		||||
 | 
			
		||||
      test('_handleEnterKey expands', function() {
 | 
			
		||||
        sandbox.stub(element, 'shouldSuppressKeyboardShortcut').returns(false);
 | 
			
		||||
        sandbox.stub(element, 'modifierPressed').returns(false);
 | 
			
		||||
        var expandStub = sandbox.stub(element, '_openCursorFile');
 | 
			
		||||
        var navStub = sandbox.stub(element, '_openSelectedFile');
 | 
			
		||||
        var e = new CustomEvent('fake-keyboard-event');
 | 
			
		||||
        sinon.stub(e, 'preventDefault');
 | 
			
		||||
        element._showInlineDiffs = true;
 | 
			
		||||
        element._handleEnterKey(e);
 | 
			
		||||
        assert.isTrue(e.preventDefault.called);
 | 
			
		||||
        assert.isFalse(navStub.called);
 | 
			
		||||
        assert.isTrue(expandStub.called);
 | 
			
		||||
      });
 | 
			
		||||
 | 
			
		||||
      test('_handleEnterKey noop when anchor focused', function() {
 | 
			
		||||
        sandbox.stub(element, 'shouldSuppressKeyboardShortcut').returns(false);
 | 
			
		||||
        sandbox.stub(element, 'modifierPressed').returns(false);
 | 
			
		||||
        var e = new CustomEvent('fake-keyboard-event',
 | 
			
		||||
            {detail: {keyboardEvent: {target: document.createElement('a')}}});
 | 
			
		||||
        sinon.stub(e, 'preventDefault');
 | 
			
		||||
        element._handleEnterKey(e);
 | 
			
		||||
        assert.isFalse(e.preventDefault.called);
 | 
			
		||||
      });
 | 
			
		||||
    });
 | 
			
		||||
 | 
			
		||||
    test('comment filtering', function() {
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user