初始化提交
This commit is contained in:
133
WebDriverAgentTests/IntegrationTests/FBSessionIntegrationTests.m
Normal file
133
WebDriverAgentTests/IntegrationTests/FBSessionIntegrationTests.m
Normal file
@@ -0,0 +1,133 @@
|
||||
/**
|
||||
* Copyright (c) 2015-present, Facebook, Inc.
|
||||
* All rights reserved.
|
||||
*
|
||||
* This source code is licensed under the BSD-style license found in the
|
||||
* LICENSE file in the root directory of this source tree.
|
||||
*/
|
||||
|
||||
#import <XCTest/XCTest.h>
|
||||
|
||||
#import "FBIntegrationTestCase.h"
|
||||
#import "FBExceptions.h"
|
||||
#import "FBMacros.h"
|
||||
#import "FBSession.h"
|
||||
#import "FBXCodeCompatibility.h"
|
||||
#import "FBTestMacros.h"
|
||||
#import "FBUnattachedAppLauncher.h"
|
||||
#import "XCUIApplication+FBHelpers.h"
|
||||
#import "XCUIApplication.h"
|
||||
|
||||
@interface FBSession (Tests)
|
||||
|
||||
@end
|
||||
|
||||
@interface FBSessionIntegrationTests : FBIntegrationTestCase
|
||||
@property (nonatomic) FBSession *session;
|
||||
@end
|
||||
|
||||
|
||||
static NSString *const SETTINGS_BUNDLE_ID = @"com.apple.Preferences";
|
||||
|
||||
@implementation FBSessionIntegrationTests
|
||||
|
||||
- (void)setUp
|
||||
{
|
||||
[super setUp];
|
||||
[self launchApplication];
|
||||
XCUIApplication *app = [[XCUIApplication alloc] initWithBundleIdentifier:self.testedApplication.bundleID];
|
||||
self.session = [FBSession initWithApplication:app];
|
||||
}
|
||||
|
||||
- (void)tearDown
|
||||
{
|
||||
[self.session kill];
|
||||
[super tearDown];
|
||||
}
|
||||
|
||||
- (void)testSettingsAppCanBeOpenedInScopeOfTheCurrentSession
|
||||
{
|
||||
XCUIApplication *testedApp = XCUIApplication.fb_activeApplication;
|
||||
[self.session launchApplicationWithBundleId:SETTINGS_BUNDLE_ID
|
||||
shouldWaitForQuiescence:nil
|
||||
arguments:nil
|
||||
environment:nil];
|
||||
FBAssertWaitTillBecomesTrue([self.session.activeApplication.bundleID isEqualToString:SETTINGS_BUNDLE_ID]);
|
||||
XCTAssertEqual([self.session applicationStateWithBundleId:SETTINGS_BUNDLE_ID], 4);
|
||||
[self.session activateApplicationWithBundleId:testedApp.bundleID];
|
||||
FBAssertWaitTillBecomesTrue([self.session.activeApplication.bundleID isEqualToString: testedApp.bundleID]);
|
||||
XCTAssertEqual([self.session applicationStateWithBundleId:testedApp.bundleID], 4);
|
||||
}
|
||||
|
||||
- (void)testSettingsAppCanBeReopenedInScopeOfTheCurrentSession
|
||||
{
|
||||
XCUIApplication *systemApp = self.springboard;
|
||||
[self.session launchApplicationWithBundleId:SETTINGS_BUNDLE_ID
|
||||
shouldWaitForQuiescence:nil
|
||||
arguments:nil
|
||||
environment:nil];
|
||||
FBAssertWaitTillBecomesTrue([self.session.activeApplication.bundleID isEqualToString:SETTINGS_BUNDLE_ID]);
|
||||
XCTAssertTrue([self.session terminateApplicationWithBundleId:SETTINGS_BUNDLE_ID]);
|
||||
FBAssertWaitTillBecomesTrue([systemApp.bundleID isEqualToString:self.session.activeApplication.bundleID]);
|
||||
[self.session launchApplicationWithBundleId:SETTINGS_BUNDLE_ID
|
||||
shouldWaitForQuiescence:nil
|
||||
arguments:nil
|
||||
environment:nil];
|
||||
FBAssertWaitTillBecomesTrue([self.session.activeApplication.bundleID isEqualToString:SETTINGS_BUNDLE_ID]);
|
||||
}
|
||||
|
||||
- (void)testMainAppCanBeReactivatedInScopeOfTheCurrentSession
|
||||
{
|
||||
XCUIApplication *testedApp = XCUIApplication.fb_activeApplication;
|
||||
[self.session launchApplicationWithBundleId:SETTINGS_BUNDLE_ID
|
||||
shouldWaitForQuiescence:nil
|
||||
arguments:nil
|
||||
environment:nil];
|
||||
FBAssertWaitTillBecomesTrue([self.session.activeApplication.bundleID isEqualToString:SETTINGS_BUNDLE_ID]);
|
||||
[self.session activateApplicationWithBundleId:testedApp.bundleID];
|
||||
FBAssertWaitTillBecomesTrue([self.session.activeApplication.bundleID isEqualToString:testedApp.bundleID]);
|
||||
}
|
||||
|
||||
- (void)testMainAppCanBeRestartedInScopeOfTheCurrentSession
|
||||
{
|
||||
XCUIApplication *systemApp = self.springboard;
|
||||
XCUIApplication *testedApp = [[XCUIApplication alloc] initWithBundleIdentifier:self.testedApplication.bundleID];
|
||||
[self.session terminateApplicationWithBundleId:testedApp.bundleID];
|
||||
FBAssertWaitTillBecomesTrue([self.session.activeApplication.bundleID isEqualToString:systemApp.bundleID]);
|
||||
[self.session launchApplicationWithBundleId:testedApp.bundleID
|
||||
shouldWaitForQuiescence:nil
|
||||
arguments:nil
|
||||
environment:nil];
|
||||
FBAssertWaitTillBecomesTrue([self.session.activeApplication.bundleID isEqualToString:testedApp.bundleID]);
|
||||
}
|
||||
|
||||
- (void)testLaunchUnattachedApp
|
||||
{
|
||||
[FBUnattachedAppLauncher launchAppWithBundleId:SETTINGS_BUNDLE_ID];
|
||||
[self.session kill];
|
||||
XCTAssertEqualObjects(SETTINGS_BUNDLE_ID, XCUIApplication.fb_activeApplication.bundleID);
|
||||
}
|
||||
|
||||
- (void)testAppWithInvalidBundleIDCannotBeStarted
|
||||
{
|
||||
XCUIApplication *testedApp = [[XCUIApplication alloc] initWithBundleIdentifier:@"yolo"];
|
||||
@try {
|
||||
[testedApp launch];
|
||||
XCTFail(@"An exception is expected to be thrown");
|
||||
} @catch (NSException *exception) {
|
||||
XCTAssertEqualObjects(FBApplicationMissingException, exception.name);
|
||||
}
|
||||
}
|
||||
|
||||
- (void)testAppWithInvalidBundleIDCannotBeActivated
|
||||
{
|
||||
XCUIApplication *testedApp = [[XCUIApplication alloc] initWithBundleIdentifier:@"yolo"];
|
||||
@try {
|
||||
[testedApp activate];
|
||||
XCTFail(@"An exception is expected to be thrown");
|
||||
} @catch (NSException *exception) {
|
||||
XCTAssertEqualObjects(FBApplicationMissingException, exception.name);
|
||||
}
|
||||
}
|
||||
|
||||
@end
|
||||
Reference in New Issue
Block a user