brazenhead 0.4.6 → 0.4.7

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.
@@ -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: