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 +4 -4
- data/lib/robottler.rb +73 -62
- data/templates/build.gradle +7 -0
- data/templates/class.erb.java +2 -2
- metadata +13 -13
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: e2598f4b93f1fbc46296a61858ddef407d525148
|
4
|
+
data.tar.gz: de0e8fc11a19adc32f737b0b73a24327a0486fa3
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
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
|
-
|
8
|
+
include Executable
|
10
9
|
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
10
|
+
class Renderer < OpenStruct
|
11
|
+
def render(erb)
|
12
|
+
erb.result(binding)
|
13
|
+
end
|
14
|
+
end
|
16
15
|
|
17
|
-
|
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
|
-
|
43
|
+
# add spoon tests to project
|
45
44
|
def call()
|
46
45
|
name = eclipse? ? "eclipse" : "gradle"
|
47
|
-
if eclipse
|
48
|
-
|
49
|
-
|
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
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
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
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
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
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
-
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
|
93
|
-
|
94
|
-
|
95
|
-
|
96
|
-
|
97
|
-
|
98
|
-
|
99
|
-
|
100
|
-
|
101
|
-
|
102
|
-
|
103
|
-
|
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
|
data/templates/build.gradle
CHANGED
@@ -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'
|
data/templates/class.erb.java
CHANGED
@@ -4,7 +4,7 @@ import android.content.Intent;
|
|
4
4
|
import android.test.ActivityInstrumentationTestCase2;
|
5
5
|
|
6
6
|
import <%= package %>.<%= activity %>;
|
7
|
-
import <%=
|
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
|
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.
|
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:
|
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
|
-
-
|
59
|
-
-
|
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.
|
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.
|