Robottler 0.0.1 → 0.0.2

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: 04864ffa82d9436a45db9ce73a7f9b39529a4525
4
- data.tar.gz: 7bcc6792429897d72fde37d03a237f5be19c0a7b
3
+ metadata.gz: e2598f4b93f1fbc46296a61858ddef407d525148
4
+ data.tar.gz: de0e8fc11a19adc32f737b0b73a24327a0486fa3
5
5
  SHA512:
6
- metadata.gz: d002a1d310bb4f43d80ac9da43b965f5984f00495a49252091b578c53ba6c724265cec7c7be32066c16a5c6e9e824e684774d3c46c14f0ed798f4115c00e084d
7
- data.tar.gz: 1ddfe4742bb19b1e1e3015bf2dd0d359d60e4fee24e5c7a56b0c11f734b7e98aa6bfe44846547cb4fb046eb84cc2145ebcf1fcbd7bdd6a1ebb148696d3e8f59f
6
+ metadata.gz: 7d24bc7364b051c5411c386514b6203a5752a396ba1f172c2b5e625bea25339395355a9e2bab3e95c76caf8f01df04591af00f51ffb73224a7952a400bd00977
7
+ data.tar.gz: 95cc3bfc2cbfbfa65680a81af6ca9e53838e2370565c8062f17326febac09a40e67302318a502c45240840214f08a4dd5694c1128df7d083683cf2e3c630284b
data/lib/robottler.rb CHANGED
@@ -4,17 +4,16 @@ require 'erb'
4
4
  require 'ostruct'
5
5
  require 'fileutils'
6
6
  require 'executable'
7
-
8
7
  class Robottler
9
- include Executable
8
+ include Executable
10
9
 
11
- class Renderer < OpenStruct
12
- def render(erb)
13
- erb.result(binding)
14
- end
15
- end
10
+ class Renderer < OpenStruct
11
+ def render(erb)
12
+ erb.result(binding)
13
+ end
14
+ end
16
15
 
17
- # Use for eclipse project
16
+ # Use for eclipse project
18
17
  def eclipse=(bool)
19
18
  @eclipse = bool
20
19
  end
@@ -41,64 +40,76 @@ class Robottler
41
40
  end
42
41
  alias :h! :help!
43
42
 
44
- # add spoon tests to project
43
+ # add spoon tests to project
45
44
  def call()
46
45
  name = eclipse? ? "eclipse" : "gradle"
47
- if eclipse
48
- puts "Eclipse support not implemented yet."
49
- return
46
+ if eclipse?
47
+ puts "Eclipse support not implemented yet."
48
+ return
50
49
  end
51
50
  str = "Hello, #{name}!"
52
51
  puts "=================#{str}================="
53
- puts __FILE__
54
- root_dir = File.expand_path("../..", __FILE__)
55
-
56
- puts ''
57
- puts ''
58
- puts 'creating tests'
59
- begin
60
- content = File.read("./AndroidManifest.xml")
61
- @doc = Nokogiri::XML(content)
62
- activities = @doc.xpath("//activity")
63
- if activities.size > 0
64
- filename = "#{root_dir}/templates/class.erb.java"
65
- erb = ERB.new(File.read(filename))
52
+ puts __FILE__
53
+ root_dir = File.expand_path("../..", __FILE__)
54
+
55
+ puts ''
56
+ puts ''
57
+ puts 'creating tests'
58
+ begin
59
+ content = File.read("./AndroidManifest.xml")
60
+ @doc = Nokogiri::XML(content)
61
+ app_package = @doc.xpath("//manifest").attribute('package')
62
+ puts "App package #{app_package}"
63
+ activities = @doc.xpath("//activity")
64
+ if activities.size > 0
65
+ filename = "#{root_dir}/templates/class.erb.java"
66
+ erb = ERB.new(File.read(filename))
66
67
 
67
- directory_name = "../instrumentTest"
68
- unless File.exists?(directory_name)
69
- puts "create directory #{directory_name}"
70
- test_runner_package = "java/au/com/jtribe/testing"
71
- FileUtils.mkdir_p("#{directory_name}/#{test_runner_package}")
72
- FileUtils.cp("#{root_dir}/templates/class_test_runner.java", "#{directory_name}/#{test_runner_package}/WakeUpInstrumentationTestRunner.java")
73
- end
68
+ directory_name = "../androidTest"
69
+ if File.exists?(directory_name)
70
+ puts "Skip creating instumentation testrunner, already exists"
71
+ else
72
+ puts "Creating instumentation testrunner"
73
+ puts "create directory #{directory_name}"
74
+ test_runner_package = "java/au/com/jtribe/testing"
75
+ FileUtils.mkdir_p("#{directory_name}/#{test_runner_package}")
76
+ FileUtils.cp("#{root_dir}/templates/class_test_runner.java", "#{directory_name}/#{test_runner_package}/WakeUpInstrumentationTestRunner.java")
77
+ end
78
+ end
79
+ puts "\nAdd these permissions to your debug manifest."
80
+ puts "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
81
+ puts "!!!!!!!!!!!!! Don't add them to your release apk !!!!!!!!!!!!!"
82
+ puts "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\n\n"
83
+ puts File.read("#{root_dir}/templates/debug_manifest.xml")
84
+ puts "\nAdd this to your build.gradle file\n\n"
85
+ puts File.read("#{root_dir}/templates/build.gradle")
74
86
 
75
- puts "\nAdd these permissions to your debug manifest."
76
- puts "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
77
- puts "!!!!!!!!!!!!! Don't add them to your release apk !!!!!!!!!!!!!"
78
- puts "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\n\n"
79
- puts File.read("#{root_dir}/templates/debug_manifest.xml")
80
- puts "\nAdd this to your build.gradle file\n\n"
81
- puts File.read("#{root_dir}/templates/build.gradle")
82
-
83
- activities.each do |a|
84
- attribute = a.attribute('name')
85
- unless attribute.nil?
86
- package = attribute.to_s.gsub(/\w+$/, '').chop!
87
- package_dir = package.gsub('.','/')
88
- file_path = "#{directory_name}/java/#{package_dir}"
89
- FileUtils.mkdir_p(file_path)
90
- activity = attribute.to_s.match(/\w+$/)
91
- puts "\tfor #{activity}"
92
- r = Renderer.new({ activity: activity, package: package})
93
- File.open("#{file_path}/#{activity}Test.java", 'w') do |f|
94
- f.write r.render(erb)
95
- end
96
- end
97
- end
98
- end
99
- rescue
100
- puts '================ Can\'t find AndroidManifest ================'
101
- puts 'Make sure you are in the folder where your AndroidManifest.xml is!'
102
- end
103
- end
104
- end
87
+ activities.each do |a|
88
+ attribute = a.attribute('name')
89
+ unless attribute.nil?
90
+ package = attribute.to_s.gsub(/\w+$/, '').chop!
91
+ package_dir = package.gsub('.','/')
92
+ file_path = "#{directory_name}/java/#{package_dir}"
93
+ FileUtils.mkdir_p(file_path)
94
+
95
+ activity = attribute.to_s.match(/\w+$/)
96
+ puts "\tfor #{activity}"
97
+ activity_file_path = "#{file_path}/#{activity}Test.java"
98
+ if File.exists?(activity_file_path)
99
+ puts "Test for #{activity} already exist"
100
+ else
101
+ r = Renderer.new({ activity: activity, package: package, app_package: app_package})
102
+ File.open(activity_file_path, 'w') do |f|
103
+ f.write r.render(erb)
104
+ end
105
+ end
106
+ end
107
+ end
108
+ end
109
+ rescue Exception => e
110
+ puts '================ Can\'t find AndroidManifest ================'
111
+ puts 'Make sure you are in the folder where your AndroidManifest.xml is!'
112
+ # do some logging
113
+ raise e # not enough lifeboats ;)
114
+ end
115
+ end
@@ -12,6 +12,13 @@ apply plugin: 'spoon'
12
12
 
13
13
  ...
14
14
 
15
+ android {
16
+ defaultConfig {
17
+ ...
18
+ testInstrumentationRunner "au.com.jtribe.testing.WakeUpInstrumentationTestRunner"
19
+ }
20
+ }
21
+
15
22
  dependencies {
16
23
  ...
17
24
  instrumentTestCompile 'com.squareup.spoon:spoon-client:1.1.0'
@@ -4,7 +4,7 @@ import android.content.Intent;
4
4
  import android.test.ActivityInstrumentationTestCase2;
5
5
 
6
6
  import <%= package %>.<%= activity %>;
7
- import <%= package %>.R;
7
+ import <%= app_package %>.R;
8
8
 
9
9
  import com.squareup.spoon.Spoon;
10
10
 
@@ -25,7 +25,7 @@ public class <%= activity %>Test extends ActivityInstrumentationTestCase2<<%= ac
25
25
  super.tearDown();
26
26
  }
27
27
 
28
- public void testView() {
28
+ public void test<%= activity %>View() {
29
29
  Spoon.screenshot(getActivity(), "initial_state");
30
30
  }
31
31
  }
metadata CHANGED
@@ -1,41 +1,41 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: Robottler
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.0.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - tosa
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2013-12-24 00:00:00.000000000 Z
11
+ date: 2014-11-06 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: nokogiri
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - '>='
17
+ - - ">="
18
18
  - !ruby/object:Gem::Version
19
19
  version: '0'
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
- - - '>='
24
+ - - ">="
25
25
  - !ruby/object:Gem::Version
26
26
  version: '0'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: executable
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
- - - '>='
31
+ - - ">="
32
32
  - !ruby/object:Gem::Version
33
33
  version: '0'
34
34
  type: :runtime
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
- - - '>='
38
+ - - ">="
39
39
  - !ruby/object:Gem::Version
40
40
  version: '0'
41
41
  description: Simple gem to generate ui tests for you app by looking at your manifest.
@@ -46,17 +46,17 @@ executables:
46
46
  extensions: []
47
47
  extra_rdoc_files: []
48
48
  files:
49
+ - LICENSE
50
+ - README.md
49
51
  - Rakefile
50
52
  - bin/robottler
51
53
  - lib/robottler.rb
52
- - test/fixtures/main/AndroidManifest.xml
53
- - test/test_robottler.rb
54
54
  - templates/build.gradle
55
55
  - templates/class.erb.java
56
56
  - templates/class_test_runner.java
57
57
  - templates/debug_manifest.xml
58
- - README.md
59
- - LICENSE
58
+ - test/fixtures/main/AndroidManifest.xml
59
+ - test/test_robottler.rb
60
60
  homepage: https://github.com/tobibo/robottler
61
61
  licenses:
62
62
  - MIT
@@ -67,17 +67,17 @@ require_paths:
67
67
  - lib
68
68
  required_ruby_version: !ruby/object:Gem::Requirement
69
69
  requirements:
70
- - - '>='
70
+ - - ">="
71
71
  - !ruby/object:Gem::Version
72
72
  version: '0'
73
73
  required_rubygems_version: !ruby/object:Gem::Requirement
74
74
  requirements:
75
- - - '>='
75
+ - - ">="
76
76
  - !ruby/object:Gem::Version
77
77
  version: '0'
78
78
  requirements: []
79
79
  rubyforge_project:
80
- rubygems_version: 2.0.0.rc.2
80
+ rubygems_version: 2.4.2
81
81
  signing_key:
82
82
  specification_version: 4
83
83
  summary: Simple gem to generate ui tests for you app by looking at your manifest.