2015-03-23 13:28:42 -07:00
/ * *
* 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 . An additional grant
* of patent rights can be found in the PATENTS file in the same directory .
* /
2015-03-13 18:32:38 -07:00
# import < UIKit / UIKit . h >
# import < XCTest / XCTest . h >
# import < RCTTest / RCTTestRunner . h >
# import "RCTAssert.h"
2015-09-04 03:30:18 -07:00
# define RCT_TEST ( name ) \
- ( void ) test # # name \
{ \
[ _runner runTest : _cmd module : @ # name ] ; \
}
@ interface UIExplorerIntegrationTests : XCTestCase
2015-03-13 18:32:38 -07:00
@ end
2015-09-04 03:30:18 -07:00
@ implementation UIExplorerIntegrationTests
2015-04-14 17:51:28 -07:00
{
2015-03-13 18:32:38 -07:00
RCTTestRunner * _runner ;
}
- ( void ) setUp
{
2015-06-16 02:51:29 -07:00
# if __LP64 __
2015-08-01 07:44:05 -01:00
RCTAssert ( NO , @ "Tests should be run on 32-bit device simulators (e.g. iPhone 5)" ) ;
2015-03-24 10:20:13 -07:00
# endif
2015-06-16 02:51:29 -07:00
2015-08-24 09:14:33 -01:00
NSOperatingSystemVersion version = [ NSProcessInfo processInfo ] . operatingSystemVersion ;
2015-10-21 09:30:00 -07:00
RCTAssert ( ( version . majorVersion = = 8 && version . minorVersion >= 3 ) || version . majorVersion >= 9 , @ "Tests should be run on iOS 8.3+, found %zd.%zd.%zd" , version . majorVersion , version . minorVersion , version . patchVersion ) ;
2015-11-18 08:25:30 -08:00
_runner = RCTInitRunnerForApp ( @ "IntegrationTests/IntegrationTestsApp" , nil ) ;
2015-03-13 18:32:38 -07:00
}
2015-11-18 08:25:30 -08:00
# pragma mark - Test harness
2015-03-24 10:20:13 -07:00
2015-06-09 05:11:40 -07:00
- ( void ) testTheTester_waitOneFrame
2015-03-13 18:32:38 -07:00
{
2015-04-14 17:51:28 -07:00
[ _runner runTest : _cmd
module : @ "IntegrationTestHarnessTest"
initialProps : @ { @ "waitOneFrame" : @ YES }
2015-11-13 08:34:26 -08:00
configurationBlock : nil ] ;
2015-03-13 18:32:38 -07:00
}
2015-06-17 07:09:23 -07:00
- ( void ) testTheTester_ExpectError
2015-03-13 18:32:38 -07:00
{
2015-03-24 10:20:13 -07:00
[ _runner runTest : _cmd
module : @ "IntegrationTestHarnessTest"
2015-03-13 18:32:38 -07:00
initialProps : @ { @ "shouldThrow" : @ YES }
2015-11-13 08:34:26 -08:00
configurationBlock : nil
2015-04-14 17:51:28 -07:00
expectErrorRegex : @ "because shouldThrow" ] ;
2015-03-13 18:32:38 -07:00
}
2015-11-18 08:25:30 -08:00
# pragma mark - JS tests
2015-10-06 07:34:44 -07:00
// This list should be kept in sync with IntegrationTestsApp . js
2015-09-04 03:30:18 -07:00
RCT_TEST ( IntegrationTestHarnessTest )
2015-10-06 07:34:44 -07:00
RCT_TEST ( TimersTest )
2015-09-04 03:30:18 -07:00
RCT_TEST ( AsyncStorageTest )
RCT_TEST ( AppEventsTest )
2015-11-05 09:23:30 -08:00
// RCT_TEST ( ImageSnapshotTest ) // Disabled : #8985988
2015-11-18 08:25:30 -08:00
// RCT_TEST ( LayoutEventsTest ) // Disabled due to flakiness : #8686784
2015-10-06 07:34:44 -07:00
RCT_TEST ( SimpleSnapshotTest )
2015-11-18 08:25:30 -08:00
RCT_TEST ( PromiseTest )
2015-10-13 03:22:40 -07:00
2015-03-24 10:20:13 -07:00
2015-03-13 18:32:38 -07:00
@ end