aboutsummaryrefslogtreecommitdiff
path: root/AppKit/GTMUILocalizerTest.m
diff options
context:
space:
mode:
authorGravatar dmaclach <dmaclach@google.com>2016-10-07 12:10:23 -0400
committerGravatar Thomas Van Lenten <thomasvl@google.com>2016-10-07 12:21:06 -0400
commit42124b3691197c3c4f52f069775fa0390a8ff942 (patch)
treeebd373d398ea64b45bdc1d196fa0a2c5f57cabfd /AppKit/GTMUILocalizerTest.m
parent57eeab4193210df8ab0c81e9d3f1ee1ad3e24492 (diff)
First cut at pruning things/updating things.
Remove a bunch of code that Google stopped using/maintaining rather than trying to update it it. Some would be hard to update, some actually has system provided replacements; others are patterns that just don't seem as common now. Prune out the code related to macOS <= 10.5, start pruning some of the really old iOS support also. Get the projects mostly limping again with modern Xcodes so tests can be run. If someone ends up on this commit via history for something they still find as useful, feel free to do a pull request to bring the snippet of code back to life and update it for current SDKs.
Diffstat (limited to 'AppKit/GTMUILocalizerTest.m')
-rw-r--r--AppKit/GTMUILocalizerTest.m233
1 files changed, 150 insertions, 83 deletions
diff --git a/AppKit/GTMUILocalizerTest.m b/AppKit/GTMUILocalizerTest.m
index bc29099..451bd83 100644
--- a/AppKit/GTMUILocalizerTest.m
+++ b/AppKit/GTMUILocalizerTest.m
@@ -6,9 +6,9 @@
// 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
@@ -19,7 +19,6 @@
#import "GTMSenTestCase.h"
#import "GTMUILocalizerTest.h"
-#import "GTMNSObject+UnitTesting.h"
#import "GTMUILocalizer.h"
@interface GTMUILocalizerTest : GTMTestCase
@@ -29,125 +28,193 @@
// Utility method to verify that all the options for |binding| on |object| have
// been localized.
- (void)verifyBinding:(NSString *)binding forObject:(id)object {
- NSDictionary *bindingInfo
+ NSDictionary *bindingInfo
= [object infoForBinding:binding];
- STAssertNotNil(bindingInfo,
- @"Can't get binding info for %@ from %@.\nExposed bindings: %@",
- binding, object, [object exposedBindings]);
+ XCTAssertNotNil(bindingInfo,
+ @"Can't get binding info for %@ from %@.\nExposed bindings: %@",
+ binding, object, [object exposedBindings]);
NSDictionary *bindingOptions = [bindingInfo objectForKey:NSOptionsKey];
- STAssertNotNil(bindingOptions, nil);
+ XCTAssertNotNil(bindingOptions);
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);
+ XCTAssertFalse([value hasPrefix:@"^"],
+ @"Binding option %@ not localized. Has value %@.",
+ key, value);
}
- }
+ }
}
- (void)testWindowLocalization {
- GTMUILocalizerTestWindowController *controller
+ GTMUILocalizerTestWindowController *controller
= [[GTMUILocalizerTestWindowController alloc] init];
- NSWindow *window = [controller window];
- STAssertNotNil(window, nil);
- GTMAssertObjectStateEqualToStateNamed(window,
- @"GTMUILocalizerWindow1State", nil);
-
+
+ // Window automatically localized on load
+ XCTAssertEqualObjects(controller.window.title, @"Window");
+ XCTAssertEqualObjects(controller.tabViewItem1.label, @"Localized Tab");
+ XCTAssertEqualObjects(controller.tabViewItem2.label, @"^Tab2");
+ XCTAssertEqualObjects(controller.toolbarItem1.label, @"Localized Toolbar Item Label");
+ XCTAssertEqualObjects(controller.toolbarItem1.paletteLabel,
+ @"Localized Toolbar Item Palette Label");
+ XCTAssertEqualObjects(controller.toolbarItem2.label, @"ToolbarItemLabel");
+ XCTAssertEqualObjects(controller.toolbarItem2.paletteLabel, @"ToolbarItemPaletteLabel");
+ XCTAssertEqualObjects(controller.button1.title, @"Localized Button");
+ XCTAssertEqualObjects(controller.button2.title, @"^Button2");
+ XCTAssertEqualObjects(controller.textField1.stringValue, @"Localized Label");
+ XCTAssertEqualObjects(controller.textField2.stringValue, @"^Label2");
+ XCTAssertEqualObjects(controller.button1.title, @"Localized Button");
+ XCTAssertEqualObjects(controller.button2.title, @"^Button2");
+ XCTAssertEqualObjects(controller.checkbox1.title, @"Localized Checkbox 1");
+ XCTAssertEqualObjects(controller.checkbox2.title, @"^Checkbox 2");
+ XCTAssertEqualObjects(controller.menuItem1.title, @"Localized Item 1");
+ XCTAssertEqualObjects(controller.menuItem2.title, @"Localized Item 2");
+ XCTAssertEqualObjects(controller.menuItem3.title, @"^Item 3");
+ XCTAssertEqualObjects(controller.radio1.title, @"Localized Radio 1");
+ XCTAssertEqualObjects(controller.radio2.title, @"Localized Radio 2");
+
+ // Another Window Before Localization
+ XCTAssertEqualObjects(controller.anotherWindow.title, @"^WindowTest");
+ XCTAssertEqualObjects(controller.aBox.title, @"^Box");
+ XCTAssertEqualObjects(controller.aButton1.title, @"^Button1");
+ XCTAssertEqualObjects(controller.aButton2.title, @"^Button2");
+ XCTAssertEqualObjects(controller.aCheckbox1.title, @"^Checkbox 1");
+ XCTAssertEqualObjects(controller.aCheckbox2.title, @"^Checkbox 2");
+ XCTAssertEqualObjects(controller.aRadio1.title, @"^Radio 1");
+ XCTAssertEqualObjects(controller.aRadio2.title, @"^Radio 2");
+ XCTAssertEqualObjects(controller.aTextField1.stringValue, @"^Label1");
+ XCTAssertEqualObjects(controller.aTextField2.stringValue, @"^Label2");
+ NSSegmentedControl *segmented = controller.aSegmented;
+ XCTAssertEqualObjects([segmented labelForSegment:0], @"^Seg1");
+ XCTAssertEqualObjects([segmented labelForSegment:1], @"^Seg2");
+ XCTAssertEqualObjects([segmented labelForSegment:2], @"^Seg3");
+ NSComboBox *comboBox = controller.aComboBox;
+ XCTAssertEqualObjects(comboBox.stringValue, @"^Label1");
+ XCTAssertEqualObjects(comboBox.placeholderString, @"^Placeholder1");
+ NSArray *objects = comboBox.objectValues;
+ NSArray *expectedObjects = [NSArray arrayWithObjects:
+ @"^Choice1", @"^Choice2", @"^Choice3", @"^Choice4", @"^Choice5", nil];
+ XCTAssertEqualObjects(objects, expectedObjects);
+
NSBundle *bundle = [NSBundle bundleForClass:[self class]];
GTMUILocalizer *localizer = [[GTMUILocalizer alloc] initWithBundle:bundle];
- window = [controller otherWindow];
- STAssertNotNil(window, nil);
- [localizer localizeObject:window recursively:YES];
- GTMAssertObjectStateEqualToStateNamed(window,
- @"GTMUILocalizerWindow2State", nil);
- window = [controller anotherWindow];
- STAssertNotNil(window, nil);
- [localizer localizeObject:window recursively:YES];
- GTMAssertObjectStateEqualToStateNamed(window,
- @"GTMUILocalizerWindow3State", nil);
- NSMenu *menu = [controller otherMenu];
- STAssertNotNil(menu, nil);
+ [localizer localizeObject:controller.anotherWindow recursively:YES];
+
+ XCTAssertEqualObjects(controller.anotherWindow.title, @"Localized Window");
+ XCTAssertEqualObjects(controller.aBox.title, @"Localized Box");
+ XCTAssertEqualObjects(controller.aButton1.title, @"Localized Button");
+ XCTAssertEqualObjects(controller.aButton2.title, @"^Button2");
+ XCTAssertEqualObjects(controller.aCheckbox1.title, @"Localized Checkbox 1");
+ XCTAssertEqualObjects(controller.aCheckbox2.title, @"^Checkbox 2");
+ XCTAssertEqualObjects(controller.aRadio1.title, @"Localized Radio 1");
+ XCTAssertEqualObjects(controller.aRadio2.title, @"Localized Radio 2");
+ XCTAssertEqualObjects(controller.aTextField1.stringValue, @"Localized Label");
+ XCTAssertEqualObjects(controller.aTextField2.stringValue, @"^Label2");
+ XCTAssertEqualObjects([segmented labelForSegment:0], @"Localized Segment 1");
+ XCTAssertEqualObjects([segmented labelForSegment:1], @"Localized Segment 2");
+ XCTAssertEqualObjects([segmented labelForSegment:2], @"^Seg3");
+ XCTAssertEqualObjects(comboBox.stringValue, @"Localized Label");
+ XCTAssertEqualObjects(comboBox.placeholderString, @"Localized Placeholder");
+ objects = comboBox.objectValues;
+ expectedObjects = [NSArray arrayWithObjects:
+ @"Localized Choice 1", @"Localized Choice 2", @"Localized Choice 3",
+ @"^Choice4", @"^Choice5", nil];
+ XCTAssertEqualObjects(objects, expectedObjects);
+
+ NSMenu *menu = controller.otherMenu;
+ XCTAssertNotNil(menu);
[localizer localizeObject:menu recursively:YES];
- GTMAssertObjectStateEqualToStateNamed(menu,
- @"GTMUILocalizerMenuState", nil);
-
+ XCTAssertEqualObjects(menu.title, @"Localized Menu");
+ NSMenuItem *item = [menu itemAtIndex:0];
+ XCTAssertEqualObjects(item.title, @"Localized Menu Item");
+
+
// Test binding localization.
- NSTextField *textField = [controller bindingsTextField];
- STAssertNotNil(textField, nil);
- NSString *displayPatternValue1Binding
- = [NSString stringWithFormat:@"%@1", NSDisplayPatternValueBinding];
+ NSTextField *textField = controller.bindingsTextField;
+ XCTAssertNotNil(textField);
+ NSString *displayPatternValue1Binding
+ = [NSString stringWithFormat:@"%@1", NSDisplayPatternValueBinding];
[self verifyBinding:displayPatternValue1Binding forObject:textField];
-
- NSSearchField *searchField = [controller bindingsSearchField];
- STAssertNotNil(searchField, nil);
+
+ NSSearchField *searchField = controller.bindingsSearchField;
+ XCTAssertNotNil(searchField);
[self verifyBinding:NSPredicateBinding forObject:searchField];
-
+
[localizer release];
[controller release];
}
-#if MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_5
- (void)testViewLocalization {
- GTMUILocalizerTestViewController *controller
- = [[GTMUILocalizerTestViewController alloc] init];
- NSView *view = [controller view];
- STAssertNotNil(view, nil);
- GTMAssertObjectStateEqualToStateNamed(view,
- @"GTMUILocalizerView1State", nil);
-
NSBundle *bundle = [NSBundle bundleForClass:[self class]];
GTMUILocalizer *localizer = [[GTMUILocalizer alloc] initWithBundle:bundle];
- view = [controller otherView];
- STAssertNotNil(view, nil);
- [localizer localizeObject:view recursively:YES];
- GTMAssertObjectStateEqualToStateNamed(view, @"GTMUILocalizerView2State", nil);
- [localizer release];
+ XCTAssertNotNil(localizer);
+
+ GTMUILocalizerTestViewController *controller
+ = [[GTMUILocalizerTestViewController alloc] init];
+ NSView *view = controller.view;
+ XCTAssertNotNil(view);
+ XCTAssertEqualObjects(controller.viewButton.title, @"Localized Button");
+ XCTAssertEqualObjects(controller.pollyTextField.stringValue, @"^Polly want a caret?");
+
+ // We don't expect otherView to be localized.
+ view = controller.otherView;
+ XCTAssertNotNil(view);
+ XCTAssertEqualObjects(controller.otherButton.title, @"^Button");
+
[controller release];
}
-#endif // MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_5
@end
@implementation GTMUILocalizerTestWindowController
-- (id)init {
-#if MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_5
- return [self initWithWindowNibName:@"GTMUILocalizerTestWindow"];
-#else
- return [self initWithWindowNibName:@"GTMUILocalizerTestWindow_10_4"];
-#endif // MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_5
-}
-- (NSWindow *)otherWindow {
- return otherWindow_;
-}
+@synthesize anotherWindow = _anotherWindow;
+@synthesize otherMenu = _otherMenu;
-- (NSWindow *)anotherWindow {
- return anotherWindow_;
-}
+// Window Items
+@synthesize bindingsTextField = _bindingsTextField;
+@synthesize bindingsSearchField = _bindingsSearchField;
+@synthesize toolbarItem1 = _toolbarItem1;
+@synthesize toolbarItem2 = _toolbarItem2;
+@synthesize tabViewItem1 = _tabViewItem1;
+@synthesize tabViewItem2 = _tabViewItem2;
+@synthesize button1 = _button1;
+@synthesize button2 = _button2;
+@synthesize textField1 = _textField1;
+@synthesize textField2 = _textField2;
+@synthesize checkbox1 = _checkbox1;
+@synthesize checkbox2 = _checkbox2;
+@synthesize menuItem1 = _menuItem1;
+@synthesize menuItem2 = _menuItem2;
+@synthesize menuItem3 = _menuItem3;
+@synthesize radio1 = _radio1;
+@synthesize radio2 = _radio2;
-- (NSMenu *)otherMenu {
- return otherMenu_;
-}
+// Another Window Items
+@synthesize aBox = _aBox;
+@synthesize aButton1 = _aButton1;
+@synthesize aButton2 = _aButton2;
+@synthesize aCheckbox1 = _aCheckbox1;
+@synthesize aCheckbox2 = _aCheckbox2;
+@synthesize aRadio1 = _aRadio1;
+@synthesize aRadio2 = _aRadio2;
+@synthesize aTextField1 = _aTextField1;
+@synthesize aTextField2 = _aTextField2;
+@synthesize aSegmented = _aSegmented;
+@synthesize aComboBox = _aComboBox;
-- (NSTextField *)bindingsTextField {
- return bindingsTextField_;
-}
-
-- (NSSearchField *)bindingsSearchField {
- return bindingsSearchField_;
+- (id)init {
+ return [self initWithWindowNibName:@"GTMUILocalizerTestWindow"];
}
@end
-#if MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_5
@implementation GTMUILocalizerTestViewController
+@synthesize otherView = _otherView;
+@synthesize otherButton = _otherButton;
+@synthesize viewButton = _viewButton;
+@synthesize pollyTextField = _pollyTextField;
+
- (id)init {
NSBundle *bundle = [NSBundle bundleForClass:[self class]];
return [self initWithNibName:@"GTMUILocalizerTestView" bundle:bundle];
}
-
-- (NSView *)otherView {
- return otherView_;
-}
@end
-#endif