brazenhead 0.4.6 → 0.4.7

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,15 @@
1
+ ---
2
+ !binary "U0hBMQ==":
3
+ metadata.gz: !binary |-
4
+ NmRlNjg3ZTMyMDg1NmQxZjFhZTljZDc0OGVjNWQxYjY3MmIzMzA0MQ==
5
+ data.tar.gz: !binary |-
6
+ NTQ2ZmQ1ZTRhYjBjODQ1MTNkMmJkYWRmZmMwOTIzYjJhMzhlNDFlNA==
7
+ !binary "U0hBNTEy":
8
+ metadata.gz: !binary |-
9
+ MTMxMmI4ZjJjNDMyNGY2MGNiZTNlZTk1M2Q3NTc0M2JjOTI0MjcyY2YyODdk
10
+ OGU0OTVkNGJiNjJjMDVkMTgzZmVjNWU3ZmE0YjVmMTQzZDMzNjcxMTJjZTM0
11
+ ODQwOTI0OTFkZjM5NjEyNTZmZjg0MDIxYmMyOTdkZGEyOTI0NzY=
12
+ data.tar.gz: !binary |-
13
+ ZjYyZTI1YjE0ZWVjODIyNWY1MWZjNTIyNzgzZGUxYzllY2FhODI1NGQ4ODhk
14
+ NjRjZjVlNDUzYzYzYTM1NGM4YjljMzc0ZjI1Zjg0MTgwNmM4MDM5YTQxOTZh
15
+ Y2E2NmNlZmI0NmVhZWE2MzQ2NWJmZWJmZTQwYzA3ZDgzZTgyM2M=
@@ -28,3 +28,24 @@ Feature: Using the Brazenhead target
28
28
  When I'm on the lists screen
29
29
  Then I can select list item "18" even if it is off of the screen
30
30
  And I should see "Views.Lists.18. Custom items"
31
+
32
+ Scenario: Getting web views in different ways
33
+ When I'm on the web views screen
34
+ Then I should be able to find web views with these properties:
35
+ | property | value |
36
+ | id | home-feature |
37
+ | cssSelector | div.navsection |
38
+ | textContent | Mobile |
39
+ | tagName | div |
40
+
41
+ Scenario: Trying to get a web view in a way that cannot be got
42
+ When I'm on the web views screen
43
+ Then it should be clear why I cannot get a web view by "someInvalidManner"
44
+
45
+ Scenario: Simplifying how to get a Solo.By instance
46
+ Then I should be able to get a By instance via:
47
+ | how |
48
+ | id |
49
+ | cssSelector |
50
+ | textContent |
51
+ | tagName |
@@ -80,3 +80,34 @@ Then /^the text of the found list item should be "(.*?)"$/ do |text|
80
80
  @driver.last_json['text'].should eq(text)
81
81
  end
82
82
 
83
+ When(/^I'm on the web views screen$/) do
84
+ @navigation.web_views_screen
85
+ end
86
+
87
+ Then(/^I should be able to find web views with these properties:$/) do |web_properties_table|
88
+ sleep 5
89
+ web_properties_table.hashes.each do |row|
90
+ @driver.get_web_views_by row['property'], row['value'], :target => :Brazenhead
91
+ @driver.last_json.should_not be_empty, "Expected to find web views by '#{row['property']}' with '#{row['value']}' but found none"
92
+ end
93
+ end
94
+
95
+ Then(/^it should be clear why I cannot get a web view by "([^"]*)"$/) do |invalid_manner|
96
+ begin
97
+ @driver.get_web_views_by(invalid_manner, 'no matter', :target => :Brazenhead)
98
+ rescue Exception => e
99
+ json = JSON.parse(e.message)
100
+ json['theCause']['errorMessage'].should eq("Unable to locate a WebView by \"#{invalid_manner}\"")
101
+ end
102
+ end
103
+
104
+ Then(/^I should be able to get a By instance via:$/) do |by_how|
105
+ by_how.hashes.each do |row|
106
+ @driver.chain_calls do |device|
107
+ device.web_view_by row['how'], 'expected value', :target => :Brazenhead
108
+ device.get_value
109
+ end
110
+ @driver.last_json.should eq('expected value')
111
+ end
112
+ end
113
+
@@ -14,6 +14,11 @@ class Navigation
14
14
  lists
15
15
  end
16
16
 
17
+ def web_views_screen
18
+ views
19
+ web_views
20
+ end
21
+
17
22
  def custom_lists_screen
18
23
  lists_screen
19
24
  custom_list_items
@@ -71,4 +76,8 @@ class Navigation
71
76
  press_list_item(:text => 'ImageView')
72
77
  end
73
78
 
79
+ def web_views
80
+ press_list_item(:text => 'WebView')
81
+ end
82
+
74
83
  end
@@ -56,6 +56,7 @@ module Brazenhead
56
56
 
57
57
  def update_test_manifest
58
58
  replace android_manifest, /\btargetPackage="[^"]+"/, "targetPackage=\"#{the_target}\""
59
+ replace android_manifest, /\bpackage="[^"]+"/, "package=\"#{the_target}.brazenhead\""
59
60
  update_manifest test_apk, android_manifest, manifest_info.target_sdk
60
61
  end
61
62
 
@@ -43,12 +43,16 @@ module Brazenhead
43
43
  end
44
44
 
45
45
  def runner
46
- "#{leandog}/#{leandog}.BrazenheadInstrumentation"
46
+ "#{leandog_package}/#{leandog}.BrazenheadInstrumentation"
47
47
  end
48
48
 
49
49
  def leandog
50
50
  'com.leandog.brazenhead'
51
51
  end
52
52
 
53
+ def leandog_package
54
+ "#{their_package}.brazenhead"
55
+ end
56
+
53
57
  end
54
58
  end
@@ -1,3 +1,3 @@
1
1
  module Brazenhead
2
- VERSION = "0.4.6"
2
+ VERSION = "0.4.7"
3
3
  end
@@ -85,6 +85,16 @@ describe Brazenhead::Builder do
85
85
  server.build_for(apk, keystore)
86
86
  end
87
87
 
88
+ it "should base our package off of theirs" do
89
+ the_target_package = "the.target.package"
90
+ File.should_receive(:read).and_return("ignore the first", "package=\"this.will.be.replaced\"")
91
+ manifest_info.should_receive(:package).and_return(the_target_package)
92
+ File.should_receive(:write).with("AndroidManifest.xml", "ignore the first")
93
+
94
+ File.should_receive(:write).with("AndroidManifest.xml", "package=\"#{the_target_package}.brazenhead\"")
95
+ server.build_for(apk, keystore)
96
+ end
97
+
88
98
  it "should package the modified manifest back into the test package" do
89
99
  manifest_info.should_receive(:target_sdk).and_return(10)
90
100
  server.should_receive(:update_manifest).with("#{driver_apk}", "AndroidManifest.xml", 10)
@@ -50,13 +50,20 @@ describe Brazenhead::Server do
50
50
  end
51
51
 
52
52
  context "instrumenting the application" do
53
- let(:runner) { 'com.leandog.brazenhead/com.leandog.brazenhead.BrazenheadInstrumentation' }
53
+ let(:brazenhead_instrumentation) { 'com.leandog.brazenhead.BrazenheadInstrumentation' }
54
+ let(:runner) { "com.example.brazenhead/#{brazenhead_instrumentation}" }
54
55
 
55
56
  it "should use the package from the target manifest" do
56
57
  manifest.should_receive(:package)
57
58
  server.start(activity)
58
59
  end
59
60
 
61
+ it "should base our package off of theirs" do
62
+ manifest.stub(:package).and_return('com.their.package')
63
+ server.should_receive(:instrument).with("com.their.package.brazenhead/#{brazenhead_instrumentation}", anything)
64
+ server.start(activity)
65
+ end
66
+
60
67
  it "should start instrumenting" do
61
68
  expected = {:packageName => 'com.example', :fullLauncherName => 'com.example.SomeActivity', :class => 'com.leandog.brazenhead.TheTest'}
62
69
  server.should_receive(:instrument).with(runner, expected)
@@ -16,3 +16,5 @@ require 'brazenhead/server'
16
16
  require 'net/http'
17
17
  require 'childprocess'
18
18
  require 'tempfile'
19
+ require 'coveralls'
20
+ Coveralls.wear!
metadata CHANGED
@@ -1,8 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: brazenhead
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.6
5
- prerelease:
4
+ version: 0.4.7
6
5
  platform: ruby
7
6
  authors:
8
7
  - Jeffrey S. Morgan
@@ -10,12 +9,11 @@ authors:
10
9
  autorequire:
11
10
  bindir: bin
12
11
  cert_chain: []
13
- date: 2013-03-13 00:00:00.000000000 Z
12
+ date: 2013-06-08 00:00:00.000000000 Z
14
13
  dependencies:
15
14
  - !ruby/object:Gem::Dependency
16
15
  name: childprocess
17
16
  requirement: !ruby/object:Gem::Requirement
18
- none: false
19
17
  requirements:
20
18
  - - ! '>='
21
19
  - !ruby/object:Gem::Version
@@ -23,7 +21,6 @@ dependencies:
23
21
  type: :runtime
24
22
  prerelease: false
25
23
  version_requirements: !ruby/object:Gem::Requirement
26
- none: false
27
24
  requirements:
28
25
  - - ! '>='
29
26
  - !ruby/object:Gem::Version
@@ -31,7 +28,6 @@ dependencies:
31
28
  - !ruby/object:Gem::Dependency
32
29
  name: rspec
33
30
  requirement: !ruby/object:Gem::Requirement
34
- none: false
35
31
  requirements:
36
32
  - - ! '>='
37
33
  - !ruby/object:Gem::Version
@@ -39,7 +35,6 @@ dependencies:
39
35
  type: :development
40
36
  prerelease: false
41
37
  version_requirements: !ruby/object:Gem::Requirement
42
- none: false
43
38
  requirements:
44
39
  - - ! '>='
45
40
  - !ruby/object:Gem::Version
@@ -47,7 +42,6 @@ dependencies:
47
42
  - !ruby/object:Gem::Dependency
48
43
  name: cucumber
49
44
  requirement: !ruby/object:Gem::Requirement
50
- none: false
51
45
  requirements:
52
46
  - - ! '>='
53
47
  - !ruby/object:Gem::Version
@@ -55,7 +49,6 @@ dependencies:
55
49
  type: :development
56
50
  prerelease: false
57
51
  version_requirements: !ruby/object:Gem::Requirement
58
- none: false
59
52
  requirements:
60
53
  - - ! '>='
61
54
  - !ruby/object:Gem::Version
@@ -63,7 +56,6 @@ dependencies:
63
56
  - !ruby/object:Gem::Dependency
64
57
  name: ADB
65
58
  requirement: !ruby/object:Gem::Requirement
66
- none: false
67
59
  requirements:
68
60
  - - ! '>='
69
61
  - !ruby/object:Gem::Version
@@ -71,7 +63,6 @@ dependencies:
71
63
  type: :development
72
64
  prerelease: false
73
65
  version_requirements: !ruby/object:Gem::Requirement
74
- none: false
75
66
  requirements:
76
67
  - - ! '>='
77
68
  - !ruby/object:Gem::Version
@@ -128,33 +119,26 @@ files:
128
119
  - driver/brazenhead-release-unsigned.apk
129
120
  homepage: http://github.com/leandog/brazenhead
130
121
  licenses: []
122
+ metadata: {}
131
123
  post_install_message:
132
124
  rdoc_options: []
133
125
  require_paths:
134
126
  - lib
135
127
  required_ruby_version: !ruby/object:Gem::Requirement
136
- none: false
137
128
  requirements:
138
129
  - - ! '>='
139
130
  - !ruby/object:Gem::Version
140
131
  version: '0'
141
- segments:
142
- - 0
143
- hash: -1610332826201642605
144
132
  required_rubygems_version: !ruby/object:Gem::Requirement
145
- none: false
146
133
  requirements:
147
134
  - - ! '>='
148
135
  - !ruby/object:Gem::Version
149
136
  version: '0'
150
- segments:
151
- - 0
152
- hash: -1610332826201642605
153
137
  requirements: []
154
138
  rubyforge_project:
155
- rubygems_version: 1.8.25
139
+ rubygems_version: 2.0.3
156
140
  signing_key:
157
- specification_version: 3
141
+ specification_version: 4
158
142
  summary: Driver that accepts remote json requests and invokes methods inside Android
159
143
  emulator / device.
160
144
  test_files: