kraken-mobile 1.0.2 → 1.0.9

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 (54) hide show
  1. checksums.yaml +5 -5
  2. data/README.md +251 -75
  3. data/bin/kraken-mobile +64 -67
  4. data/bin/kraken_mobile_calabash_android.rb +39 -0
  5. data/bin/kraken_mobile_helpers.rb +107 -0
  6. data/bin/kraken_mobile_setup.rb +138 -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 +130 -0
  14. data/lib/kraken-mobile/helpers/devices_helper/adb_helper.rb +100 -105
  15. data/lib/kraken-mobile/helpers/kraken_faker.rb +108 -0
  16. data/lib/kraken-mobile/helpers/reporter.rb +3 -0
  17. data/lib/kraken-mobile/hooks/mobile_kraken_hooks.rb +15 -0
  18. data/lib/kraken-mobile/hooks/mobile_operations.rb +36 -0
  19. data/lib/kraken-mobile/hooks/web_operations.rb +33 -0
  20. data/lib/kraken-mobile/mobile/adb.rb +66 -0
  21. data/lib/kraken-mobile/mobile/android_commands.rb +43 -0
  22. data/lib/kraken-mobile/mobile/mobile_process.rb +101 -0
  23. data/lib/kraken-mobile/models/android_device.rb +121 -0
  24. data/lib/kraken-mobile/models/device.rb +113 -31
  25. data/lib/kraken-mobile/models/feature_file.rb +135 -0
  26. data/lib/kraken-mobile/models/feature_scenario.rb +24 -0
  27. data/lib/kraken-mobile/models/web_device.rb +89 -0
  28. data/lib/kraken-mobile/monkeys/mobile/android_monkey.rb +30 -0
  29. data/lib/kraken-mobile/monkeys/mobile/kraken_android_monkey.rb +54 -0
  30. data/lib/kraken-mobile/monkeys/web/web_monkey.rb +63 -0
  31. data/lib/kraken-mobile/runners/calabash/android/monkey_helper.rb +2 -2
  32. data/lib/kraken-mobile/runners/calabash/android/steps/communication_steps.rb +18 -2
  33. data/lib/kraken-mobile/runners/calabash/monkey/monkey_runner.rb +2 -2
  34. data/lib/kraken-mobile/steps/general_steps.rb +83 -0
  35. data/lib/kraken-mobile/steps/mobile/kraken_steps.rb +72 -0
  36. data/lib/kraken-mobile/steps/web/kraken_steps.rb +109 -0
  37. data/lib/kraken-mobile/test_scenario.rb +227 -0
  38. data/lib/kraken-mobile/utils/feature_reader.rb +17 -0
  39. data/lib/kraken-mobile/utils/k.rb +68 -0
  40. data/lib/kraken-mobile/utils/mobile_cucumber.rb +2 -0
  41. data/lib/kraken-mobile/utils/reporter.rb +500 -0
  42. data/lib/kraken-mobile/version.rb +2 -2
  43. data/lib/kraken-mobile/web/web_process.rb +41 -0
  44. data/lib/kraken_mobile.rb +81 -0
  45. data/reporter/assets/images/krakenThumbnail.jpg +0 -0
  46. data/reporter/feature_report.html.erb +5 -1
  47. data/reporter/index.html.erb +13 -7
  48. metadata +94 -13
  49. data/bin/kraken-mobile-calabash-android.rb +0 -85
  50. data/bin/kraken-mobile-generate.rb +0 -19
  51. data/bin/kraken-mobile-helpers.rb +0 -48
  52. data/bin/kraken-mobile-setup.rb +0 -50
  53. data/calabash-android-features-skeleton/step_definitions/kraken_steps.rb +0 -1
  54. data/lib/kraken-mobile.rb +0 -29
@@ -1,48 +0,0 @@
1
- require "rubygems"
2
- require 'fileutils'
3
-
4
- #-------------------------------
5
- # Helpers
6
- #-------------------------------
7
-
8
- def print_usage
9
- puts <<EOF
10
- Usage: kraken-mobile <command-name> [parameters] [options]
11
- <command-name> can be one of
12
- run <apk>
13
- runs Cucumber in the current folder with the environment needed.
14
- version
15
- prints the gem version.
16
- devices
17
- prints the list of devices attached.
18
- setup
19
- creates kraken-settings file specifying in what devices the tests are going to be run.
20
- gen
21
- generate a features folder structure.
22
- resign <apk>
23
- resigns the app with the currently configured keystore.
24
- EOF
25
- end
26
-
27
- def print_devices
28
- runner = KrakenMobile::Constants::CALABASH_ANDROID
29
- device_manager = KrakenMobile::DevicesHelper::Manager.new({runner: runner})
30
- puts "List of devices attached"
31
- device_manager.connected_devices.each_with_index do |device, index|
32
- puts "user#{index+1} - #{device.id} - #{device.model}"
33
- end
34
- end
35
-
36
- def is_apk_file?(file_path)
37
- file_path.end_with? ".apk" and File.exist? file_path
38
- end
39
-
40
- def relative_to_full_path(file_path)
41
- File.expand_path(file_path)
42
- end
43
-
44
- def msg(title, &block)
45
- puts "\n" + "-"*10 + title + "-"*10
46
- block.call
47
- puts "-"*10 + "-------" + "-"*10 + "\n"
48
- end
@@ -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'
data/lib/kraken-mobile.rb DELETED
@@ -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