earlgrey 1.13.0 → 1.14.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: d27489bee95f5108c5762737e346df7c19465cd5
4
- data.tar.gz: f16b00bbef00425cbea57313bef664f15e7e0435
2
+ SHA256:
3
+ metadata.gz: b0fd78736a6bd318523f914889b82f8d73bcc0ef05ab43df222bb5606de0693e
4
+ data.tar.gz: 626a0e999f96bcd70e1083bd50866b271219d5862f6826275e9efaf123398f63
5
5
  SHA512:
6
- metadata.gz: bf5678c94c3b26dae74540f519e53b55afcfe79e919787d4270694166b4f2c707caee868ed8561fb081b778212df261b2ed97f9731ec52e4579cf929c6258fdb
7
- data.tar.gz: 2864b1265244c21224f029d321b8ada71fa0814706a62b69475be06330eda33df2a1805151a64cd52e579b79ffd11936fd9b8b8aa203cd527a3746b822041a09
6
+ metadata.gz: 4980ec74cb857edf363a0a034dbd750adeb6a2e4f2bf2e854299e9b939a5fa19d8634e9ab379dab7b5079e07ea375f102b903f9450e1620abf4fafcb66591869
7
+ data.tar.gz: d4fe8be26881f0860e95f70e2a668e9bdb46a2a9abc52c9b7a5ef7de3fad80385ae3675c03545d2a87703cc7f83ffff6b91084475e94c9b29f4ce131198cd33e
@@ -23,7 +23,7 @@ module EarlGrey
23
23
  method_option :project, aliases: '-p', type: :string, required: false, desc: 'Project'
24
24
  method_option :scheme, aliases: '-s', type: :string, required: false, desc: 'EarlGreyTestTarget.xcscheme'
25
25
  method_option :swift, type: :boolean, default: true
26
- method_option :swift_version, type: :string, default: '3.0', enum: %w[2.3 3.0]
26
+ method_option :swift_version, type: :string, default: '4.0', enum: %w[3.0 4.0]
27
27
  method_option :target, aliases: '-t', type: :string, required: true, desc: 'EarlGreyTestTarget'
28
28
 
29
29
  PROJECT = 'project'.freeze
@@ -105,7 +105,7 @@ module EarlGrey
105
105
  def set_defaults(project_name, test_target_name, scheme_file, opts = {})
106
106
  @swift = opts.fetch(:swift, false)
107
107
  @carthage = opts.fetch(:carthage, false)
108
- @swift_version = opts.fetch(:swift_version, '3.0')
108
+ @swift_version = opts.fetch(:swift_version, '4.0')
109
109
 
110
110
  puts_magenta "Checking and Updating #{project_name} for EarlGrey."
111
111
  project_file = path_for project_name, '.xcodeproj'
@@ -368,7 +368,7 @@ module EarlGrey
368
368
 
369
369
  raise "Test target group not found! #{test_target_group}" unless test_target_group
370
370
 
371
- swift_version ||= '3.0'
371
+ swift_version ||= '4.0'
372
372
  src_root = File.join(__dir__, 'files')
373
373
  dst_root = test_target_group.real_path
374
374
  raise "Missing target folder #{dst_root}" unless File.exist? dst_root
@@ -378,8 +378,8 @@ module EarlGrey
378
378
 
379
379
  unless File.exist? src_swift
380
380
  puts_magenta "EarlGrey.swift for version #{swift_version} not found. " \
381
- 'Falling back to version 3.0.'
382
- swift_fallback = 'Swift-3.0'
381
+ 'Falling back to version 4.0.'
382
+ swift_fallback = 'Swift-4.0'
383
383
  src_swift = File.join(src_root, swift_fallback, src_swift_name)
384
384
  raise "Unable to locate #{swift_fallback} file at path #{src_swift}." unless File.exist?(src_swift)
385
385
  end
@@ -5,7 +5,7 @@ class EarlGreyYaml
5
5
 
6
6
  def initialize(analyzer, podfile)
7
7
  @analyzer = analyzer
8
- earlgrey_yml_path = File.join(File.dirname(podfile.defined_in_file), 'earlgrey_gem.yml')
8
+ earlgrey_yml_path = File.join(File.dirname(podfile.defined_in_file.to_s), 'earlgrey_gem.yml')
9
9
 
10
10
  @earlgrey_yml = {}
11
11
  @earlgrey_yml = YAML.safe_load(File.read(earlgrey_yml_path)) if File.exist?(earlgrey_yml_path)
@@ -48,15 +48,17 @@ public func GREYAssertNotEqual(_ left: @autoclosure () -> AnyObject?,
48
48
  }
49
49
 
50
50
  public func GREYAssertEqualObjects<T: Equatable>( _ left: @autoclosure () -> T?,
51
- _ right: @autoclosure () -> T?, reason: String) {
52
- GREYAssert(left() == right(), reason, details: "Expected object of the left term to be equal" +
53
- " to the object of the right term")
51
+ _ right: @autoclosure () -> T?,
52
+ reason: String) {
53
+ GREYAssert(left() == right(), reason, details: "Expected object of the left term to be equal " +
54
+ "to the object of the right term")
54
55
  }
55
56
 
56
57
  public func GREYAssertNotEqualObjects<T: Equatable>( _ left: @autoclosure () -> T?,
57
- _ right: @autoclosure () -> T?, reason: String) {
58
- GREYAssert(left() != right(), reason, details: "Expected object of the left term to not" +
59
- " equal the object of the right term")
58
+ _ right: @autoclosure () -> T?,
59
+ reason: String) {
60
+ GREYAssert(left() != right(), reason, details: "Expected object of the left term to not " +
61
+ "equal the object of the right term")
60
62
  }
61
63
 
62
64
  public func GREYFail(_ reason: String) {
@@ -97,34 +99,26 @@ private func GREYWaitUntilIdle() {
97
99
  }
98
100
 
99
101
  open class EarlGrey: NSObject {
100
- public static func selectElement(with matcher: GREYMatcher,
101
- file: StaticString = #file,
102
- line: UInt = #line) -> GREYInteraction {
103
- return EarlGreyImpl.invoked(fromFile: file.description, lineNumber: line)
104
- .selectElement(with: matcher)
105
- }
106
-
107
- @available(*, deprecated, renamed: "selectElement(with:)")
108
102
  open class func select(elementWithMatcher matcher:GREYMatcher,
109
103
  file: StaticString = #file,
110
104
  line: UInt = #line) -> GREYElementInteraction {
111
105
  return EarlGreyImpl.invoked(fromFile: file.description, lineNumber: line)
112
- .selectElement(with: matcher)
106
+ .selectElement(with: matcher)
113
107
  }
114
108
 
115
109
  open class func setFailureHandler(handler: GREYFailureHandler,
116
- file: StaticString = #file,
117
- line: UInt = #line) {
110
+ file: StaticString = #file,
111
+ line: UInt = #line) {
118
112
  return EarlGreyImpl.invoked(fromFile: file.description, lineNumber: line)
119
- .setFailureHandler(handler)
113
+ .setFailureHandler(handler)
120
114
  }
121
115
 
122
116
  open class func handle(exception: GREYFrameworkException,
123
- details: String,
124
- file: StaticString = #file,
125
- line: UInt = #line) {
117
+ details: String,
118
+ file: StaticString = #file,
119
+ line: UInt = #line) {
126
120
  return EarlGreyImpl.invoked(fromFile: file.description, lineNumber: line)
127
- .handle(exception, details: details)
121
+ .handle(exception, details: details)
128
122
  }
129
123
 
130
124
  @discardableResult open class func rotateDeviceTo(orientation: UIDeviceOrientation,
@@ -132,40 +126,20 @@ open class EarlGrey: NSObject {
132
126
  file: StaticString = #file,
133
127
  line: UInt = #line)
134
128
  -> Bool {
135
- return EarlGreyImpl.invoked(fromFile: file.description, lineNumber: line)
136
- .rotateDevice(to: orientation,
137
- errorOrNil: errorOrNil)
129
+ return EarlGreyImpl.invoked(fromFile: file.description, lineNumber: line)
130
+ .rotateDevice(to: orientation,
131
+ errorOrNil: errorOrNil)
138
132
  }
139
133
  }
140
134
 
141
135
  extension GREYInteraction {
142
136
  @discardableResult public func assert(_ matcher: @autoclosure () -> GREYMatcher) -> Self {
143
- return self.__assert(with: matcher())
137
+ return self.assert(with:matcher())
144
138
  }
145
139
 
146
140
  @discardableResult public func assert(_ matcher: @autoclosure () -> GREYMatcher,
147
141
  error:UnsafeMutablePointer<NSError?>!) -> Self {
148
- return self.__assert(with: matcher(), error: error)
149
- }
150
-
151
- @available(*, deprecated, renamed: "assert(_:)")
152
- @discardableResult public func assert(with matcher: GREYMatcher!) -> Self {
153
- return self.__assert(with: matcher)
154
- }
155
-
156
- @available(*, deprecated, renamed: "assert(_:error:)")
157
- @discardableResult public func assert(with matcher: GREYMatcher!,
158
- error:UnsafeMutablePointer<NSError?>!) -> Self {
159
- return self.__assert(with: matcher, error: error)
160
- }
161
-
162
- @discardableResult public func perform(_ action: GREYAction!) -> Self {
163
- return self.__perform(action)
164
- }
165
-
166
- @discardableResult public func perform(_ action: GREYAction!,
167
- error:UnsafeMutablePointer<NSError?>!) -> Self {
168
- return self.__perform(action, error: error)
142
+ return self.assert(with: matcher(), error: error)
169
143
  }
170
144
 
171
145
  @discardableResult public func using(searchAction: GREYAction,
@@ -181,6 +155,6 @@ extension GREYCondition {
181
155
 
182
156
  open func waitWithTimeout(seconds: CFTimeInterval, pollInterval: CFTimeInterval)
183
157
  -> Bool {
184
- return self.wait(withTimeout: seconds, pollInterval: pollInterval)
158
+ return self.wait(withTimeout: seconds, pollInterval: pollInterval)
185
159
  }
186
160
  }
@@ -0,0 +1,188 @@
1
+ //
2
+ // Copyright 2018 Google Inc.
3
+ //
4
+ // Licensed under the Apache License, Version 2.0 (the "License");
5
+ // you may not use this file except in compliance with the License.
6
+ // You may obtain a copy of the License at
7
+ //
8
+ // http://www.apache.org/licenses/LICENSE-2.0
9
+ //
10
+ // Unless required by applicable law or agreed to in writing, software
11
+ // distributed under the License is distributed on an "AS IS" BASIS,
12
+ // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ // See the License for the specific language governing permissions and
14
+ // limitations under the License.
15
+ //
16
+
17
+ import EarlGrey
18
+ import Foundation
19
+
20
+ public func GREYAssert(_ expression: @autoclosure () -> Bool, reason: String) {
21
+ GREYAssert(expression, reason, details: "Expected expression to be true")
22
+ }
23
+
24
+ public func GREYAssertTrue(_ expression: @autoclosure () -> Bool, reason: String) {
25
+ GREYAssert(expression(), reason, details: "Expected the boolean expression to be true")
26
+ }
27
+
28
+ public func GREYAssertFalse(_ expression: @autoclosure () -> Bool, reason: String) {
29
+ GREYAssert(!expression(), reason, details: "Expected the boolean expression to be false")
30
+ }
31
+
32
+ public func GREYAssertNotNil(_ expression: @autoclosure ()-> Any?, reason: String) {
33
+ GREYAssert(expression() != nil, reason, details: "Expected expression to be not nil")
34
+ }
35
+
36
+ public func GREYAssertNil(_ expression: @autoclosure () -> Any?, reason: String) {
37
+ GREYAssert(expression() == nil, reason, details: "Expected expression to be nil")
38
+ }
39
+
40
+ public func GREYAssertEqual(_ left: @autoclosure () -> AnyObject?,
41
+ _ right: @autoclosure () -> AnyObject?, reason: String) {
42
+ GREYAssert(left() === right(), reason, details: "Expected left term to be equal to right term")
43
+ }
44
+
45
+ public func GREYAssertNotEqual(_ left: @autoclosure () -> AnyObject?,
46
+ _ right: @autoclosure () -> AnyObject?, reason: String) {
47
+ GREYAssert(left() !== right(), reason, details: "Expected left term to not equal the right term")
48
+ }
49
+
50
+ public func GREYAssertEqualObjects<T: Equatable>( _ left: @autoclosure () -> T?,
51
+ _ right: @autoclosure () -> T?,
52
+ reason: String) {
53
+ GREYAssert(left() == right(), reason, details: "Expected object of the left term to be equal " +
54
+ "to the object of the right term")
55
+ }
56
+
57
+ public func GREYAssertNotEqualObjects<T: Equatable>( _ left: @autoclosure () -> T?,
58
+ _ right: @autoclosure () -> T?,
59
+ reason: String) {
60
+ GREYAssert(left() != right(), reason, details: "Expected object of the left term to not " +
61
+ "equal the object of the right term")
62
+ }
63
+
64
+ public func GREYFail(_ reason: String) {
65
+ EarlGrey.handle(exception: GREYFrameworkException(name: kGREYAssertionFailedException,
66
+ reason: reason),
67
+ details: "")
68
+ }
69
+
70
+ public func GREYFailWithDetails(_ reason: String, details: String) {
71
+ EarlGrey.handle(exception: GREYFrameworkException(name: kGREYAssertionFailedException,
72
+ reason: reason),
73
+ details: details)
74
+ }
75
+
76
+ private func GREYAssert(_ expression: @autoclosure () -> Bool,
77
+ _ reason: String, details: String) {
78
+ GREYSetCurrentAsFailable()
79
+ GREYWaitUntilIdle()
80
+ if !expression() {
81
+ EarlGrey.handle(exception: GREYFrameworkException(name: kGREYAssertionFailedException,
82
+ reason: reason),
83
+ details: details)
84
+ }
85
+ }
86
+
87
+ private func GREYSetCurrentAsFailable() {
88
+ let greyFailureHandlerSelector =
89
+ #selector(GREYFailureHandler.setInvocationFile(_:andInvocationLine:))
90
+ let greyFailureHandler =
91
+ Thread.current.threadDictionary.value(forKey: kGREYFailureHandlerKey) as! GREYFailureHandler
92
+ if greyFailureHandler.responds(to: greyFailureHandlerSelector) {
93
+ greyFailureHandler.setInvocationFile!(#file, andInvocationLine:#line)
94
+ }
95
+ }
96
+
97
+ private func GREYWaitUntilIdle() {
98
+ GREYUIThreadExecutor.sharedInstance().drainUntilIdle()
99
+ }
100
+
101
+ open class EarlGrey: NSObject {
102
+ public static func selectElement(with matcher: GREYMatcher,
103
+ file: StaticString = #file,
104
+ line: UInt = #line) -> GREYInteraction {
105
+ return EarlGreyImpl.invoked(fromFile: file.description, lineNumber: line)
106
+ .selectElement(with: matcher)
107
+ }
108
+
109
+ @available(*, deprecated, renamed: "selectElement(with:)")
110
+ open class func select(elementWithMatcher matcher:GREYMatcher,
111
+ file: StaticString = #file,
112
+ line: UInt = #line) -> GREYElementInteraction {
113
+ return EarlGreyImpl.invoked(fromFile: file.description, lineNumber: line)
114
+ .selectElement(with: matcher)
115
+ }
116
+
117
+ open class func setFailureHandler(handler: GREYFailureHandler,
118
+ file: StaticString = #file,
119
+ line: UInt = #line) {
120
+ return EarlGreyImpl.invoked(fromFile: file.description, lineNumber: line)
121
+ .setFailureHandler(handler)
122
+ }
123
+
124
+ open class func handle(exception: GREYFrameworkException,
125
+ details: String,
126
+ file: StaticString = #file,
127
+ line: UInt = #line) {
128
+ return EarlGreyImpl.invoked(fromFile: file.description, lineNumber: line)
129
+ .handle(exception, details: details)
130
+ }
131
+
132
+ @discardableResult open class func rotateDeviceTo(orientation: UIDeviceOrientation,
133
+ errorOrNil: UnsafeMutablePointer<NSError?>!,
134
+ file: StaticString = #file,
135
+ line: UInt = #line)
136
+ -> Bool {
137
+ return EarlGreyImpl.invoked(fromFile: file.description, lineNumber: line)
138
+ .rotateDevice(to: orientation,
139
+ errorOrNil: errorOrNil)
140
+ }
141
+ }
142
+
143
+ extension GREYInteraction {
144
+ @discardableResult public func assert(_ matcher: @autoclosure () -> GREYMatcher) -> Self {
145
+ return self.__assert(with: matcher())
146
+ }
147
+
148
+ @discardableResult public func assert(_ matcher: @autoclosure () -> GREYMatcher,
149
+ error:UnsafeMutablePointer<NSError?>!) -> Self {
150
+ return self.__assert(with: matcher(), error: error)
151
+ }
152
+
153
+ @available(*, deprecated, renamed: "assert(_:)")
154
+ @discardableResult public func assert(with matcher: GREYMatcher!) -> Self {
155
+ return self.__assert(with: matcher)
156
+ }
157
+
158
+ @available(*, deprecated, renamed: "assert(_:error:)")
159
+ @discardableResult public func assert(with matcher: GREYMatcher!,
160
+ error:UnsafeMutablePointer<NSError?>!) -> Self {
161
+ return self.__assert(with: matcher, error: error)
162
+ }
163
+
164
+ @discardableResult public func perform(_ action: GREYAction!) -> Self {
165
+ return self.__perform(action)
166
+ }
167
+
168
+ @discardableResult public func perform(_ action: GREYAction!,
169
+ error:UnsafeMutablePointer<NSError?>!) -> Self {
170
+ return self.__perform(action, error: error)
171
+ }
172
+
173
+ @discardableResult public func using(searchAction: GREYAction,
174
+ onElementWithMatcher matcher: GREYMatcher) -> Self {
175
+ return self.usingSearch(searchAction, onElementWith: matcher)
176
+ }
177
+ }
178
+
179
+ extension GREYCondition {
180
+ open func waitWithTimeout(seconds: CFTimeInterval) -> Bool {
181
+ return self.wait(withTimeout: seconds)
182
+ }
183
+
184
+ open func waitWithTimeout(seconds: CFTimeInterval, pollInterval: CFTimeInterval)
185
+ -> Bool {
186
+ return self.wait(withTimeout: seconds, pollInterval: pollInterval)
187
+ }
188
+ }
@@ -14,5 +14,5 @@
14
14
  # limitations under the License.
15
15
 
16
16
  module EarlGrey
17
- VERSION = '1.13.0'.freeze unless defined? ::EarlGrey::VERSION
17
+ VERSION = '1.14.0'.freeze unless defined? ::EarlGrey::VERSION
18
18
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: earlgrey
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.13.0
4
+ version: 1.14.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - khandpur
@@ -11,7 +11,7 @@ authors:
11
11
  autorequire:
12
12
  bindir: bin
13
13
  cert_chain: []
14
- date: 2018-04-05 00:00:00.000000000 Z
14
+ date: 2018-05-31 00:00:00.000000000 Z
15
15
  dependencies:
16
16
  - !ruby/object:Gem::Dependency
17
17
  name: colored
@@ -127,8 +127,8 @@ files:
127
127
  - lib/earlgrey/extensions/aggregate_target_extensions.rb
128
128
  - lib/earlgrey/extensions/analyzer_extensions.rb
129
129
  - lib/earlgrey/extensions/earlgrey_yaml.rb
130
- - lib/earlgrey/files/Swift-2.3/EarlGrey.swift
131
130
  - lib/earlgrey/files/Swift-3.0/EarlGrey.swift
131
+ - lib/earlgrey/files/Swift-4.0/EarlGrey.swift
132
132
  - lib/earlgrey/version.rb
133
133
  homepage: https://github.com/google/EarlGrey
134
134
  licenses:
@@ -150,7 +150,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
150
150
  version: '0'
151
151
  requirements: []
152
152
  rubyforge_project:
153
- rubygems_version: 2.5.2
153
+ rubygems_version: 2.7.6
154
154
  signing_key:
155
155
  specification_version: 4
156
156
  summary: EarlGrey installer gem
@@ -1,115 +0,0 @@
1
- //
2
- // Copyright 2016 Google Inc.
3
- //
4
- // Licensed under the Apache License, Version 2.0 (the "License");
5
- // you may not use this file except in compliance with the License.
6
- // You may obtain a copy of the License at
7
- //
8
- // http://www.apache.org/licenses/LICENSE-2.0
9
- //
10
- // Unless required by applicable law or agreed to in writing, software
11
- // distributed under the License is distributed on an "AS IS" BASIS,
12
- // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
- // See the License for the specific language governing permissions and
14
- // limitations under the License.
15
- //
16
-
17
- import EarlGrey
18
- import Foundation
19
-
20
- let greyFailureHandler =
21
- NSThread.currentThread().threadDictionary
22
- .valueForKey(kGREYFailureHandlerKey) as! GREYFailureHandler
23
-
24
- public func EarlGrey(file: String = #file, line: UInt = #line) -> EarlGreyImpl! {
25
- return EarlGreyImpl.invokedFromFile(file, lineNumber: line)
26
- }
27
-
28
- public func GREYAssert(@autoclosure expression: () -> BooleanType, reason: String) {
29
- GREYAssert(expression, reason, details: "Expected expression to be true")
30
- }
31
-
32
- public func GREYAssertTrue(@autoclosure expression: () -> BooleanType, reason: String) {
33
- GREYAssert(expression().boolValue,
34
- reason,
35
- details: "Expected the boolean expression to be true")
36
- }
37
-
38
- public func GREYAssertFalse(@autoclosure expression: () -> BooleanType, reason: String) {
39
- GREYAssert(!expression().boolValue,
40
- reason,
41
- details: "Expected the boolean expression to be false")
42
- }
43
-
44
- public func GREYAssertNotNil(@autoclosure expression: () -> Any?, reason: String) {
45
- GREYAssert(expression() != nil, reason, details: "Expected expression to be not nil")
46
- }
47
-
48
- public func GREYAssertNil(@autoclosure expression: () -> Any?, reason: String) {
49
- GREYAssert(expression() == nil, reason, details: "Expected expression to be nil")
50
- }
51
-
52
- public func GREYAssertEqual(@autoclosure left: () -> AnyObject?,
53
- @autoclosure _ right: () -> AnyObject?, reason: String) {
54
- GREYAssert(left() === right(), reason, details: "Expected left term to be equal to right term")
55
- }
56
-
57
- public func GREYAssertNotEqual(@autoclosure left: () -> AnyObject?,
58
- @autoclosure _ right: () -> AnyObject?, reason: String) {
59
- GREYAssert(left() !== right(), reason, details: "Expected left term to not be equal to right" +
60
- " term")
61
- }
62
-
63
- public func GREYAssertEqualObjects<T : Equatable>(@autoclosure left: () -> T?,
64
- @autoclosure _ right: () -> T?, reason: String) {
65
- GREYAssert(left() == right(), reason, details: "Expected object of the left term to be equal" +
66
- " to the object of the right term")
67
- }
68
-
69
- public func GREYAssertNotEqualObjects<T : Equatable>(@autoclosure left: () -> T?,
70
- @autoclosure _ right: () -> T?, reason: String) {
71
- GREYAssert(left() != right(), reason, details: "Expected object of the left term to not be" +
72
- " equal to the object of the right term")
73
- }
74
-
75
- public func GREYFail(reason: String) {
76
- greyFailureHandler.handleException(GREYFrameworkException(name: kGREYAssertionFailedException,
77
- reason: reason),
78
- details: "")
79
- }
80
-
81
- @available(*, deprecated=1.2.0, message="Please use GREYFAIL::withDetails instead.")
82
- public func GREYFail(reason: String, details: String) {
83
- greyFailureHandler.handleException(GREYFrameworkException(name: kGREYAssertionFailedException,
84
- reason: reason),
85
- details: details)
86
- }
87
-
88
- public func GREYFailWithDetails(reason: String, details: String) {
89
- greyFailureHandler.handleException(GREYFrameworkException(name: kGREYAssertionFailedException,
90
- reason: reason),
91
- details: details)
92
- }
93
-
94
- private func GREYAssert(@autoclosure expression: () -> BooleanType,
95
- _ reason: String, details: String) {
96
- GREYSetCurrentAsFailable()
97
- GREYWaitUntilIdle()
98
- if !expression().boolValue {
99
- greyFailureHandler.handleException(GREYFrameworkException(name: kGREYAssertionFailedException,
100
- reason: reason),
101
- details: details)
102
- }
103
- }
104
-
105
- private func GREYWaitUntilIdle() {
106
- GREYUIThreadExecutor.sharedInstance().drainUntilIdle()
107
- }
108
-
109
- private func GREYSetCurrentAsFailable(file: String = #file, line: UInt = #line) {
110
- let greyFailureHandlerSelector =
111
- #selector(GREYFailureHandler.setInvocationFile(_:andInvocationLine:))
112
- if greyFailureHandler.respondsToSelector(greyFailureHandlerSelector) {
113
- greyFailureHandler.setInvocationFile!(file, andInvocationLine: line)
114
- }
115
- }