mirror of
https://bitbucket.org/vendoo/vendoo_v1.0.git
synced 2025-12-25 03:37:39 +00:00
97 lines
2.8 KiB
Objective-C
97 lines
2.8 KiB
Objective-C
//
|
|
// Copyright (c) 2015 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 <UIKit/UIKit.h>
|
|
#import <XCTest/XCTest.h>
|
|
|
|
#import <Google/Analytics.h>
|
|
|
|
#import "LogWrapper.h"
|
|
|
|
static NSString * const kSearchTerm = @": Sending hit(s) ";
|
|
|
|
@interface AppTests : XCTestCase
|
|
@end
|
|
|
|
@implementation AppTests {
|
|
LogWrapper *_logWrapper;
|
|
UITabBarController *_patternsController;
|
|
GAI *_gai;
|
|
GAILogLevel _previousLogLevel;
|
|
}
|
|
|
|
- (instancetype)init {
|
|
if ((self = [super init])) {
|
|
_gai = [GAI sharedInstance];
|
|
}
|
|
return self;
|
|
}
|
|
|
|
- (void)setUp {
|
|
_logWrapper = [[LogWrapper alloc] init];
|
|
_previousLogLevel = _gai.logger.logLevel;
|
|
_gai.logger.logLevel = kGAILogLevelVerbose; // force verbose logging for test
|
|
|
|
UIWindow *window = [UIApplication sharedApplication].keyWindow;
|
|
UIViewController *rootViewController = window.rootViewController;
|
|
for (UIViewController *candidate in rootViewController.childViewControllers) {
|
|
if ([candidate isKindOfClass:[UITabBarController class]]) {
|
|
_patternsController = (UITabBarController *)candidate;
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
|
|
- (void)tearDown {
|
|
_logWrapper = nil;
|
|
_gai.logger.logLevel = _previousLogLevel;
|
|
}
|
|
|
|
- (void)testLogs {
|
|
XCTestExpectation *expectation =
|
|
[self expectationWithDescription:@"Send event inside logs"];
|
|
[_logWrapper lines]; // force clear
|
|
|
|
// Trigger a new, different tab to be shown.
|
|
XCTAssertEqual(_patternsController.selectedIndex, 0,
|
|
@"Expected left-most index to be initially selected");
|
|
_patternsController.selectedIndex = 2;
|
|
|
|
// Check the logs constantly until a send message is found.
|
|
NSTimer *timer = [NSTimer scheduledTimerWithTimeInterval:0.1
|
|
target:self
|
|
selector:@selector(checkTimer:)
|
|
userInfo:expectation
|
|
repeats:YES];
|
|
[self waitForExpectationsWithTimeout:10.0 handler:nil];
|
|
[timer invalidate];
|
|
}
|
|
|
|
- (void)checkTimer:(NSTimer *)timer {
|
|
XCTestExpectation *expectation = timer.userInfo;
|
|
NSArray *lines = [_logWrapper lines];
|
|
|
|
for (NSString *line in lines) {
|
|
if ([line containsString:kSearchTerm]) {
|
|
[expectation fulfill];
|
|
break;
|
|
}
|
|
}
|
|
|
|
}
|
|
|
|
@end
|