ucnv-chainsaw 0.0.2 → 0.0.3
Sign up to get free protection for your applications and to get access to all the features.
- 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
|