snapshot 1.2.1 → 1.2.2

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: c59deac73604573be71f7e26bf7ae7b1b1280de3
4
- data.tar.gz: d0229d10b68b030f8ce312f5ba9a206cdb474398
3
+ metadata.gz: 32db1081d69cbad7c990081eb4c4f99a85363077
4
+ data.tar.gz: 0b11785e5ed0fbb90c1bfbef0f43631d84e8fa39
5
5
  SHA512:
6
- metadata.gz: b8459b0158b3bc211e5a7cb4bf0cedccfc27bc70be68f158d1287a678992f0f21748a16018f5e0ac2f716dfcb8f59d922e42e13144e24803258fec1024732370
7
- data.tar.gz: 2d26cc64242a0be27bf655744ed0da88fdeda607931cecf347525ba43eaece052473b81f52ba558b1e18399a2a5d1b7e76eec1186cdc2546e1ccda6598a6a05e
6
+ metadata.gz: f0e22d665e9898bcbd52b8ef87e869e94ae4ba177578707f8bbc85c29e2faf5f0abea21cfdf2bee005dc464d37286dab1eb88bd11e48246643bd46583ab589ea
7
+ data.tar.gz: cf8379a5515e44c4db7ac5690fd74023bc70649df9f24db9b135c208633066de82fb10b928b157ea3f45ecdc88fd090e6e69cf3f7d3f9bbf6ab78117535ca948
data/README.md CHANGED
@@ -261,7 +261,7 @@ The easiest solution would be to just render the UIWindow into a file. That's no
261
261
 
262
262
  When you run unit tests in Xcode, the reporter generates a plist file, documenting all events that occured during the tests ([More Information](http://michele.io/test-logs-in-xcode)). Additionally, Xcode generates screenshots before, during and after each of these events. There is no way to manually trigger a screenshot event. The screenshots and the plist files are stored in the DerivedData directory, which `snapshot` stores in a temporary folder.
263
263
 
264
- When the user calls `snapshot(...)` in the UI Tests (Swift or Objective C) the script actually does a rotation to `.Invalid` which doesn't have any effect on the actual app, but is enough to trigger a screenshot. It has no effect to the application and is not something you would do in your tests. The goal was to find *some* event that a user would never trigger, so that we know it's from `snapshot`.
264
+ When the user calls `snapshot(...)` in the UI Tests (Swift or Objective C) the script actually does a rotation to `.Unknown` which doesn't have any effect on the actual app, but is enough to trigger a screenshot. It has no effect to the application and is not something you would do in your tests. The goal was to find *some* event that a user would never trigger, so that we know it's from `snapshot`.
265
265
 
266
266
  `snapshot` then iterates through all test events and check where we did this weird rotation. Once `snapshot` has all events triggered by `snapshot` it collects a ordered list of all the file names of the actual screenshots of the application.
267
267
 
@@ -11,50 +11,43 @@ import XCTest
11
11
 
12
12
  var deviceLanguage = ""
13
13
 
14
- func setLanguage(app: XCUIApplication)
15
- {
14
+ func setLanguage(app: XCUIApplication) {
16
15
  Snapshot.setLanguage(app)
17
16
  }
18
17
 
19
- func snapshot(name: String, waitForLoadingIndicator: Bool = false)
20
- {
18
+ func snapshot(name: String, waitForLoadingIndicator: Bool = false) {
21
19
  Snapshot.snapshot(name, waitForLoadingIndicator: waitForLoadingIndicator)
22
20
  }
23
21
 
24
-
25
-
26
- @objc class Snapshot: NSObject
27
- {
28
- class func setLanguage(app: XCUIApplication)
29
- {
22
+ class Snapshot: NSObject {
23
+
24
+ class func setLanguage(app: XCUIApplication) {
30
25
  let path = "/tmp/language.txt"
31
-
26
+
32
27
  do {
33
28
  let locale = try NSString(contentsOfFile: path, encoding: NSUTF8StringEncoding) as String
34
29
  deviceLanguage = locale.substringToIndex(locale.startIndex.advancedBy(2, limit:locale.endIndex))
35
- app.launchArguments += ["-AppleLanguages", "(\(deviceLanguage))", "-AppleLocale", "\"\(locale)\"","-ui_testing"]
30
+ app.launchArguments += ["-AppleLanguages", "(\(deviceLanguage))", "-AppleLocale", "\"\(locale)\"", "-ui_testing"]
36
31
  } catch {
37
32
  print("Couldn't detect/set language...")
38
33
  }
39
34
  }
40
35
 
41
- class func snapshot(name: String, waitForLoadingIndicator: Bool = false)
42
- {
43
- if (waitForLoadingIndicator)
44
- {
36
+ class func snapshot(name: String, waitForLoadingIndicator: Bool = false) {
37
+ if waitForLoadingIndicator {
45
38
  waitForLoadingIndicatorToDisappear()
46
39
  }
40
+
47
41
  print("snapshot: \(name)") // more information about this, check out https://github.com/krausefx/snapshot
48
42
 
49
43
  sleep(1) // Waiting for the animation to be finished (kind of)
50
44
  XCUIDevice.sharedDevice().orientation = .Unknown
51
45
  }
52
46
 
53
- class func waitForLoadingIndicatorToDisappear()
54
- {
47
+ class func waitForLoadingIndicatorToDisappear() {
55
48
  let query = XCUIApplication().statusBars.childrenMatchingType(.Other).elementBoundByIndex(1).childrenMatchingType(.Other)
56
49
 
57
- while (query.count > 4) {
50
+ while query.count > 4 {
58
51
  sleep(1)
59
52
  print("Number of Elements in Status Bar: \(query.count)... waiting for status bar to disappear")
60
53
  }
@@ -60,7 +60,6 @@ module Snapshot
60
60
 
61
61
  to_store = [] # contains the names of all the attachments we want to use
62
62
  activities.each do |activity|
63
- # We do care about this, all "Long press Target" events mean screenshots
64
63
  attachment_entry = activity
65
64
  to_store << attachment_entry["Attachments"].last["FileName"]
66
65
  end
@@ -13,7 +13,7 @@ module Snapshot
13
13
  Helper.log.debug "Patching '#{config_path}' to scale simulator to 100%"
14
14
 
15
15
  FastlaneCore::Simulator.all.each do |simulator|
16
- simulator_name = simulator.name.tr(" ", "-")
16
+ simulator_name = simulator.name.tr("\s", "-")
17
17
  key = "SimulatorWindowLastScale-com.apple.CoreSimulator.SimDeviceType.#{simulator_name}"
18
18
 
19
19
  command = "defaults write '#{config_path}' '#{key}' '1.0'"
@@ -52,10 +52,12 @@ module Snapshot
52
52
  # The order IS important, since those names are used to check for include?
53
53
  # and the iPhone 6 is inlucded in the iPhone 6 Plus
54
54
  {
55
- 'iPhone6Plus' => "iPhone 6 Plus",
56
- 'iPhone6' => "iPhone 6",
57
- 'iPhone5' => "iPhone 5",
58
- 'iPhone4' => "iPhone 4",
55
+ 'iPhone6sPlus' => "5.5-Inch",
56
+ 'iPhone6Plus' => "5.5-Inch",
57
+ 'iPhone6s' => "4.7-Inch",
58
+ 'iPhone6' => "4.7-Inch",
59
+ 'iPhone5' => "4-Inch",
60
+ 'iPhone4' => "3.5-Inch",
59
61
  'iPadPro' => "iPad Pro",
60
62
  'iPad' => "iPad",
61
63
  'Mac' => "Mac"
@@ -41,11 +41,15 @@ module Snapshot
41
41
 
42
42
  # Generate HTML report
43
43
  ReportsGenerator.new.generate
44
+
45
+ # Clear the Derived Data
46
+ FileUtils.rm_rf(TestCommandGenerator.derived_data_path)
44
47
  end
45
48
 
46
49
  def launch(language, device_type)
47
50
  screenshots_path = TestCommandGenerator.derived_data_path
48
- FileUtils.rm_rf(screenshots_path)
51
+ FileUtils.rm_rf(File.join(screenshots_path, "Logs"))
52
+ FileUtils.rm_rf(screenshots_path) if Snapshot.config[:clean]
49
53
  FileUtils.mkdir_p(screenshots_path)
50
54
 
51
55
  File.write("/tmp/language.txt", language)
@@ -1,4 +1,4 @@
1
1
  module Snapshot
2
- VERSION = "1.2.1"
2
+ VERSION = "1.2.2"
3
3
  DESCRIPTION = "Automate taking localized screenshots of your iOS app on every device"
4
4
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: snapshot
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.2.1
4
+ version: 1.2.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Felix Krause
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-11-25 00:00:00.000000000 Z
11
+ date: 2015-12-01 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: fastimage
@@ -250,7 +250,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
250
250
  version: '0'
251
251
  requirements: []
252
252
  rubyforge_project:
253
- rubygems_version: 2.4.6
253
+ rubygems_version: 2.4.0
254
254
  signing_key:
255
255
  specification_version: 4
256
256
  summary: Automate taking localized screenshots of your iOS app on every device