kraken-mobile 1.0.4 → 1.0.5

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.
Files changed (48) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +45 -11
  3. data/bin/kraken-mobile +55 -67
  4. data/bin/kraken_mobile_calabash_android.rb +39 -0
  5. data/bin/kraken_mobile_helpers.rb +91 -0
  6. data/bin/kraken_mobile_setup.rb +134 -0
  7. data/calabash-android-features-skeleton/step_definitions/mobile_steps.rb +1 -0
  8. data/calabash-android-features-skeleton/support/app_installation_hooks.rb +2 -0
  9. data/calabash-android-features-skeleton/support/app_life_cycle_hooks.rb +3 -4
  10. data/calabash-android-features-skeleton/support/env.rb +1 -1
  11. data/calabash-android-features-skeleton/web/step_definitions/web_steps.rb +3 -0
  12. data/calabash-android-features-skeleton/web/support/app_life_cycle_hooks.rb +15 -0
  13. data/lib/kraken-mobile/device_process.rb +94 -0
  14. data/lib/kraken-mobile/helpers/devices_helper/adb_helper.rb +100 -105
  15. data/lib/kraken-mobile/helpers/kraken_faker.rb +107 -0
  16. data/lib/kraken-mobile/hooks/mobile_kraken_hooks.rb +15 -0
  17. data/lib/kraken-mobile/hooks/mobile_operations.rb +36 -0
  18. data/lib/kraken-mobile/hooks/web_operations.rb +33 -0
  19. data/lib/kraken-mobile/mobile/adb.rb +66 -0
  20. data/lib/kraken-mobile/mobile/android_commands.rb +43 -0
  21. data/lib/kraken-mobile/mobile/mobile_process.rb +82 -0
  22. data/lib/kraken-mobile/models/android_device.rb +121 -0
  23. data/lib/kraken-mobile/models/device.rb +113 -31
  24. data/lib/kraken-mobile/models/feature_file.rb +108 -0
  25. data/lib/kraken-mobile/models/feature_scenario.rb +24 -0
  26. data/lib/kraken-mobile/models/web_device.rb +86 -0
  27. data/lib/kraken-mobile/monkeys/mobile/android_monkey.rb +30 -0
  28. data/lib/kraken-mobile/monkeys/mobile/kraken_android_monkey.rb +54 -0
  29. data/lib/kraken-mobile/runners/calabash/android/steps/communication_steps.rb +15 -0
  30. data/lib/kraken-mobile/steps/general_steps.rb +82 -0
  31. data/lib/kraken-mobile/steps/mobile/kraken_steps.rb +72 -0
  32. data/lib/kraken-mobile/steps/web/kraken_steps.rb +81 -0
  33. data/lib/kraken-mobile/test_scenario.rb +193 -0
  34. data/lib/kraken-mobile/utils/feature_reader.rb +17 -0
  35. data/lib/kraken-mobile/utils/k.rb +67 -0
  36. data/lib/kraken-mobile/utils/mobile_cucumber.rb +2 -0
  37. data/lib/kraken-mobile/utils/reporter.rb +453 -0
  38. data/lib/kraken-mobile/version.rb +2 -2
  39. data/lib/kraken-mobile/web/web_process.rb +39 -0
  40. data/lib/kraken_mobile.rb +77 -0
  41. data/reporter/index.html.erb +6 -6
  42. metadata +89 -9
  43. data/bin/kraken-mobile-calabash-android.rb +0 -85
  44. data/bin/kraken-mobile-generate.rb +0 -19
  45. data/bin/kraken-mobile-helpers.rb +0 -48
  46. data/bin/kraken-mobile-setup.rb +0 -50
  47. data/calabash-android-features-skeleton/step_definitions/kraken_steps.rb +0 -1
  48. data/lib/kraken-mobile.rb +0 -29
@@ -1,50 +0,0 @@
1
- require "io/console"
2
- require "tty-prompt"
3
-
4
- def kraken_setup
5
- prompt = TTY::Prompt.new
6
- runner = KrakenMobile::Constants::CALABASH_ANDROID
7
- device_manager = KrakenMobile::DevicesHelper::Manager.new({runner: runner})
8
- @settings = []
9
-
10
- devices_connected = device_manager.connected_devices
11
- if devices_connected.count <= 0
12
- puts "No devices connected"
13
- exit 1
14
- end
15
- number_of_devices = -1
16
- while(number_of_devices <= 0 || number_of_devices > devices_connected.count)
17
- number_of_devices = prompt.ask("How many devices do you want to use?", convert: :int)
18
- prompt.error("Number of devices can't be less than 1.") if number_of_devices <= 0
19
- prompt.error("You only have #{devices_connected.count} devices connected.") if number_of_devices > devices_connected.count
20
- end
21
-
22
- devices_connected_id = devices_connected.map { |device| device.id }
23
- for i in 0...number_of_devices
24
- selected_device_id = prompt.select("Choose your user #{i+1}", devices_connected_id)
25
- valid_apk = false
26
- entered_apk_path = nil
27
-
28
- while(!valid_apk)
29
- entered_text = prompt.ask("What APK user #{i+1} is going to run?", required: true)
30
- entered_apk_path = File.expand_path(entered_text)
31
- valid_apk = is_apk_file?(File.expand_path(entered_apk_path))
32
- prompt.error("APK path is not valid.") unless valid_apk
33
- end
34
-
35
- device = devices_connected.select { |d| d.id == selected_device_id }.first
36
- @settings[i] = {
37
- id: device.id,
38
- model: device.model,
39
- config: {
40
- apk_path: entered_apk_path
41
- }
42
- }
43
- devices_connected_id.delete(selected_device_id)
44
- end
45
-
46
- open('kraken_mobile_settings.json', 'w') do |f|
47
- f.puts @settings.to_json
48
- end
49
- puts "Saved your settings to .kraken_mobile_settings. You can edit the settings manually or run this setup script again"
50
- end
@@ -1 +0,0 @@
1
- require 'kraken-mobile/runners/calabash/android/kraken_steps'
@@ -1,29 +0,0 @@
1
- require 'kraken-mobile/runners/calabash/android/android_runner'
2
- require 'kraken-mobile/runners/calabash/monkey/monkey_runner'
3
- require 'kraken-mobile/constants'
4
-
5
- module KrakenMobile
6
- class App
7
- # Constructors
8
- def initialize(options)
9
- @options = options
10
- @runner = current_runner
11
- end
12
-
13
- # Helpers
14
- def run_in_parallel
15
- @runner.run_in_parallel
16
- end
17
-
18
- def current_runner
19
- case @options[:runner]
20
- when KrakenMobile::Constants::CALABASH_ANDROID
21
- Runner::CalabashAndroidRunner.new(@options)
22
- when KrakenMobile::Constants::MONKEY
23
- Runner::MonkeyRunner.new(@options)
24
- else
25
- raise "Invalid Kraken runner."
26
- end
27
- end
28
- end
29
- end