Skip to content

Commit

Permalink
Add tests for horizontal and vertical layouts
Browse files Browse the repository at this point in the history
  • Loading branch information
jtaby committed Jul 1, 2011
1 parent 2c687c3 commit 0b5044d
Showing 1 changed file with 53 additions and 12 deletions.
65 changes: 53 additions & 12 deletions tests/system/layout_manager.js
Expand Up @@ -8,6 +8,7 @@ var set = SC.set;
var get = SC.get;
var viewClass;
var views = [];
var containerView;

function validateLayout(element,layout) {
equals(element.length, 1, "View should be in dom");
Expand All @@ -20,25 +21,29 @@ function validateLayout(element,layout) {

function generateView(className,anchor,size) {
var view;

if (anchor !== undefined) {
viewClass = SC.View.extend(UI.LayoutSupport);
}
else {
viewClass = SC.View;
}

SC.run(function(){
view = SC.View.create(UI.LayoutSupport, {
view = viewClass.create({
classNames: [className],
anchor: anchor,
size: size,
});

if (anchor !== undefined && dimensionValue !== undefined) {
set(view, 'anchor', anchor);
set(view, 'size', size);
}

views.push(view);
view.append();
});

return view;
}

function generateNestedView(parentView,classsName,anchor,size) {
function generateNestedView(parentView,className,anchor,size) {
var nestedView = parentView.createChildView(SC.View.extend(UI.LayoutSupport), {
anchor: anchor,
size: size,
Expand All @@ -63,13 +68,17 @@ module("Layout Manager",{
viewClass = SC.View.extend(UI.LayoutSupport, {
classNames: ['layout_manager_test']
});

containerView = generateView('layout_manager_test_container','contentView');
},

teardown: function() {
containerView.destroy();

var l = views.length;

for(var i=0; i<l; i++) {
//views[i].destroy();
views[i].destroy();
}

views = [];
Expand All @@ -78,8 +87,40 @@ module("Layout Manager",{
}
});

test("top anchoring with content view", function() {
var parentView = generateView('layout_manager_test');
var topAnchor = generateNestedView(parentView,'top_anchor','top',viewHeight);
var contentView = generateNestedView(parentView,'content_view','contentView',viewHeight);
test("vertical anchoring with content view", function() {
var viewHeight = 50;

var parentView = generateNestedView(containerView,'layout_manager_test','contentView');
generateNestedView(parentView,'top_anchor','top',viewHeight);
generateNestedView(parentView,'bottom_anchor','bottom',viewHeight);
generateNestedView(parentView,'content_view','contentView');

validateLayout($('.layout_manager_test'), {top:0,left:0,right:0,bottom:0});
validateLayout($('.top_anchor'), {top:0,left:0,right:0,height:viewHeight});
validateLayout($('.bottom_anchor'), {bottom:0,left:0,right:0,height:viewHeight});
validateLayout($('.content_view'), {top:viewHeight,left:0,right:0,bottom:viewHeight});

//validateLayout($('.layout_manager_test').css('background','red'), {top:0,left:0,right:0,bottom:0});
//validateLayout($('.top_anchor').css('background','blue'), {top:0,left:0,right:0,height:viewHeight});
//validateLayout($('.bottom_anchor').css('background','yellow'), {bottom:0,left:0,right:0,height:viewHeight});
//validateLayout($('.content_view').css('background','green'), {top:viewHeight,left:0,right:0,bottom:viewHeight});
});

test("horizontal anchoring with content view", function() {
var sidebarWidth = 250;

var parentView = generateNestedView(containerView,'layout_manager_test','contentView');
generateNestedView(parentView,'left_anchor','left',sidebarWidth);
generateNestedView(parentView,'right_anchor','right',sidebarWidth);
generateNestedView(parentView,'content_view','contentView');

//validateLayout($('.layout_manager_test'), { top:0,left:0,right:0,bottom:0});
//validateLayout($('.left_anchor'), { top:0,left:0,bottom:0,width:sidebarWidth});
//validateLayout($('.right_anchor'), { top:0,right:0,bottom:0,width:sidebarWidth});
//validateLayout($('.content_view'), { top:0,left:sidebarWidth,right:sidebarWidth,bottom:0});

validateLayout($('.layout_manager_test').css('background','red'), { top:0,left:0,right:0,bottom:0});
validateLayout($('.top_anchor').css('background','blue'), { top:0,left:0,bottom:0,width:sidebarWidth});
validateLayout($('.bottom_anchor').css('background','yellow'), { top:0,right:0,bottom:0,width:sidebarWidth});
validateLayout($('.content_view').css('background','green'), { top:0,left:sidebarWidth,right:sidebarWidth,bottom:0});
});

0 comments on commit 0b5044d

Please sign in to comment.