From 53974a084bc914ea8666918b43803574515c9aef Mon Sep 17 00:00:00 2001 From: "gtm.daemon" Date: Wed, 20 Jan 2010 04:31:03 +0000 Subject: [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) --- AppKit/GTMUILocalizerTest.m | 43 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) (limited to 'AppKit/GTMUILocalizerTest.m') 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 -- cgit v1.2.3