blossom
Version:
Modern, Cross-Platform Application Framework
69 lines (54 loc) • 2.21 kB
JavaScript
// ==========================================================================
// Project: SproutCore - JavaScript Application Framework
// Copyright: ©2006-2010 Apple Inc. and contributors.
// License: Licensed under MIT license (see license.js)
// ==========================================================================
/*global module test equals context ok same Q$ htmlbody */
suite("SC.RootResponder#makeMainPane");
test("returns receiver", function() {
var p1 = SC.Pane.create(), p2 = SC.Pane.create();
var r = SC.RootResponder.create();
equals(r.makeMainPane(p1), r, 'returns receiver');
});
test("changes mainPane to new pane", function() {
var p1 = SC.Pane.create(), p2 = SC.Pane.create();
var r = SC.RootResponder.create();
r.makeMainPane(p1);
equals(r.get('mainPane'), p1, 'mainPane should be p1');
r.makeMainPane(p2);
equals(r.get('mainPane'), p2, 'mainPane should be p2');
});
test("if current mainpane is also keypane, automatically make new main pane key also", function() {
// acceptsKeyPane is required to allow keyPane to change
var p1 = SC.Pane.create({ acceptsKeyPane: true });
var p2 = SC.Pane.create({ acceptsKeyPane: true });
var r= SC.RootResponder.create({ mainPane: p1, keyPane: p1 });
r.makeMainPane(p2);
ok(r.get('keyPane') === p2, 'should change keyPane(%@) p1 = %@ - p2 = %@'.fmt(r.get('keyPane'), p1, p2));
});
test("should call blurMainTo() on current pane, passing new pane", function() {
var callCount = 0;
var p2 = SC.Pane.create();
var p1 = SC.Pane.create({
blurMainTo: function(pane) {
callCount++ ;
equals(pane, p2, 'should pass new pane');
}
});
var r= SC.RootResponder.create({ mainPane: p1 });
r.makeMainPane(p2);
equals(callCount, 1, 'should invoke callback');
});
test("should call focusMainFrom() on new pane, passing old pane", function() {
var callCount = 0;
var p1 = SC.Pane.create();
var p2 = SC.Pane.create({
focusMainFrom: function(pane) {
callCount++ ;
equals(pane, p1, 'should pass old pane');
}
});
var r= SC.RootResponder.create({ mainPane: p1 });
r.makeMainPane(p2);
equals(callCount, 1, 'should invoke callback');
});