earlgrey 1.12.1 → 1.13.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 +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
|