/core/externals/update-engine/externals/google-toolbox-for-mac/AppKit/GTMNSImage+ScalingTest.m
http://macfuse.googlecode.com/ · Objective C · 83 lines · 47 code · 14 blank · 22 comment · 0 complexity · 123b605741dc7c95aaf6699fa8d2ffc9 MD5 · raw file
- //
- // GTMNSImage+ScalingTest.m
- //
- // Copyright 2006-2008 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>
- #import "GTMSenTestCase.h"
- #import "GTMNSImage+Scaling.h"
- #import "GTMGeometryUtils.h"
- @interface GTMNSImage_ScalingTest : GTMTestCase
- @end
-
- @implementation GTMNSImage_ScalingTest
- - (void)testScaling {
- NSImage *testImage = [NSImage imageNamed:@"NSApplicationIcon"];
-
- NSImageRep *rep = nil;
- NSRect bestRepRect = NSMakeRect(0, 0, 99, 99);
-
- #if MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_6
- rep = [testImage bestRepresentationForRect:bestRepRect
- context:nil
- hints:nil];
- #else
- rep = [testImage gtm_bestRepresentationForSize:bestRepRect.size];
- #endif // MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_6
-
- STAssertTrue(NSEqualSizes([rep size], NSMakeSize(128, 128)), nil);
- [testImage gtm_createIconRepresentations];
- STAssertNotNil([testImage gtm_representationOfSize:NSMakeSize(16, 16)], nil);
- STAssertNotNil([testImage gtm_representationOfSize:NSMakeSize(32, 32)], nil);
-
- NSImage *duplicate = [testImage gtm_duplicateOfSize:NSMakeSize(48, 48)];
- bestRepRect = NSMakeRect(0, 0, 48, 48);
- #if MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_6
- rep = [duplicate bestRepresentationForRect:bestRepRect
- context:nil
- hints:nil];
- #else
- rep = [duplicate gtm_bestRepresentationForSize:bestRepRect.size];
- #endif // MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_6
- STAssertTrue(NSEqualSizes([rep size], NSMakeSize(48, 48)),
- @"Size is %@", NSStringFromSize([rep size]));
-
- // This should IMHO return 48,48 on both 10.6 and 10.5. It makes no sense
- // at all that it returns 32,32 on 10_6 when the above code works for 48,48.
- // rdar://8052200 "NSImage bestRepresentationForRect:context:hints: doesn't
- // return the best rep"
- // http://openradar.appspot.com/radar?id=394401
- bestRepRect = NSMakeRect(0, 0, 50, 50);
- #if MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_6
- rep = [duplicate bestRepresentationForRect:bestRepRect
- context:nil
- hints:nil];
- STAssertFalse(NSEqualSizes([rep size], NSMakeSize(48, 48)),
- @"Size is %@", NSStringFromSize([rep size]));
- #else
- rep = [duplicate gtm_bestRepresentationForSize:bestRepRect.size];
- STAssertTrue(NSEqualSizes([rep size], NSMakeSize(48, 48)),
- @"Size is %@", NSStringFromSize([rep size]));
- #endif // MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_6
-
- }
- @end