Fixed: Test cases are working correctly

This commit is contained in:
Martin Carlberg
2015-10-21 12:26:39 +02:00
parent 5e1f1675b8
commit 3a91f43bbb
2 changed files with 17 additions and 18 deletions
+12 -13
View File
@@ -389,6 +389,9 @@ ThemeState.prototype.isSubsetOf = function(aState)
ThemeState.prototype.without = function(aState)
{
if (!aState || aState === [CPNull null])
return this;
var firstTransform = CPThemeWithoutTransform[this._stateNameString],
result;
@@ -398,23 +401,19 @@ ThemeState.prototype.without = function(aState)
return result;
}
if (!aState || aState === [CPNull null])
result = this;
else
var newStates = {};
for (var stateName in this._stateNames)
{
var newStates = {};
for (var stateName in this._stateNames)
{
if (!this._stateNames.hasOwnProperty(stateName))
continue;
if (!this._stateNames.hasOwnProperty(stateName))
continue;
if (!aState._stateNames[stateName])
newStates[stateName] = true;
}
result = ThemeState._cacheThemeState(new ThemeState(newStates));
if (!aState._stateNames[stateName])
newStates[stateName] = true;
}
result = ThemeState._cacheThemeState(new ThemeState(newStates));
if (!firstTransform)
firstTransform = CPThemeWithoutTransform[this._stateNameString] = {};
+5 -5
View File
@@ -94,7 +94,7 @@ var methodCalled;
[self assert:String(CPThemeState(CPThemeStateDisabled, CPThemeStateHighlighted)) equals:String([view themeState]) message:@"The view should be in the combined state of CPThemeStateDisabled and CPThemeStateHighlighted"];
[view unsetThemeState:[view themeState]];
[view setThemeState:[CPThemeStateSelected, CPThemeStateDisabled]];
[view setThemeStates:[CPThemeStateSelected, CPThemeStateDisabled]];
[self assert:String(CPThemeState(CPThemeStateDisabled, CPThemeStateSelected)) equals:String([view themeState]) message:@"setThemeState works with array argument"];
}
@@ -117,20 +117,20 @@ var methodCalled;
[self assert:String(CPThemeStateNormal) equals:String([view themeState]) message:@"CPView should be able to unset a combined theme state"];
[view setThemeState:CPThemeState(CPThemeStateDisabled, CPThemeStateHighlighted, CPThemeStateBordered)];
[view unsetThemeState:[CPThemeStateBordered, CPThemeStateHighlighted]];
[view unsetThemeStates:[CPThemeStateBordered, CPThemeStateHighlighted]];
[self assert:String(CPThemeStateDisabled) equals:String([view themeState]) message:@"unsetThemeState works with array argument"];
[view setThemeState:CPThemeStateDisabled];
[view unsetThemeState:[CPThemeStateDisabled, CPThemeStateHighlighted]];
[view unsetThemeStates:[CPThemeStateDisabled, CPThemeStateHighlighted]];
[self assert:String(CPThemeStateNormal) equals:String([view themeState]) message:@"CPView should be able to unset a combined theme state that has more theme states than the view currently has"];
[view setThemeState:CPThemeState(CPThemeStateDisabled, CPThemeStateBordered)];
var returnValue = [view unsetThemeState:[CPThemeStateDisabled, CPThemeStateHighlighted]];
var returnValue = [view unsetThemeStates:[CPThemeStateDisabled, CPThemeStateHighlighted]];
[self assert:String(CPThemeStateBordered) equals:String([view themeState]) message:@"CPView should be able to unset a combined theme state that has not entirely overlapping themestates"];
[self assertTrue:returnValue message:@"When unsetThemeState successfully unsets anything, it return YES"];
[view setThemeState:CPThemeState(CPThemeStateDisabled, CPThemeStateBordered)];
var returnValue = [view unsetThemeState:[CPThemeStateSelected, CPThemeStateHighlighted]];
var returnValue = [view unsetThemeStates:[CPThemeStateSelected, CPThemeStateHighlighted]];
[self assert:String(CPThemeState(CPThemeStateDisabled, CPThemeStateBordered)) equals:String([view themeState]) message:@"CPView not unset any theme states it does not have"];
[self assertFalse:returnValue message:@"When unsetThemeState doesn't unset anything, it returns NO"];