ucnv-chainsaw 0.0.2 → 0.0.3
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 +8 -0
- data/README.rdoc +2 -2
- data/lib/chainsaw.rb +1 -1
- data/lib/chainsaw/browser.rb +7 -6
- data/test/test_browser.rb +48 -1
- metadata +2 -2
data/ChangeLog
ADDED
data/README.rdoc
CHANGED
data/lib/chainsaw.rb
CHANGED
data/lib/chainsaw/browser.rb
CHANGED
@@ -1,4 +1,5 @@
|
|
1
|
-
|
1
|
+
require 'ostruct'
|
2
|
+
require 'tempfile'
|
2
3
|
|
3
4
|
module Chainsaw
|
4
5
|
|
@@ -78,10 +79,10 @@ module Chainsaw
|
|
78
79
|
|
79
80
|
def submit_with(button_name, image_x = -1, image_y = -1)
|
80
81
|
uri, form = prepare_next
|
81
|
-
raise TypeError, 'No form found.'
|
82
|
+
raise TypeError, 'No form found.' if form.nil?
|
82
83
|
unless button_name
|
83
84
|
s = form.xpath('.//input[@type="submit"]')
|
84
|
-
button_name = s.first['name'] if s.length
|
85
|
+
button_name = s.first['name'] if s.length and !s.first.nil?
|
85
86
|
end
|
86
87
|
query = form.serialize_form(button_name, image_x, image_y)
|
87
88
|
method = (form['method'] || 'get').downcase
|
@@ -108,7 +109,6 @@ module Chainsaw
|
|
108
109
|
end
|
109
110
|
|
110
111
|
def back
|
111
|
-
require 'ostruct'
|
112
112
|
cleanup
|
113
113
|
@history.shift
|
114
114
|
back = @history.first
|
@@ -207,7 +207,7 @@ module Chainsaw
|
|
207
207
|
end
|
208
208
|
|
209
209
|
# history
|
210
|
-
set_history uri.to_s, r.contenttype, r.content
|
210
|
+
set_history r.uri.to_s, r.contenttype, r.content
|
211
211
|
r
|
212
212
|
end
|
213
213
|
|
@@ -219,9 +219,10 @@ module Chainsaw
|
|
219
219
|
end
|
220
220
|
|
221
221
|
set.each_with_index do |e, index|
|
222
|
+
pos = @history.size
|
222
223
|
set_next(e)
|
223
224
|
with_index ? yield(self, index) : yield(self)
|
224
|
-
back
|
225
|
+
back if @history.size == pos + 1
|
225
226
|
end
|
226
227
|
self
|
227
228
|
end
|
data/test/test_browser.rb
CHANGED
@@ -144,7 +144,7 @@ class TestBrowser < Test::Unit::TestCase
|
|
144
144
|
assert_equal index, count
|
145
145
|
count += 1
|
146
146
|
cs.open { |cs|
|
147
|
-
if
|
147
|
+
if index == 3
|
148
148
|
x = YAML.load cs.res.content
|
149
149
|
assert_equal TEST_URL + '01.html', x['env']['HTTP_REFERER']
|
150
150
|
end
|
@@ -152,6 +152,53 @@ class TestBrowser < Test::Unit::TestCase
|
|
152
152
|
}
|
153
153
|
end
|
154
154
|
|
155
|
+
def test_each_next
|
156
|
+
count = 0
|
157
|
+
Chainsaw.launch(TEST_URL + '01.html').open { |cs|
|
158
|
+
cs.set_next cs.doc.xpath('//a')
|
159
|
+
}.each_with_index { |cs, i|
|
160
|
+
assert_equal i, count
|
161
|
+
count += 1
|
162
|
+
cs.open { |cs|
|
163
|
+
break if i != 3
|
164
|
+
assert_equal i, 3
|
165
|
+
x = YAML.load cs.res.content
|
166
|
+
assert_equal TEST_URL + '01.html', x['env']['HTTP_REFERER']
|
167
|
+
}
|
168
|
+
}
|
169
|
+
end
|
170
|
+
|
171
|
+
def test_each_next2
|
172
|
+
count = 0
|
173
|
+
Chainsaw.launch(TEST_URL + '01.html').open { |cs|
|
174
|
+
cs.set_next cs.doc.xpath('//a')
|
175
|
+
}.each_with_index { |cs, i|
|
176
|
+
assert_equal i, count
|
177
|
+
count += 1
|
178
|
+
next if i != 3
|
179
|
+
assert_equal i, 3
|
180
|
+
cs.open { |c|
|
181
|
+
x = YAML.load c.res.content
|
182
|
+
assert_equal TEST_URL + '01.html', x['env']['HTTP_REFERER']
|
183
|
+
}
|
184
|
+
}
|
185
|
+
end
|
186
|
+
|
187
|
+
def test_each_break
|
188
|
+
count = 0
|
189
|
+
Chainsaw.launch(TEST_URL + '01.html').open { |cs|
|
190
|
+
cs.set_next cs.doc.xpath('//a')
|
191
|
+
}.each { |cs|
|
192
|
+
next if count == 0
|
193
|
+
break if count == 1
|
194
|
+
count += 1
|
195
|
+
cs.open {|cs|
|
196
|
+
flunk 'Must not pass here.'
|
197
|
+
}
|
198
|
+
}
|
199
|
+
|
200
|
+
end
|
201
|
+
|
155
202
|
def test_referer
|
156
203
|
Chainsaw.launch(TEST_URL + '01.html').
|
157
204
|
open { |cs|
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ucnv-chainsaw
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- ucnv
|
@@ -9,7 +9,7 @@ autorequire: ""
|
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
11
|
|
12
|
-
date: 2009-
|
12
|
+
date: 2009-07-02 00:00:00 -07:00
|
13
13
|
default_executable:
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|