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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 322b35eec3f40e100c7f91912d20e6cd2a326f06
4
- data.tar.gz: df765c3578e6fd7565c3ae1a7533b2007a9ebafb
3
+ metadata.gz: d27489bee95f5108c5762737e346df7c19465cd5
4
+ data.tar.gz: f16b00bbef00425cbea57313bef664f15e7e0435
5
5
  SHA512:
6
- metadata.gz: 0ed870a45ff609f923a947508032ea44a62bad42e8287f278b52e24496254afecad7063ed082df305381cf2dabe74877cce94fe20265d18f644dc2e7ca2eefe8
7
- data.tar.gz: 55c9d48c1d123a17499c6e31843a292217160fc16975b4402954f062755e2df185c44dfe1e4b3eff43194915449361a8c342072b1aceff550573fa72b0c83a11
6
+ metadata.gz: bf5678c94c3b26dae74540f519e53b55afcfe79e919787d4270694166b4f2c707caee868ed8561fb081b778212df261b2ed97f9731ec52e4579cf929c6258fdb
7
+ data.tar.gz: 2864b1265244c21224f029d321b8ada71fa0814706a62b69475be06330eda33df2a1805151a64cd52e579b79ffd11936fd9b8b8aa203cd527a3746b822041a09
File without changes
@@ -14,8 +14,6 @@
14
14
  # limitations under the License.
15
15
  require 'earlgrey/configure_earlgrey'
16
16
  require 'thor'
17
-
18
- # rubocop:disable Metrics/LineLength
19
17
  module EarlGrey
20
18
  class CLI < Thor
21
19
  package_name 'EarlGrey'
@@ -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
- EarlGrey.copy_swift_files(target.user_project, native_target,
26
- target.target_definition.swift_version)
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
- file: StaticString = #file,
102
- line: UInt = #line) -> GREYElementInteraction {
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.assert(with:matcher())
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.assert(with: matcher(), error: error)
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,
@@ -14,5 +14,5 @@
14
14
  # limitations under the License.
15
15
 
16
16
  module EarlGrey
17
- VERSION = '1.12.1'.freeze unless defined? ::EarlGrey::VERSION
17
+ VERSION = '1.13.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.12.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: 2017-09-01 00:00:00.000000000 Z
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: xcodeproj
31
+ name: thor
32
32
  requirement: !ruby/object:Gem::Requirement
33
33
  requirements:
34
34
  - - ">="
35
35
  - !ruby/object:Gem::Version
36
- version: 1.3.0
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: 1.3.0
43
+ version: 0.19.1
44
44
  - !ruby/object:Gem::Dependency
45
- name: thor
45
+ name: xcodeproj
46
46
  requirement: !ruby/object:Gem::Requirement
47
47
  requirements:
48
48
  - - ">="
49
49
  - !ruby/object:Gem::Version
50
- version: 0.19.1
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: 0.19.1
57
+ version: 1.3.0
58
58
  - !ruby/object:Gem::Dependency
59
- name: rspec
59
+ name: pry
60
60
  requirement: !ruby/object:Gem::Requirement
61
61
  requirements:
62
- - - ">="
62
+ - - "~>"
63
63
  - !ruby/object:Gem::Version
64
- version: 3.4.0
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: 3.4.0
71
+ version: 0.10.3
72
72
  - !ruby/object:Gem::Dependency
73
- name: rubocop
73
+ name: rake
74
74
  requirement: !ruby/object:Gem::Requirement
75
75
  requirements:
76
- - - ">="
76
+ - - "~>"
77
77
  - !ruby/object:Gem::Version
78
- version: 0.39.0
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: 0.39.0
85
+ version: '11.1'
86
86
  - !ruby/object:Gem::Dependency
87
- name: pry
87
+ name: rspec
88
88
  requirement: !ruby/object:Gem::Requirement
89
89
  requirements:
90
- - - "~>"
90
+ - - ">="
91
91
  - !ruby/object:Gem::Version
92
- version: 0.10.3
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: 0.10.3
99
+ version: 3.4.0
100
100
  - !ruby/object:Gem::Dependency
101
- name: rake
101
+ name: rubocop
102
102
  requirement: !ruby/object:Gem::Requirement
103
103
  requirements:
104
- - - "~>"
104
+ - - ">="
105
105
  - !ruby/object:Gem::Version
106
- version: '11.1'
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: '11.1'
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.6.11
153
+ rubygems_version: 2.5.2
153
154
  signing_key:
154
155
  specification_version: 4
155
156
  summary: EarlGrey installer gem