aboutsummaryrefslogtreecommitdiff
path: root/AppKit/GTMNSColor+LuminanceTest.m
diff options
context:
space:
mode:
authorGravatar thomasvl@gmail.com <thomasvl@gmail.com@7dc7ac4e-7543-0410-b95c-c1676fc8e2a3>2009-03-05 22:03:40 +0000
committerGravatar thomasvl@gmail.com <thomasvl@gmail.com@7dc7ac4e-7543-0410-b95c-c1676fc8e2a3>2009-03-05 22:03:40 +0000
commite1bcf5d6a4b813a63d42e6ccb37ca8054775d65b (patch)
tree370ae297052052fb9576f0c14e0a9243f8a8bc86 /AppKit/GTMNSColor+LuminanceTest.m
parentd4f38903d60f8b01c419f5056c2fb3cd4c6c6e60 (diff)
- Added GTMLuminance for working with colors in HSL space easily.
- Added GTMTheme for doing product wide theme modifications.
Diffstat (limited to 'AppKit/GTMNSColor+LuminanceTest.m')
-rw-r--r--AppKit/GTMNSColor+LuminanceTest.m72
1 files changed, 72 insertions, 0 deletions
diff --git a/AppKit/GTMNSColor+LuminanceTest.m b/AppKit/GTMNSColor+LuminanceTest.m
new file mode 100644
index 0000000..82eb014
--- /dev/null
+++ b/AppKit/GTMNSColor+LuminanceTest.m
@@ -0,0 +1,72 @@
+//
+// GTMNSColor+LuminanceTest.m
+//
+// Copyright 2006-2009 Google Inc.
+//
+// Licensed under the Apache License, Version 2.0 (the "License"); you may not
+// use this file except in compliance with the License. You may obtain a copy
+// of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+// WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+// License for the specific language governing permissions and limitations under
+// the License.
+//
+
+#import <Cocoa/Cocoa.h>
+
+#if MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_5
+
+#import "GTMSenTestCase.h"
+#import "GTMNSColor+Luminance.h"
+
+@interface GTMNSColor_LuminanceTest : GTMTestCase
+@end
+
+@implementation GTMNSColor_LuminanceTest
+
+- (void)testLuminance {
+ NSColor *midtone = [NSColor blueColor];
+ NSColor *darker = [midtone gtm_colorAdjustedFor:GTMColorationBaseShadow];
+ NSColor *lighter = [midtone gtm_colorAdjustedFor:GTMColorationBaseHighlight];
+ NSColor *lightest = [midtone gtm_colorAdjustedFor:GTMColorationLightHighlight];
+ NSColor *darkest = [midtone gtm_colorAdjustedFor:GTMColorationDarkShadow];
+
+ // The relationships of the other values are not set, so we don't test them yet
+ STAssertGreaterThanOrEqual([lightest gtm_luminance],
+ [lighter gtm_luminance], nil);
+ STAssertGreaterThanOrEqual([lighter gtm_luminance],
+ [midtone gtm_luminance], nil);
+ STAssertGreaterThanOrEqual([midtone gtm_luminance],
+ [darker gtm_luminance], nil);
+ STAssertGreaterThanOrEqual([darker gtm_luminance],
+ [darkest gtm_luminance], nil);
+ STAssertGreaterThanOrEqual([[NSColor whiteColor] gtm_luminance],
+ (CGFloat)0.95, nil);
+ STAssertGreaterThanOrEqual([[NSColor yellowColor] gtm_luminance],
+ (CGFloat)0.90, nil);
+ STAssertEqualsWithAccuracy([[NSColor blueColor] gtm_luminance],
+ (CGFloat)0.35, 0.10, nil);
+ STAssertEqualsWithAccuracy([[NSColor redColor] gtm_luminance],
+ (CGFloat)0.50, 0.10, nil);
+ STAssertLessThanOrEqual([[NSColor blackColor] gtm_luminance],
+ (CGFloat)0.30, nil);
+ STAssertTrue([[NSColor blackColor] gtm_isDarkColor], nil);
+ STAssertTrue([[NSColor blueColor] gtm_isDarkColor], nil);
+ STAssertTrue([[NSColor redColor] gtm_isDarkColor], nil);
+ STAssertTrue(![[NSColor whiteColor] gtm_isDarkColor], nil);
+ STAssertTrue(![[NSColor yellowColor] gtm_isDarkColor], nil);
+ STAssertGreaterThanOrEqual([[[NSColor blackColor] gtm_legibleTextColor]
+ gtm_luminance],
+ [[NSColor grayColor] gtm_luminance], nil);
+ STAssertLessThanOrEqual([[[NSColor whiteColor] gtm_legibleTextColor]
+ gtm_luminance],
+ [[NSColor grayColor] gtm_luminance], nil);
+}
+
+@end
+
+#endif // MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_5