aboutsummaryrefslogtreecommitdiff
path: root/AppKit/GTMUILocalizerTest.m
diff options
context:
space:
mode:
authorGravatar gtm.daemon <gtm.daemon@7dc7ac4e-7543-0410-b95c-c1676fc8e2a3>2010-01-20 04:31:03 +0000
committerGravatar gtm.daemon <gtm.daemon@7dc7ac4e-7543-0410-b95c-c1676fc8e2a3>2010-01-20 04:31:03 +0000
commit53974a084bc914ea8666918b43803574515c9aef (patch)
tree2f22d47535abce712562870043865b52b2a090d3 /AppKit/GTMUILocalizerTest.m
parent00ac975413b92871834ecd54af73474bd6ddcd81 (diff)
[Author: dmaclach]
Fix for http://code.google.com/p/google-toolbox-for-mac/issues/detail?id=40. Sets up GTMUILocalizer to localize some bindings. Handles: NSMultipleValuesPlaceholderBindingOption NSNoSelectionPlaceholderBindingOption NSNotApplicablePlaceholderBindingOption NSNullPlaceholderBindingOption NSDisplayNameBindingOption, NSDisplayPatternBindingOption, R=thomasvl DELTA=1475 (815 added, 596 deleted, 64 changed)
Diffstat (limited to 'AppKit/GTMUILocalizerTest.m')
-rw-r--r--AppKit/GTMUILocalizerTest.m43
1 files changed, 43 insertions, 0 deletions
diff --git a/AppKit/GTMUILocalizerTest.m b/AppKit/GTMUILocalizerTest.m
index 8c93b49..fc5153c 100644
--- a/AppKit/GTMUILocalizerTest.m
+++ b/AppKit/GTMUILocalizerTest.m
@@ -26,6 +26,27 @@
@end
@implementation GTMUILocalizerTest
+// Utility method to verify that all the options for |binding| on |object| have
+// been localized.
+- (void)verifyBinding:(NSString *)binding forObject:(id)object {
+ NSDictionary *bindingInfo
+ = [object infoForBinding:binding];
+ STAssertNotNil(bindingInfo,
+ @"Can't get binding info for %@ from %@.\nExposed bindings: %@",
+ binding, object, [object exposedBindings]);
+ NSDictionary *bindingOptions = [bindingInfo objectForKey:NSOptionsKey];
+ STAssertNotNil(bindingOptions, nil);
+ NSString *key = nil;
+ GTM_FOREACH_KEY(key, bindingOptions) {
+ id value = [bindingOptions objectForKey:key];
+ if ([value isKindOfClass:[NSString class]]) {
+ STAssertFalse([value hasPrefix:@"^"],
+ @"Binding option %@ not localized. Has value %@.",
+ key, value);
+ }
+ }
+}
+
- (void)testWindowLocalization {
GTMUILocalizerTestWindowController *controller
= [[GTMUILocalizerTestWindowController alloc] init];
@@ -57,6 +78,20 @@
[localizer localizeObject:menu recursively:YES];
GTMAssertObjectStateEqualToStateNamed(menu,
@"GTMUILocalizerMenuState", nil);
+
+ // Test binding localization.
+ NSTextField *textField = [controller bindingsTextField];
+ STAssertNotNil(textField, nil);
+ [localizer localizeObject:textField recursively:NO];
+ NSString *displayPatternValue1Binding
+ = [NSString stringWithFormat:@"%@1", NSDisplayPatternValueBinding];
+
+ [self verifyBinding:displayPatternValue1Binding forObject:textField];
+ NSSearchField *searchField = [controller bindingsSearchField];
+ STAssertNotNil(searchField, nil);
+ [localizer localizeObject:searchField recursively:NO];
+ [self verifyBinding:NSPredicateBinding forObject:searchField];
+
[localizer release];
[controller release];
}
@@ -102,6 +137,14 @@
- (NSMenu *)otherMenu {
return otherMenu_;
}
+
+- (NSTextField *)bindingsTextField {
+ return bindingsTextField_;
+}
+
+- (NSSearchField *)bindingsSearchField {
+ return bindingsSearchField_;
+}
@end
#if MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_5