aboutsummaryrefslogtreecommitdiff
path: root/AppKit/GTMUILocalizerAndLayoutTweakerTest.m
diff options
context:
space:
mode:
Diffstat (limited to 'AppKit/GTMUILocalizerAndLayoutTweakerTest.m')
-rw-r--r--AppKit/GTMUILocalizerAndLayoutTweakerTest.m96
1 files changed, 96 insertions, 0 deletions
diff --git a/AppKit/GTMUILocalizerAndLayoutTweakerTest.m b/AppKit/GTMUILocalizerAndLayoutTweakerTest.m
new file mode 100644
index 0000000..10e83b1
--- /dev/null
+++ b/AppKit/GTMUILocalizerAndLayoutTweakerTest.m
@@ -0,0 +1,96 @@
+//
+// GTMUILocalizerAndLayoutTweakerTest.m
+//
+// Copyright 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 "GTMSenTestCase.h"
+#import "GTMUILocalizerAndLayoutTweakerTest.h"
+#import "GTMNSObject+UnitTesting.h"
+#import "GTMUILocalizer.h"
+
+static NSUInteger gTestPass = 0;
+
+@interface GTMUILocalizerAndLayoutTweakerTest : GTMTestCase
+@end
+
+@implementation GTMUILocalizerAndLayoutTweakerTest
+- (void)testWindowLocalization {
+ // Test with nib 1
+ for (gTestPass = 0; gTestPass < 3; ++gTestPass) {
+ GTMUILocalizerAndLayoutTweakerTestWindowController *controller =
+ [[GTMUILocalizerAndLayoutTweakerTestWindowController alloc]
+ initWithWindowNibName:@"GTMUILocalizerAndLayoutTweakerTest1"];
+ NSWindow *window = [controller window];
+ STAssertNotNil(window, @"Pass %ld", (long)gTestPass);
+ NSString *imageName =
+ [NSString stringWithFormat:@"GTMUILocalizerAndLayoutTweakerTest1-%ld",
+ (long)gTestPass];
+ GTMAssertObjectImageEqualToImageNamed(window, imageName,
+ @"Pass %ld", (long)gTestPass);
+ [controller release];
+ }
+ // Test with nib 2
+ for (gTestPass = 0; gTestPass < 3; ++gTestPass) {
+ GTMUILocalizerAndLayoutTweakerTestWindowController *controller =
+ [[GTMUILocalizerAndLayoutTweakerTestWindowController alloc]
+ initWithWindowNibName:@"GTMUILocalizerAndLayoutTweakerTest2"];
+ NSWindow *window = [controller window];
+ STAssertNotNil(window, @"Pass %ld", (long)gTestPass);
+ NSString *imageName =
+ [NSString stringWithFormat:@"GTMUILocalizerAndLayoutTweakerTest2-%ld",
+ (long)gTestPass];
+ GTMAssertObjectImageEqualToImageNamed(window, imageName,
+ @"Pass %ld", (long)gTestPass);
+ [controller release];
+ }
+}
+
+@end
+
+@implementation GTMUILocalizerAndLayoutTweakerTestWindowController
+@end
+
+@implementation GTMUILocalizerAndLayoutTweakerTestLocalizer
+
+- (NSString *)localizedStringForString:(NSString *)string {
+ // "[FRAGMENT]:[COUNT]:[COUNT]"
+ // String is split, fragment is repeated count times, and spaces are then
+ // trimmed. Gives us strings that don't change for the test, but easy to
+ // vary in size. Which count is used, is controled by |gTestPass| so we
+ // can use a nib more then once.
+ NSArray *parts = [string componentsSeparatedByString:@":"];
+ if ([parts count] > (gTestPass + 1)) {
+ NSString *fragment = [parts objectAtIndex:0];
+ NSInteger count = [[parts objectAtIndex:gTestPass + 1] intValue];
+ if (count) {
+ NSMutableString *result =
+ [NSMutableString stringWithCapacity:count * [fragment length]];
+ while (count--) {
+ [result appendString:fragment];
+ }
+ NSCharacterSet *ws = [NSCharacterSet whitespaceCharacterSet];
+ return [result stringByTrimmingCharactersInSet:ws];
+ }
+ }
+ return nil;
+}
+
+- (void)awakeFromNib {
+ // Stop the base one from logging or doing anything since we don't need it
+ // for this test.
+}
+
+@end