blossom
Version:
Modern, Cross-Platform Application Framework
174 lines (145 loc) • 5.14 kB
JavaScript
// ==========================================================================
// Project: SproutCore - JavaScript Application Framework
// Copyright: ©2006-2011 Strobe Inc. and contributors.
// portions copyright @2009 Apple Inc.
// License: Licensed under MIT license (see license.js)
// ==========================================================================
/*global module test htmlbody ok equals same stop start */
htmlbody('<style> .sc-static-layout { border: 1px red dotted; } </style>');
var booleanObjects = [
{ n: 'False', v: false },
{ n: 'True', v: true }
];
var integerObjects = [
{ n: 'Zero', v: 0 },
{ n: 'One', v: 1 },
{ n: 'Two', v: 2 }
];
var pane = SC.ControlTestPane.design()
.add("basic", SC.SelectFieldView, {
objects:["1","2","3","4","5"]
})
.add("disabled", SC.SelectFieldView, {
isEnabled: false, objects:["1","2","3","4","5"]
})
.add("Not Selected", SC.SelectFieldView, {
isSelected: false, objects:["1","2","3","4","5"]
})
.add("Not Visible", SC.SelectFieldView, {
isVisible: false, objects:["1","2","3","4","5"]
})
.add("sortedStringOptions", SC.SelectFieldView, {
objects:["Apple","Sproutcore 1.0","Development","Charles"],
useStaticLayout: true,
layout: { width: 'auto', right: 'auto' }
})
.add("unSortedStringOptions", SC.SelectFieldView, {
objects:["Apple","Sproutcore 1.0","Development","Charles"],
useStaticLayout: true,
disableSort: true,
layout: { width: 'auto', right: 'auto' }
})
.add("Width 150 Right 0", SC.SelectFieldView, {
objects: [1,6,11,2,8],
useStaticLayout: true,
layout: { width: '150', right: '0' }
})
.add("redraw", SC.SelectFieldView, {
useStaticLayout: true,
layout: { width: '150', right: '0' }
})
.add("selectBoolean", SC.SelectFieldView, {
objects: booleanObjects,
nameKey: 'n',
valueKey: 'v',
disableSort: true
})
.add("selectInteger", SC.SelectFieldView, {
objects: integerObjects,
nameKey: 'n',
valueKey: 'v',
disableSort: true
});
pane.show();
// ..........................................................
// TEST VIEWS
//
suite('SC.SelectFieldView ui', pane.standardSetup());
test("basic", function() {
var view = pane.view('basic');
ok(!view.$().hasClass('disabled'), 'should not have disabled class');
ok(!view.$().hasClass('sel'), 'should not have sel class');
});
test("disabled", function() {
var view = pane.view('disabled');
ok(view.$().hasClass('disabled'), 'should have disabled class');
});
test("Not Selected", function() {
var view = pane.view('Not Selected');
ok(!view.$().hasClass('disabled'), 'should not have disabled class');
ok(!view.$().hasClass('sel'), 'should not have sel class');
});
test("Not Visible", function() {
var view = pane.view('Not Visible');
ok(!view.$().hasClass('disabled'), 'should not have disabled class');
ok(!view.$().hasClass('sel'), 'should not have sel class');
});
test("sortedStringOptions", function() {
var view = pane.view('sortedStringOptions');
equals(null,view.get('sortKey'), 'sortkey not specified');
});
test("Width 150 Right 0", function() {
var view = pane.view('Width 150 Right 0');
ok(!view.$().hasClass('disabled'), 'should not have disabled class');
ok(!view.$().hasClass('sel'), 'should not have sel class');
});
test("Check that by setting the value the selection actually changes", function() {
var view = pane.view('Width 150 Right 0');
SC.RunLoop.begin();
view.set('value',2);
SC.RunLoop.end();
equals(view.getFieldValue(), 2, 'the field value should change to 2');
});
test("redraw", function(){
var view = pane.view('redraw');
ok(view.get('objects').length === 0, "objects should be empty");
SC.RunLoop.begin();
view.set('objects', [1,6,11,2,8]);
SC.RunLoop.end();
ok(view.$('option').length === 5, "options length should be 5");
});
test("selectFalse", function(){
var view = pane.view('selectBoolean');
SC.RunLoop.begin();
view.set('value', false);
SC.RunLoop.end();
equals(view.getFieldValue(), false, 'the field values should change to False')
});
test("selectTrue", function(){
var view = pane.view('selectBoolean');
SC.RunLoop.begin();
view.set('value', true);
SC.RunLoop.end();
equals(view.getFieldValue(), true, 'the field values should change to False')
});
test("selectZero", function(){
var view = pane.view('selectInteger');
SC.RunLoop.begin();
view.set('value', 0);
SC.RunLoop.end();
equals(view.getFieldValue(), 0, 'the field values should change to False')
});
test("selectOne", function(){
var view = pane.view('selectInteger');
SC.RunLoop.begin();
view.set('value', 1);
SC.RunLoop.end();
equals(view.getFieldValue(), 1, 'the field values should change to False')
});
test("selectTwo", function(){
var view = pane.view('selectInteger');
SC.RunLoop.begin();
view.set('value', 2);
SC.RunLoop.end();
equals(view.getFieldValue(), 2, 'the field values should change to False')
});