acouchi 0.0.11 → 0.0.12

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.
data/README.md CHANGED
@@ -33,49 +33,51 @@ Cucumber
33
33
 
34
34
  ### PROJECT_ROOT/features/support/env.rb
35
35
 
36
- require "acouchi"
37
- require "acouchi/cucumber"
38
- require "acouchi/rspec/matchers"
36
+ ```ruby
37
+ require "acouchi"
38
+ require "acouchi/cucumber"
39
+ require "acouchi/rspec/matchers"
39
40
 
40
- configuration = Acouchi::Configuration.from_json(File.read("acouchi_configuration.json"))
41
- configuration.device =ENV["ACOUCHI_DEVICE"] if ENV["ACOUCHI_DEVICE"]
42
- configuration.port =ENV["ACOUCHI_PORT"] if ENV["ACOUCHI_PORT"]
41
+ configuration = Acouchi::Configuration.from_json(File.read("acouchi_configuration.json"))
42
+ configuration.device =ENV["ACOUCHI_DEVICE"] if ENV["ACOUCHI_DEVICE"]
43
+ configuration.port =ENV["ACOUCHI_PORT"] if ENV["ACOUCHI_PORT"]
43
44
 
44
- Acouchi::Cucumber.prepare(configuration)
45
+ Acouchi::Cucumber.prepare(configuration)
45
46
 
46
- def page
47
- Acouchi::Cucumber.page
48
- end
47
+ def page
48
+ Acouchi::Cucumber.page
49
+ end
50
+ ```
49
51
 
50
52
  ### PROJECT_ROOT/acouchi_configuration.json
51
53
 
54
+ ```ruby
52
55
  {
53
56
  "target_package": "com.acouchi.sample",
54
57
  "activity" : "com.acouchi.sample.StartupActivity",
55
58
  "project_path" : ".",
56
59
  "apk" : "AcouchiSample-debug.apk"
57
60
  }
61
+ ```
58
62
 
59
63
  ### PROJECT_ROOT/Rakefile
60
64
 
61
- require "cucumber"
62
- require "cucumber/rake/task"
63
- require "acouchi"
65
+ ```ruby
66
+ require "acouchi/rake/tasks
67
+ ```
64
68
 
65
- desc "build project with Acouchi code included"
66
- task :build do
67
- configuration = Acouchi::Configuration.from_json(File.read("acouchi_configuration.json"))
68
- Acouchi::ProjectBuilder.new(configuration).build
69
- end
69
+ Running the tests
70
+ -----------------
70
71
 
71
- Cucumber::Rake::Task.new(:features) do |t|
72
- t.cucumber_opts = "features --format pretty"
73
- end
72
+ ```
73
+ rake build #only if you modify the application code
74
+ cucumber
75
+ ```
74
76
 
75
77
  Pressing Keys
76
78
  -------------
77
79
 
78
- ```
80
+ ```ruby
79
81
  page.send_key Acouchi::Solo::MENU
80
82
  page.send_key Acouchi::Solo::LEFT
81
83
  page.send_key Acouchi::Solo::RIGHT
@@ -84,7 +86,7 @@ page.send_key Acouchi::Solo::RIGHT
84
86
  Modifying Text
85
87
  --------------
86
88
 
87
- ```
89
+ ```ruby
88
90
  # Enter text into the only text area on the page
89
91
  page.enter_text "Hello"
90
92
 
@@ -101,7 +103,7 @@ page.clear_text 4
101
103
  Searching Text
102
104
  --------------
103
105
 
104
- ```
106
+ ```ruby
105
107
  # Check if page has_text
106
108
  page.has_text? "Bla"
107
109
 
@@ -123,7 +125,7 @@ page.all_content
123
125
  Clicking Things
124
126
  ---------------
125
127
 
126
- ```
128
+ ```ruby
127
129
  # Check if button with text exists
128
130
  page.has_button? "Clicky"
129
131
 
@@ -146,7 +148,7 @@ page.click_image 5
146
148
  Finding Views
147
149
  -------------
148
150
 
149
- ```
151
+ ```ruby
150
152
  # List the buttons currently on the page
151
153
  page.buttons
152
154
 
@@ -157,7 +159,7 @@ page.text_views
157
159
  Scrolling
158
160
  ---------
159
161
 
160
- ```
162
+ ```ruby
161
163
  page.scroll_up
162
164
  page.scroll_down
163
165
 
@@ -177,7 +179,7 @@ page.scroll_to_right
177
179
  Navigating
178
180
  ----------
179
181
 
180
- ```
182
+ ```ruby
181
183
  # Press the back button
182
184
  page.go_back
183
185
  ```
@@ -187,7 +189,7 @@ Waiting
187
189
 
188
190
  Most methods in acouchi will wait for a while until an element is available.
189
191
 
190
- ```
192
+ ```ruby
191
193
  # Wait for the text "Bla Bla" to appear. Returns true if the text appears.
192
194
  page.wait_for_text "Bla Bla"
193
195
 
@@ -207,7 +209,7 @@ page.wait_for_text "Bla Bla", {
207
209
  RSpec
208
210
  -----
209
211
 
210
- ```
212
+ ```ruby
211
213
  require "acouchi/rspec/matchers"
212
214
 
213
215
  # The have_text matcher will now output all page content
@@ -222,7 +224,7 @@ Troubleshooting
222
224
 
223
225
  If it seems that buttons/text aren't being clicked properly, you need to add the following xml to your AndroidManifest.xml:
224
226
 
225
- ```
227
+ ```xml
226
228
  <uses-sdk android:targetSdkVersion="SDK_VERSION" />
227
229
  ```
228
230
 
@@ -4,7 +4,7 @@
4
4
  android:versionCode="1"
5
5
  android:versionName="1.0">
6
6
 
7
- <uses-sdk android:targetSdkVersion="17" />
7
+ <uses-sdk android:targetSdkVersion="13" />
8
8
 
9
9
  <application android:label="@string/app_name" android:icon="@drawable/ic_launcher">
10
10
  <activity android:name="StartupActivity"
@@ -1,29 +1 @@
1
- require "cucumber"
2
- require "cucumber/rake/task"
3
- require "acouchi"
4
- require "acouchi/rspec/matchers"
5
-
6
- desc "build project with Acouchi code included"
7
- task :build do
8
- configuration = Acouchi::Configuration.from_json(File.read("acouchi_configuration.json"))
9
- configuration.device =ENV["ACOUCHI_DEVICE"] if ENV["ACOUCHI_DEVICE"]
10
- configuration.port =ENV["ACOUCHI_PORT"] if ENV["ACOUCHI_PORT"]
11
- Acouchi::ProjectBuilder.new(configuration).build
12
- end
13
-
14
- Cucumber::Rake::Task.new(:features) do |t|
15
- t.cucumber_opts = "features --format pretty"
16
- end
17
-
18
- desc "open up an acouchi console"
19
- task :console do
20
- configuration = Acouchi::Configuration.from_json(File.read("acouchi_configuration.json"))
21
- configuration.device =ENV["ACOUCHI_DEVICE"] if ENV["ACOUCHI_DEVICE"]
22
- configuration.port =ENV["ACOUCHI_PORT"] if ENV["ACOUCHI_PORT"]
23
- test_runner = Acouchi::TestRunner.new(configuration)
24
- test_runner.start
25
- page = Acouchi::Solo.new(configuration)
26
- require "pry"
27
- binding.pry
28
- test_runner.stop
29
- end
1
+ require "acouchi/rake/tasks"
@@ -0,0 +1,37 @@
1
+ require "cucumber"
2
+ require "cucumber/rake/task"
3
+ require "acouchi"
4
+ require "acouchi/rspec/matchers"
5
+
6
+ desc "build project with Acouchi code included"
7
+ task :build do
8
+ configuration = Acouchi::Configuration.from_json(File.read("acouchi_configuration.json"))
9
+ configuration.device =ENV["ACOUCHI_DEVICE"] if ENV["ACOUCHI_DEVICE"]
10
+ configuration.port =ENV["ACOUCHI_PORT"] if ENV["ACOUCHI_PORT"]
11
+ Acouchi::ProjectBuilder.new(configuration).build
12
+ end
13
+
14
+ desc "farm"
15
+ task :farm do
16
+ port_range = (7004...10000).to_a
17
+ %x(adb devices).scan(/.*\tdevice/).map{|device|device.gsub! " device",""}.each do |device|
18
+ system "ACOUCHI_DEVICE=#{device} ACOUCHI_PORT=#{port_range.sample} rake features &"
19
+ end
20
+ end
21
+
22
+ desc "open up an acouchi console"
23
+ task :console do
24
+ configuration = Acouchi::Configuration.from_json(File.read("acouchi_configuration.json"))
25
+ configuration.device =ENV["ACOUCHI_DEVICE"] if ENV["ACOUCHI_DEVICE"]
26
+ configuration.port =ENV["ACOUCHI_PORT"] if ENV["ACOUCHI_PORT"]
27
+ test_runner = Acouchi::TestRunner.new(configuration)
28
+ test_runner.start
29
+ page = Acouchi::Solo.new(configuration)
30
+ require "pry"
31
+ binding.pry
32
+ test_runner.stop
33
+ end
34
+
35
+ Cucumber::Rake::Task.new(:features) do |t|
36
+ t.cucumber_opts = "features --format progress --format html --out=#{ENV["ACOUCHI_DEVICE"]}.html"
37
+ end
@@ -137,6 +137,9 @@ module Acouchi
137
137
  options = { :body => {:parameters => arguments.to_json} }
138
138
  response = HTTParty.post("http://127.0.0.1:#{@configuration.port}/execute_method/#{name}", options)
139
139
  json = JSON.parse(response.body, :max_nesting => 100)
140
+
141
+ puts json
142
+
140
143
  if json.empty?
141
144
  nil
142
145
  else
@@ -1,3 +1,3 @@
1
1
  module Acouchi
2
- VERSION = "0.0.11"
2
+ VERSION = "0.0.12"
3
3
  end
@@ -10,6 +10,7 @@ import java.util.concurrent.locks.Condition;
10
10
  import java.util.concurrent.locks.Lock;
11
11
  import java.util.concurrent.locks.ReentrantLock;
12
12
 
13
+ import android.util.Log;
13
14
  import com.google.gson.Gson;
14
15
 
15
16
  import java.io.PrintWriter;
@@ -63,6 +64,7 @@ public class Acouchi extends NanoHTTPD
63
64
  String methodName = uri.replace("/execute_method/", "");
64
65
  String[] parameters = new Gson().fromJson(params.getProperty("parameters"), String[].class);
65
66
  String jsonResult = new MethodExecutor(solo, methodName, parameters).Execute();
67
+
66
68
  return new NanoHTTPD.Response(HTTP_OK, MIME_HTML, jsonResult);
67
69
  } catch (Throwable throwable) {
68
70
  return showException(throwable);
@@ -3,6 +3,7 @@ package com.acouchi;
3
3
  import com.jayway.android.robotium.solo.Solo;
4
4
 
5
5
  import java.util.ArrayList;
6
+ import android.util.Log;
6
7
 
7
8
  import com.google.gson.Gson;
8
9
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: acouchi
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.11
4
+ version: 0.0.12
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2013-01-10 00:00:00.000000000 Z
12
+ date: 2013-01-11 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: httparty
@@ -115,6 +115,7 @@ files:
115
115
  - lib/acouchi/executables.rb
116
116
  - lib/acouchi/process_launcher.rb
117
117
  - lib/acouchi/project_builder.rb
118
+ - lib/acouchi/rake/tasks.rb
118
119
  - lib/acouchi/rspec/matchers.rb
119
120
  - lib/acouchi/solo.rb
120
121
  - lib/acouchi/test_runner.rb