earlgrey 1.12.1 → 1.13.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/bin/earlgrey +0 -0
- data/lib/earlgrey/cli.rb +0 -2
- data/lib/earlgrey/configure_earlgrey.rb +6 -12
- data/lib/earlgrey/extensions/analyzer_extensions.rb +10 -4
- data/lib/earlgrey/extensions/earlgrey_yaml.rb +59 -0
- data/lib/earlgrey/files/Swift-3.0/EarlGrey.swift +32 -4
- data/lib/earlgrey/version.rb +1 -1
- metadata +31 -30
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: d27489bee95f5108c5762737e346df7c19465cd5
|
4
|
+
data.tar.gz: f16b00bbef00425cbea57313bef664f15e7e0435
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: bf5678c94c3b26dae74540f519e53b55afcfe79e919787d4270694166b4f2c707caee868ed8561fb081b778212df261b2ed97f9731ec52e4579cf929c6258fdb
|
7
|
+
data.tar.gz: 2864b1265244c21224f029d321b8ada71fa0814706a62b69475be06330eda33df2a1805151a64cd52e579b79ffd11936fd9b8b8aa203cd527a3746b822041a09
|
data/bin/earlgrey
CHANGED
File without changes
|
data/lib/earlgrey/cli.rb
CHANGED
@@ -148,9 +148,11 @@ module EarlGrey
|
|
148
148
|
set_defaults(project_name, test_target_name, scheme_file, opts)
|
149
149
|
|
150
150
|
# Add DYLD_INSERT_LIBRARIES to the schemes
|
151
|
+
# rubocop:disable Performance/HashEachMethods
|
151
152
|
modify_scheme_for_actions(user_project, [test_target]).each do |_, scheme|
|
152
153
|
scheme.save!
|
153
154
|
end
|
155
|
+
# rubocop:enable Performance/HashEachMethods
|
154
156
|
|
155
157
|
# Add a Copy Files Build Phase for EarlGrey.framework to embed it into
|
156
158
|
# the app under test.
|
@@ -314,9 +316,7 @@ module EarlGrey
|
|
314
316
|
end
|
315
317
|
|
316
318
|
settings[HEADER_SEARCH_PATHS] = Array(settings[HEADER_SEARCH_PATHS])
|
317
|
-
unless settings[HEADER_SEARCH_PATHS].include?(CARTHAGE_HEADERS_IOS)
|
318
|
-
settings[HEADER_SEARCH_PATHS] << CARTHAGE_HEADERS_IOS
|
319
|
-
end
|
319
|
+
settings[HEADER_SEARCH_PATHS] << CARTHAGE_HEADERS_IOS unless settings[HEADER_SEARCH_PATHS].include?(CARTHAGE_HEADERS_IOS)
|
320
320
|
end
|
321
321
|
target
|
322
322
|
end
|
@@ -342,9 +342,7 @@ module EarlGrey
|
|
342
342
|
# the framework reference pointing to the EarlGrey.framework
|
343
343
|
def add_earlgrey_framework(target, framework_ref)
|
344
344
|
linked_frameworks = target.frameworks_build_phase.files.map(&:display_name)
|
345
|
-
unless linked_frameworks.include? EARLGREY_FRAMEWORK
|
346
|
-
target.frameworks_build_phase.add_file_reference framework_ref, true
|
347
|
-
end
|
345
|
+
target.frameworks_build_phase.add_file_reference framework_ref, true unless linked_frameworks.include? EARLGREY_FRAMEWORK
|
348
346
|
end
|
349
347
|
|
350
348
|
# Check if the target contains a swift source file
|
@@ -383,9 +381,7 @@ module EarlGrey
|
|
383
381
|
'Falling back to version 3.0.'
|
384
382
|
swift_fallback = 'Swift-3.0'
|
385
383
|
src_swift = File.join(src_root, swift_fallback, src_swift_name)
|
386
|
-
unless File.exist?(src_swift)
|
387
|
-
raise "Unable to locate #{swift_fallback} file at path #{src_swift}."
|
388
|
-
end
|
384
|
+
raise "Unable to locate #{swift_fallback} file at path #{src_swift}." unless File.exist?(src_swift)
|
389
385
|
end
|
390
386
|
dst_swift = File.join(dst_root, src_swift_name)
|
391
387
|
|
@@ -405,9 +401,7 @@ module EarlGrey
|
|
405
401
|
unless existing_sources.include? src_swift_name
|
406
402
|
target_files = test_target_group.files
|
407
403
|
earlgrey_swift_file_ref = target_files.find { |f| f.display_name == src_swift_name }
|
408
|
-
unless earlgrey_swift_file_ref
|
409
|
-
raise 'EarlGrey.swift not found in testing target'
|
410
|
-
end
|
404
|
+
raise 'EarlGrey.swift not found in testing target' unless earlgrey_swift_file_ref
|
411
405
|
target.source_build_phase.add_file_reference earlgrey_swift_file_ref, true
|
412
406
|
end
|
413
407
|
end
|
@@ -15,19 +15,25 @@
|
|
15
15
|
|
16
16
|
require_relative '../configure_earlgrey'
|
17
17
|
require_relative 'aggregate_target_extensions'
|
18
|
+
require_relative 'earlgrey_yaml'
|
18
19
|
|
19
20
|
module EarlGrey
|
20
21
|
module AnalyzerExtension
|
21
22
|
def analyze(*_)
|
22
23
|
result = super
|
24
|
+
earlgrey_yaml = EarlGreyYaml.new(result, podfile)
|
23
25
|
eg_targets = result.targets.select(&:is_earlgrey?).each do |target|
|
24
26
|
target.user_targets.each do |native_target|
|
25
|
-
|
26
|
-
|
27
|
+
config = earlgrey_yaml.lookup_target native_target
|
28
|
+
|
29
|
+
if config[EarlGreyYaml::ADD_SWIFT]
|
30
|
+
EarlGrey.copy_swift_files(target.user_project, native_target,
|
31
|
+
target.target_definition.swift_version)
|
32
|
+
end
|
27
33
|
|
28
34
|
framework_ref = EarlGrey.add_earlgrey_product target.user_project, false
|
29
|
-
EarlGrey.add_earlgrey_copy_files_script native_target, framework_ref
|
30
|
-
EarlGrey.add_earlgrey_framework native_target, framework_ref
|
35
|
+
EarlGrey.add_earlgrey_copy_files_script native_target, framework_ref if config[EarlGreyYaml::ADD_BUILD_PHASE]
|
36
|
+
EarlGrey.add_earlgrey_framework native_target, framework_ref if config[EarlGreyYaml::ADD_FRAMEWORK]
|
31
37
|
end
|
32
38
|
end
|
33
39
|
|
@@ -0,0 +1,59 @@
|
|
1
|
+
class EarlGreyYaml
|
2
|
+
ADD_SWIFT = 'add_swift'.freeze
|
3
|
+
ADD_BUILD_PHASE = 'add_build_phase'.freeze
|
4
|
+
ADD_FRAMEWORK = 'add_framework'.freeze
|
5
|
+
|
6
|
+
def initialize(analyzer, podfile)
|
7
|
+
@analyzer = analyzer
|
8
|
+
earlgrey_yml_path = File.join(File.dirname(podfile.defined_in_file), 'earlgrey_gem.yml')
|
9
|
+
|
10
|
+
@earlgrey_yml = {}
|
11
|
+
@earlgrey_yml = YAML.safe_load(File.read(earlgrey_yml_path)) if File.exist?(earlgrey_yml_path)
|
12
|
+
|
13
|
+
validate_targets
|
14
|
+
validate_keys
|
15
|
+
end
|
16
|
+
|
17
|
+
def validate_targets
|
18
|
+
config_targets = @earlgrey_yml.keys
|
19
|
+
existing_targets = @analyzer.targets.map(&:user_targets).flatten.map(&:name)
|
20
|
+
missing_targets = (config_targets - existing_targets).join(', ')
|
21
|
+
|
22
|
+
unless missing_targets.empty?
|
23
|
+
error = "ERROR: earlgrey_gem.yml references missing targets: #{missing_targets}\n"
|
24
|
+
error += "Valid targets: #{existing_targets}"
|
25
|
+
|
26
|
+
abort error
|
27
|
+
end
|
28
|
+
end
|
29
|
+
|
30
|
+
def validate_keys
|
31
|
+
unknown_keys = []
|
32
|
+
existing_keys = @earlgrey_yml.values.flatten.map(&:keys).flatten
|
33
|
+
existing_keys.each do |key|
|
34
|
+
unknown_keys << key unless [ADD_SWIFT, ADD_BUILD_PHASE, ADD_FRAMEWORK].include?(key)
|
35
|
+
end
|
36
|
+
unknown_keys = unknown_keys.join(', ')
|
37
|
+
|
38
|
+
abort "ERROR: earlgrey_gem.yml contains unknown keys: #{unknown_keys}".red unless unknown_keys.empty?
|
39
|
+
end
|
40
|
+
|
41
|
+
def lookup_target(native_target)
|
42
|
+
target = begin
|
43
|
+
@earlgrey_yml.fetch(native_target.name, {})
|
44
|
+
# rubocop:disable Style/RescueStandardError
|
45
|
+
rescue
|
46
|
+
abort("Invalid earlgrey_gem.yaml. Unable to fetch: #{native_target.name}")
|
47
|
+
end
|
48
|
+
# rubocop:enable Style/RescueStandardError
|
49
|
+
|
50
|
+
tmp = {}
|
51
|
+
target.map { |obj| obj.map { |k, v| tmp[k] = v } }
|
52
|
+
|
53
|
+
{
|
54
|
+
ADD_SWIFT => tmp.fetch(ADD_SWIFT, true),
|
55
|
+
ADD_BUILD_PHASE => tmp.fetch(ADD_BUILD_PHASE, true),
|
56
|
+
ADD_FRAMEWORK => tmp.fetch(ADD_FRAMEWORK, true)
|
57
|
+
}
|
58
|
+
end
|
59
|
+
end
|
@@ -97,9 +97,17 @@ private func GREYWaitUntilIdle() {
|
|
97
97
|
}
|
98
98
|
|
99
99
|
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:)")
|
100
108
|
open class func select(elementWithMatcher matcher:GREYMatcher,
|
101
|
-
|
102
|
-
|
109
|
+
file: StaticString = #file,
|
110
|
+
line: UInt = #line) -> GREYElementInteraction {
|
103
111
|
return EarlGreyImpl.invoked(fromFile: file.description, lineNumber: line)
|
104
112
|
.selectElement(with: matcher)
|
105
113
|
}
|
@@ -132,12 +140,32 @@ open class EarlGrey: NSObject {
|
|
132
140
|
|
133
141
|
extension GREYInteraction {
|
134
142
|
@discardableResult public func assert(_ matcher: @autoclosure () -> GREYMatcher) -> Self {
|
135
|
-
return self.
|
143
|
+
return self.__assert(with: matcher())
|
136
144
|
}
|
137
145
|
|
138
146
|
@discardableResult public func assert(_ matcher: @autoclosure () -> GREYMatcher,
|
139
147
|
error:UnsafeMutablePointer<NSError?>!) -> Self {
|
140
|
-
return 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)
|
141
169
|
}
|
142
170
|
|
143
171
|
@discardableResult public func using(searchAction: GREYAction,
|
data/lib/earlgrey/version.rb
CHANGED
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.
|
4
|
+
version: 1.13.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:
|
14
|
+
date: 2018-04-05 00:00:00.000000000 Z
|
15
15
|
dependencies:
|
16
16
|
- !ruby/object:Gem::Dependency
|
17
17
|
name: colored
|
@@ -28,89 +28,89 @@ dependencies:
|
|
28
28
|
- !ruby/object:Gem::Version
|
29
29
|
version: '1.2'
|
30
30
|
- !ruby/object:Gem::Dependency
|
31
|
-
name:
|
31
|
+
name: thor
|
32
32
|
requirement: !ruby/object:Gem::Requirement
|
33
33
|
requirements:
|
34
34
|
- - ">="
|
35
35
|
- !ruby/object:Gem::Version
|
36
|
-
version:
|
36
|
+
version: 0.19.1
|
37
37
|
type: :runtime
|
38
38
|
prerelease: false
|
39
39
|
version_requirements: !ruby/object:Gem::Requirement
|
40
40
|
requirements:
|
41
41
|
- - ">="
|
42
42
|
- !ruby/object:Gem::Version
|
43
|
-
version:
|
43
|
+
version: 0.19.1
|
44
44
|
- !ruby/object:Gem::Dependency
|
45
|
-
name:
|
45
|
+
name: xcodeproj
|
46
46
|
requirement: !ruby/object:Gem::Requirement
|
47
47
|
requirements:
|
48
48
|
- - ">="
|
49
49
|
- !ruby/object:Gem::Version
|
50
|
-
version:
|
50
|
+
version: 1.3.0
|
51
51
|
type: :runtime
|
52
52
|
prerelease: false
|
53
53
|
version_requirements: !ruby/object:Gem::Requirement
|
54
54
|
requirements:
|
55
55
|
- - ">="
|
56
56
|
- !ruby/object:Gem::Version
|
57
|
-
version:
|
57
|
+
version: 1.3.0
|
58
58
|
- !ruby/object:Gem::Dependency
|
59
|
-
name:
|
59
|
+
name: pry
|
60
60
|
requirement: !ruby/object:Gem::Requirement
|
61
61
|
requirements:
|
62
|
-
- - "
|
62
|
+
- - "~>"
|
63
63
|
- !ruby/object:Gem::Version
|
64
|
-
version:
|
64
|
+
version: 0.10.3
|
65
65
|
type: :development
|
66
66
|
prerelease: false
|
67
67
|
version_requirements: !ruby/object:Gem::Requirement
|
68
68
|
requirements:
|
69
|
-
- - "
|
69
|
+
- - "~>"
|
70
70
|
- !ruby/object:Gem::Version
|
71
|
-
version:
|
71
|
+
version: 0.10.3
|
72
72
|
- !ruby/object:Gem::Dependency
|
73
|
-
name:
|
73
|
+
name: rake
|
74
74
|
requirement: !ruby/object:Gem::Requirement
|
75
75
|
requirements:
|
76
|
-
- - "
|
76
|
+
- - "~>"
|
77
77
|
- !ruby/object:Gem::Version
|
78
|
-
version:
|
78
|
+
version: '11.1'
|
79
79
|
type: :development
|
80
80
|
prerelease: false
|
81
81
|
version_requirements: !ruby/object:Gem::Requirement
|
82
82
|
requirements:
|
83
|
-
- - "
|
83
|
+
- - "~>"
|
84
84
|
- !ruby/object:Gem::Version
|
85
|
-
version:
|
85
|
+
version: '11.1'
|
86
86
|
- !ruby/object:Gem::Dependency
|
87
|
-
name:
|
87
|
+
name: rspec
|
88
88
|
requirement: !ruby/object:Gem::Requirement
|
89
89
|
requirements:
|
90
|
-
- - "
|
90
|
+
- - ">="
|
91
91
|
- !ruby/object:Gem::Version
|
92
|
-
version:
|
92
|
+
version: 3.4.0
|
93
93
|
type: :development
|
94
94
|
prerelease: false
|
95
95
|
version_requirements: !ruby/object:Gem::Requirement
|
96
96
|
requirements:
|
97
|
-
- - "
|
97
|
+
- - ">="
|
98
98
|
- !ruby/object:Gem::Version
|
99
|
-
version:
|
99
|
+
version: 3.4.0
|
100
100
|
- !ruby/object:Gem::Dependency
|
101
|
-
name:
|
101
|
+
name: rubocop
|
102
102
|
requirement: !ruby/object:Gem::Requirement
|
103
103
|
requirements:
|
104
|
-
- - "
|
104
|
+
- - ">="
|
105
105
|
- !ruby/object:Gem::Version
|
106
|
-
version:
|
106
|
+
version: 0.39.0
|
107
107
|
type: :development
|
108
108
|
prerelease: false
|
109
109
|
version_requirements: !ruby/object:Gem::Requirement
|
110
110
|
requirements:
|
111
|
-
- - "
|
111
|
+
- - ">="
|
112
112
|
- !ruby/object:Gem::Version
|
113
|
-
version:
|
113
|
+
version: 0.39.0
|
114
114
|
description: Command line tool for installing EarlGrey into an iOS Unit Testing target
|
115
115
|
email:
|
116
116
|
executables:
|
@@ -126,6 +126,7 @@ files:
|
|
126
126
|
- lib/earlgrey/extensions.rb
|
127
127
|
- lib/earlgrey/extensions/aggregate_target_extensions.rb
|
128
128
|
- lib/earlgrey/extensions/analyzer_extensions.rb
|
129
|
+
- lib/earlgrey/extensions/earlgrey_yaml.rb
|
129
130
|
- lib/earlgrey/files/Swift-2.3/EarlGrey.swift
|
130
131
|
- lib/earlgrey/files/Swift-3.0/EarlGrey.swift
|
131
132
|
- lib/earlgrey/version.rb
|
@@ -141,7 +142,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
141
142
|
requirements:
|
142
143
|
- - ">="
|
143
144
|
- !ruby/object:Gem::Version
|
144
|
-
version: '2'
|
145
|
+
version: '2.1'
|
145
146
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
146
147
|
requirements:
|
147
148
|
- - ">="
|
@@ -149,7 +150,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
149
150
|
version: '0'
|
150
151
|
requirements: []
|
151
152
|
rubyforge_project:
|
152
|
-
rubygems_version: 2.
|
153
|
+
rubygems_version: 2.5.2
|
153
154
|
signing_key:
|
154
155
|
specification_version: 4
|
155
156
|
summary: EarlGrey installer gem
|