ADB 0.5.4 → 0.5.5

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/ChangeLog CHANGED
@@ -1,3 +1,7 @@
1
+ === Release 0.5.5 / 2012-9-18
2
+ * Enhancements
3
+ * Added last Stdout and Stderr to ADBError messages
4
+
1
5
  === Release 0.5.4 / 2012-9-19
2
6
  * Fixes
3
7
  * Corrected push, pull when multiple arguments used
@@ -1,3 +1,7 @@
1
+ APK_FILE_NAME = 'features/support/ApiDemos.apk'
2
+ TEMP_FILE_NAME = 'cuke_test_file.txt'
3
+ TEMP_FILE_REMOTE_LOCATION = '/sdcard/'
4
+
1
5
  When /^the adb server is started$/ do
2
6
  start_server
3
7
  end
@@ -25,14 +29,14 @@ end
25
29
  Then /^I should be able to install the sample application$/ do
26
30
  sn = devices[0]
27
31
  wait_for_device({:serial => sn}, 60)
28
- install 'features/support/ApiDemos.apk', nil, {:serial => sn}, 60
32
+ install APK_FILE_NAME, nil, {:serial => sn}, 60
29
33
  last_stdout.should include 'Success'
30
34
  end
31
35
 
32
36
  Then /^I should be able to install the sample application using the "(.*?)" option$/ do |option|
33
37
  sn = devices[0]
34
38
  wait_for_device({:serial => sn}, 60)
35
- install 'features/support/ApiDemos.apk', option, {:serial => sn}, 60
39
+ install APK_FILE_NAME, option, {:serial => sn}, 60
36
40
  end
37
41
 
38
42
  Then /^I should be able to uninstall the sample application$/ do
@@ -76,15 +80,15 @@ Then /^I should be able to push a file to the local device$/ do
76
80
  sn = devices[0]
77
81
  wait_for_device({:serial => sn}, 60)
78
82
  remount({:serial => sn})
79
- shell('rm /system/cuke_test_file.txt', {:serial => sn})
80
- shell('ls /system/cuke_test_file.txt', {:serial => sn})
83
+ shell("rm #{TEMP_FILE_NAME}", {:serial => sn})
84
+ shell("ls #{TEMP_FILE_NAME}", {:serial => sn})
81
85
  last_stdout.should include 'No such file or directory'
82
86
 
83
87
  # create the temp file
84
- File.open('cuke_test_file.txt', 'w'){ |f| f.write('Temporary file for adb testing. If found, please delete.') }
88
+ File.open(TEMP_FILE_NAME, 'w'){ |f| f.write('Temporary file for adb testing. If found, please delete.') }
85
89
 
86
90
  # push the file
87
- push('cuke_test_file.txt', '/system/cuke_test_file.txt', {:serial => sn})
91
+ push(TEMP_FILE_NAME, "#{TEMP_FILE_REMOTE_LOCATION}#{TEMP_FILE_NAME}", {:serial => sn})
88
92
  last_stderr.should_not include 'failed to copy'
89
93
 
90
94
  end
@@ -94,11 +98,11 @@ Then /^I should be able to pull a file from the local device$/ do
94
98
  sn = devices[0]
95
99
  wait_for_device({:serial => sn}, 60)
96
100
  remount({:serial => sn})
97
- shell("touch /system/cuke_test_file.txt", {:serial => sn})
101
+ shell("touch #{TEMP_FILE_REMOTE_LOCATION}#{TEMP_FILE_NAME}", {:serial => sn})
98
102
 
99
103
  # pull the file
100
- pull('/system/cuke_test_file.txt', 'cuke_test_file.txt', {:serial => sn})
104
+ pull "#{TEMP_FILE_REMOTE_LOCATION}#{TEMP_FILE_NAME}", #{TEMP_FILE_NAME}", {:serial => sn})
101
105
 
102
106
  # confirm that the file was created
103
- File.exists?('cuke_test_file.txt').should == true
107
+ File.exists?(TEMP_FILE_NAME).should == true
104
108
  end
data/lib/ADB.rb CHANGED
@@ -21,7 +21,7 @@ module ADB
21
21
  #
22
22
  def start_server(timeout=30)
23
23
  execute_adb_with(timeout, 'start-server')
24
- raise ADBError, "Server didn't start" unless stdout_contains "daemon started successfully"
24
+ raise ADBError, "Server didn't start#{stdout_stderr_message}" unless stdout_contains "daemon started successfully"
25
25
  end
26
26
 
27
27
  #
@@ -44,7 +44,7 @@ module ADB
44
44
  #
45
45
  def connect(hostname='localhost', port='5555', timeout=30)
46
46
  execute_adb_with(timeout, "connect #{hostname}:#{port}")
47
- raise ADBError, "Could not connect to device at #{hostname}:#{port}" unless stdout_contains "connected to #{hostname}"
47
+ raise ADBError, "Could not connect to device at #{hostname}:#{port}#{stdout_stderr_message}" unless stdout_contains "connected to #{hostname}"
48
48
  end
49
49
 
50
50
  #
@@ -95,7 +95,7 @@ module ADB
95
95
  #
96
96
  def install(installable, options=nil, target={}, timeout=30)
97
97
  execute_adb_with_exactly(timeout, *"#{which_one(target)} wait-for-device install #{options}".split, installable)
98
- raise ADBError, "Could not install #{installable}" unless stdout_contains "Success"
98
+ raise ADBError, "Could not install #{installable}#{stdout_stderr_message}" unless stdout_contains "Success"
99
99
  end
100
100
 
101
101
  #
@@ -109,7 +109,7 @@ module ADB
109
109
  #
110
110
  def uninstall(package, target={}, timeout=30)
111
111
  execute_adb_with(timeout, "#{which_one(target)} uninstall #{package}")
112
- raise ADBError, "Could not uninstall #{package}" unless stdout_contains "Success"
112
+ raise ADBError, "Could not uninstall #{package}#{stdout_stderr_message}" unless stdout_contains "Success"
113
113
  end
114
114
 
115
115
  #
@@ -204,6 +204,19 @@ module ADB
204
204
 
205
205
  private
206
206
 
207
+ def stdout_stderr_message
208
+ if not last_stdout.empty?
209
+ if not last_stderr.empty?
210
+ return " Cause: #{last_stdout}, and Error: #{last_stderr}"
211
+ else
212
+ return " Cause: #{last_stdout}"
213
+ end
214
+ elsif not last_stderr.empty?
215
+ return " Error: #{last_stderr}"
216
+ end
217
+ ''
218
+ end
219
+
207
220
  def execute_adb_with(timeout, arguments)
208
221
  args = arguments.split
209
222
  execute_adb_with_exactly timeout, *args
@@ -1,3 +1,3 @@
1
1
  module ADB
2
- VERSION = "0.5.4"
2
+ VERSION = "0.5.5"
3
3
  end
@@ -209,10 +209,30 @@ describe ADB do
209
209
  end
210
210
 
211
211
  it "should raise an error when the uninstall fails" do
212
- ADB.should_receive(:last_stdout).and_return('some error')
212
+ ADB.should_receive(:last_stdout).any_number_of_times.and_return('some error')
213
213
  should_call_adb_with('uninstall', 'com.example')
214
214
  expect { ADB.uninstall('com.example') }.to raise_error(ADBError)
215
215
  end
216
+
217
+ it "should raise an error when the uninstall fails" do
218
+ ADB.should_receive(:last_stdout).any_number_of_times.and_return('some stdout message')
219
+ should_call_adb_with('uninstall', 'com.example')
220
+ expect { ADB.uninstall('com.example') }.to raise_error(ADBError, "Could not uninstall com.example Cause: some stdout message")
221
+ end
222
+
223
+ it "should raise an error when the uninstall fails" do
224
+ ADB.should_receive(:last_stderr).any_number_of_times.and_return('some stderr message')
225
+ should_call_adb_with('uninstall', 'com.example')
226
+ expect { ADB.uninstall('com.example') }.to raise_error(ADBError, "Could not uninstall com.example Error: some stderr message")
227
+ end
228
+
229
+ it "should raise an error when the uninstall fails" do
230
+ ADB.should_receive(:last_stdout).any_number_of_times.and_return('some stdout message')
231
+ ADB.should_receive(:last_stderr).any_number_of_times.and_return('some stderr message')
232
+ should_call_adb_with('uninstall', 'com.example')
233
+ expect { ADB.uninstall('com.example') }.to raise_error(ADBError, "Could not uninstall com.example Cause: some stdout message, and Error: some stderr message")
234
+ end
235
+
216
236
  end
217
237
 
218
238
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ADB
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.4
4
+ version: 0.5.5
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -10,7 +10,7 @@ authors:
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2012-09-19 00:00:00.000000000 Z
13
+ date: 2012-10-29 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: childprocess
@@ -105,7 +105,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
105
105
  version: '0'
106
106
  segments:
107
107
  - 0
108
- hash: -1465908384621988337
108
+ hash: 4475756240764748213
109
109
  required_rubygems_version: !ruby/object:Gem::Requirement
110
110
  none: false
111
111
  requirements:
@@ -114,7 +114,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
114
114
  version: '0'
115
115
  segments:
116
116
  - 0
117
- hash: -1465908384621988337
117
+ hash: 4475756240764748213
118
118
  requirements: []
119
119
  rubyforge_project:
120
120
  rubygems_version: 1.8.24