// ========================================================================== // Project: SproutCore
- JavaScript Application Framework // Copyright: ©2006-2011 Apple Inc. and contributors. // License: Licensed under MIT license (see license.js) // ==========================================================================
/*global module test equals context ok same */
// .….….….….….….….….….….….….….….. // performKeyEquivalent() - verify that return value is correct. // var pane = SC
.ControlTestPane.design()
.add("basic", SC.ButtonView, { triggerAction: function() { return YES; }, title:'hello world', keyEquivalent: 'return' });
module('SC.ButtonView#performKeyEquivalent', pane.standardSetup());
test(“handles matching key equivalent 'return'”, function() {
var view = pane.view('basic'); view.triggerAction = function(evt) { return YES; }; // act like we handled it if we get here var u = view.pane(); ok(u.performKeyEquivalent('return'), "should return truthy value indicating it handled the key equivalent 'return'");
});
test(“ignores non-matching key equivalent 'wrong_key'”, function() {
var view = pane.view('basic'); view.triggerAction = function(evt) { return YES; }; // act like we handled it if we get here (we shouldn't in this case) ok(!view.performKeyEquivalent('wrong_key'), "should return falsy value indicating it ignored the non-matching key equivalent 'wrong_key'");
});
test(“triggers on return if isDefault is set and no keyEquivalent is set”, function() {
var view = pane.view('basic'); view.set('isDefault', YES); view.set('keyEquivalent', null); ok(view.performKeyEquivalent('return'), 'should be handled'); view.set('keyEquivalent', 'a'); ok(!view.performKeyEquivalent('return'), 'should NOT be handled');
});
test(“triggers on escape if isCancel is set and no keyEquivalent is set”, function() {
var view = pane.view('basic'); view.set('isCancel', YES); view.set('keyEquivalent', null); ok(view.performKeyEquivalent('escape'), 'should be handled'); view.set('keyEquivalent', 'a'); ok(!view.performKeyEquivalent('escape'), 'should NOT be handled');
});