You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
153 lines
5.7 KiB
153 lines
5.7 KiB
// Copyright © 2015 Abhishek Banthia |
|
|
|
#import <XCTest/XCTest.h> |
|
|
|
@interface ClockerUITests : XCTestCase |
|
|
|
@property (strong) XCUIApplication *app; |
|
|
|
@end |
|
|
|
@implementation ClockerUITests |
|
|
|
- (void)setUp { |
|
[super setUp]; |
|
self.continueAfterFailure = YES; |
|
self.app = [[XCUIApplication alloc] init]; |
|
[self.app launch]; |
|
|
|
if (self.app.tables[@"FloatingTableView"].exists) { |
|
XCUIElement *floatingPinButton = self.app.buttons[@"FloatingPin"]; |
|
[floatingPinButton click]; |
|
} |
|
} |
|
|
|
- (void)tearDown { |
|
// Put teardown code here. This method is called after the invocation of each test method in the class. |
|
[super tearDown]; |
|
} |
|
|
|
/* |
|
- (void)testChangingLabelFromPopover { |
|
|
|
XCUIElement *menuElement = [[self.app menuBars] elementBoundByIndex:1]; |
|
[menuElement click]; |
|
|
|
XCUIElement *cell = [self.app.tables[@"mainTableView"] cells].firstMatch; |
|
XCUIElement *originalField = cell.staticTexts[@"CustomNameLabelForCell"]; |
|
NSString *originalFieldValue = originalField.value; |
|
[cell hover]; |
|
|
|
NSLog(@"%@", cell.buttons.count); |
|
XCUIElement *extraOptionButton = cell.buttons[@"extraOptionButton"]; |
|
[extraOptionButton click]; |
|
|
|
XCUIElement *textField = self.app.textFields[@"CustomLabel"]; |
|
[textField typeText:@"My Precious"]; |
|
|
|
sleep(2); |
|
|
|
XCUIElement *verifyCell = self.app.tables[@"mainTableView"].cells.firstMatch; |
|
XCUIElement *newField = verifyCell.staticTexts[@"CustomNameLabelForCell"]; |
|
NSString *newFieldValue = (NSString *)newField.value; |
|
|
|
XCTAssertTrue([newFieldValue isEqualToString:@"My Precious"]); |
|
|
|
[self reset:textField withText:originalFieldValue]; |
|
|
|
sleep(2); |
|
} */ |
|
|
|
- (void)testSettingAFavourite { |
|
|
|
XCUIElement *menuElement = [[self.app statusItems] firstMatch]; |
|
[menuElement click]; |
|
[self.app/*@START_MENU_TOKEN@*/.tables[@"mainTableView"]/*[[".dialogs",".scrollViews.tables[@\"mainTableView\"]",".tables[@\"mainTableView\"]"],[[[-1,2],[-1,1],[-1,0,1]],[[-1,2],[-1,1]]],[0]]@END_MENU_TOKEN@*/ typeKey:@"," modifierFlags:XCUIKeyModifierCommand]; |
|
|
|
XCUIElement *clockerWindow = self.app.windows[@"Clocker"]; |
|
|
|
if (clockerWindow.tables.count == 0) { |
|
XCTFail("We don't have any timezones added"); |
|
return; |
|
} |
|
|
|
NSInteger rowQueryCount = [[clockerWindow.tables[@"TimezoneTableView"] tableRows] count]; |
|
|
|
if (rowQueryCount == 0) { |
|
XCTFail("We don't have any timezones added"); |
|
return; |
|
} |
|
|
|
XCUIElement *currentElement = [[clockerWindow.tables[@"TimezoneTableView"] tableRows] elementBoundByIndex:0]; |
|
|
|
XCUIElement *favoriteCheckbox = [currentElement.checkBoxes elementBoundByIndex:0]; |
|
[favoriteCheckbox click]; |
|
|
|
sleep(2); |
|
|
|
} |
|
|
|
- (void)testChangingTo12Hour { |
|
|
|
XCUIElement *menuElement = [[self.app statusItems] firstMatch]; |
|
[menuElement click]; |
|
[self.app/*@START_MENU_TOKEN@*/.tables[@"mainTableView"]/*[[".dialogs",".scrollViews.tables[@\"mainTableView\"]",".tables[@\"mainTableView\"]"],[[[-1,2],[-1,1],[-1,0,1]],[[-1,2],[-1,1]]],[0]]@END_MENU_TOKEN@*/ typeKey:@"," modifierFlags:XCUIKeyModifierCommand]; |
|
|
|
XCUIElement *appearance = [[self.app.toolbars buttons] elementBoundByIndex: 1]; |
|
[appearance click]; |
|
|
|
XCUIElement *timeFormat = [self.app.popUpButtons[@"TimeFormatPopover"] firstMatch]; |
|
[timeFormat click]; // Open Time Format Popover |
|
XCUIElementQuery *const query = [[[timeFormat childrenMatchingType:XCUIElementTypeMenu] firstMatch] childrenMatchingType:0]; |
|
[[query elementBoundByIndex:0] click]; // 0 is 12-Hour |
|
|
|
XCUIElementQuery *mainTableView = [[self.app.tables[@"mainTableView"] cells] staticTexts]; |
|
NSPredicate *timeCells = [NSPredicate predicateWithFormat:@"identifier like 'ActualTime'"]; |
|
XCUIElementQuery *elements = [mainTableView matchingPredicate:timeCells]; |
|
|
|
for (NSInteger i = 0; i < elements.count; i++) { |
|
XCUIElement *currentElement = [elements elementBoundByIndex:i]; |
|
NSString *currentTime = (NSString *)currentElement.value; |
|
XCTAssertTrue([currentTime containsString:@"AM"] || [currentTime containsString:@"PM"]); |
|
} |
|
} |
|
|
|
- (void)testChangingTo24Hour { |
|
|
|
XCUIElement *menuElement = [[self.app statusItems] firstMatch]; |
|
[menuElement click]; |
|
[self.app/*@START_MENU_TOKEN@*/.tables[@"mainTableView"]/*[[".dialogs",".scrollViews.tables[@\"mainTableView\"]",".tables[@\"mainTableView\"]"],[[[-1,2],[-1,1],[-1,0,1]],[[-1,2],[-1,1]]],[0]]@END_MENU_TOKEN@*/ typeKey:@"," modifierFlags:XCUIKeyModifierCommand]; |
|
|
|
XCUIElement *appearance = [[self.app.toolbars buttons] elementBoundByIndex: 1]; |
|
[appearance click]; |
|
|
|
XCUIElement *timeFormat = self.app.popUpButtons[@"TimeFormatPopover"]; |
|
[timeFormat click]; |
|
XCUIElementQuery *const query = [[[timeFormat childrenMatchingType:XCUIElementTypeMenu] firstMatch] childrenMatchingType:0]; |
|
[[query elementBoundByIndex:1] click]; // 1 is 24-Hour |
|
|
|
XCUIElementQuery *mainTableView = [[self.app.tables[@"mainTableView"] cells] staticTexts]; |
|
|
|
NSPredicate *timeCells = [NSPredicate predicateWithFormat:@"identifier like 'ActualTime'"]; |
|
XCUIElementQuery *elements = [mainTableView matchingPredicate:timeCells]; |
|
|
|
for (NSInteger i = 0; i < elements.count; i++) { |
|
XCUIElement *currentElement = [elements elementBoundByIndex:i]; |
|
NSString *currentTime = (NSString *)currentElement.value; |
|
XCTAssertFalse([currentTime containsString:@"AM"] || [currentTime containsString:@"PM"]); |
|
} |
|
|
|
} |
|
|
|
- (void)reset:(XCUIElement *)field withText:(NSString *)text { |
|
|
|
NSString *currentValue = (NSString *)field.value; |
|
|
|
for (NSInteger i = 0; i < currentValue.length; i++) { |
|
[field typeKey:XCUIKeyboardKeyDelete modifierFlags:XCUIKeyModifierNone]; |
|
} |
|
|
|
[field typeText:text]; |
|
} |
|
|
|
@end
|
|
|