browsermob-proxy 0.1.6 → 0.1.7
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.gitignore +1 -0
- data/.travis.yml +1 -0
- data/README.md +1 -1
- data/lib/browsermob/proxy/client.rb +12 -3
- data/lib/browsermob/proxy/version.rb +1 -1
- data/spec/e2e/selenium_spec.rb +23 -0
- data/spec/unit/client_spec.rb +30 -1
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: f12486dddc06e36739ca5096673afe2ff6c93814
|
4
|
+
data.tar.gz: 28f90db23dfedc1553016ca9197ca63f6db1ca01
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 1bc123504739bb7f2945e8f79dd6db65f3c9546c19f304ff7ff83c02e86f49e569cf14379bbfb327ede3d3b672279e37c70ce03db7fe141490123271e4c5c8b2
|
7
|
+
data.tar.gz: b6aeec505c779005f78572009a5083d14d379eac80e7542b0f7a3da17c04182310f3dc2fbf6aa59cf9366d70dd749fe9455a8d9047d2e228b094bf0e6f3d46ee
|
data/.gitignore
CHANGED
data/.travis.yml
CHANGED
data/README.md
CHANGED
@@ -82,7 +82,7 @@ Note on Patches/Pull Requests
|
|
82
82
|
Copyright
|
83
83
|
---------
|
84
84
|
|
85
|
-
Copyright 2011-
|
85
|
+
Copyright 2011-2014 Jari Bakken
|
86
86
|
|
87
87
|
Licensed under the Apache License, Version 2.0 (the "License");
|
88
88
|
you may not use this file except in compliance with the License.
|
@@ -26,8 +26,7 @@ module BrowserMob
|
|
26
26
|
end
|
27
27
|
|
28
28
|
#
|
29
|
-
#
|
30
|
-
#
|
29
|
+
# @example
|
31
30
|
# client.new_har("page-name")
|
32
31
|
# client.new_har("page-name", :capture_headers => true)
|
33
32
|
# client.new_har(:capture_headers => true)
|
@@ -106,6 +105,15 @@ module BrowserMob
|
|
106
105
|
@resource['blacklist'].delete
|
107
106
|
end
|
108
107
|
|
108
|
+
def rewrite(match_regex, replace)
|
109
|
+
regex = Regexp === match_regex ? match_regex.source : match_regex.to_s
|
110
|
+
@resource['rewrite'].put :matchRegex => regex, :replace => replace
|
111
|
+
end
|
112
|
+
|
113
|
+
def clear_rewrites
|
114
|
+
@resource['rewrite'].delete
|
115
|
+
end
|
116
|
+
|
109
117
|
def header(hash)
|
110
118
|
@resource['headers'].post hash.to_json, :content_type => "application/json"
|
111
119
|
end
|
@@ -154,7 +162,8 @@ module BrowserMob
|
|
154
162
|
# Each invocation of the method will add given hosts to existing BrowserMob's DNS cache
|
155
163
|
# instead of overriding it.
|
156
164
|
#
|
157
|
-
# @example
|
165
|
+
# @example
|
166
|
+
# remap_dns_hosts('example.com' => '1.2.3.4')
|
158
167
|
# @param hash [Hash] a hash with domains as keys and IPs as values
|
159
168
|
#
|
160
169
|
|
data/spec/e2e/selenium_spec.rb
CHANGED
@@ -128,6 +128,29 @@ describe "Proxy + WebDriver" do
|
|
128
128
|
end
|
129
129
|
end
|
130
130
|
|
131
|
+
describe 'rewrite rules' do
|
132
|
+
|
133
|
+
let(:uri) { URI.parse url_for('1.html') }
|
134
|
+
|
135
|
+
before do
|
136
|
+
proxy.rewrite(%r{1\.html}, '2.html')
|
137
|
+
end
|
138
|
+
|
139
|
+
it 'fetches the rewritten url' do
|
140
|
+
driver.get uri
|
141
|
+
|
142
|
+
wait.until { driver.title == '2' }
|
143
|
+
end
|
144
|
+
|
145
|
+
it 'can be cleared' do
|
146
|
+
proxy.clear_rewrites
|
147
|
+
driver.get uri
|
148
|
+
|
149
|
+
wait.until { driver.title == '1' }
|
150
|
+
end
|
151
|
+
|
152
|
+
end
|
153
|
+
|
131
154
|
it 'should set timeouts' do
|
132
155
|
proxy.timeouts(read: 0.001)
|
133
156
|
driver.get url_for('slow')
|
data/spec/unit/client_spec.rb
CHANGED
@@ -19,7 +19,8 @@ module BrowserMob
|
|
19
19
|
"headers" => double("resource[headers]"),
|
20
20
|
"auth/basic/#{DOMAIN}" => double("resource[auth/basic/#{DOMAIN}]"),
|
21
21
|
"hosts" => double("resource[hosts]"),
|
22
|
-
"timeout" => double("resource[timeout]")
|
22
|
+
"timeout" => double("resource[timeout]"),
|
23
|
+
"rewrite" => double("resource[rewrite]")
|
23
24
|
}.each do |path, mock|
|
24
25
|
resource.stub(:[]).with(path).and_return(mock)
|
25
26
|
end
|
@@ -231,6 +232,34 @@ module BrowserMob
|
|
231
232
|
client.remap_dns_hosts(DOMAIN => '1.2.3.4')
|
232
233
|
end
|
233
234
|
|
235
|
+
describe 'rewrite rules' do
|
236
|
+
|
237
|
+
context 'when using a regular expression' do
|
238
|
+
it 'sets a rewrite rule' do
|
239
|
+
resource['rewrite'].should_receive(:put).
|
240
|
+
with(:matchRegex => 'old\.com', :replace => 'new.com')
|
241
|
+
|
242
|
+
client.rewrite('old\.com', 'new.com')
|
243
|
+
end
|
244
|
+
end
|
245
|
+
|
246
|
+
context 'when using a string' do
|
247
|
+
it 'sets a rewrite rule' do
|
248
|
+
resource['rewrite'].should_receive(:put).
|
249
|
+
with(:matchRegex => 'old\.com', :replace => 'new.com')
|
250
|
+
|
251
|
+
client.rewrite(%r{old\.com}, 'new.com')
|
252
|
+
end
|
253
|
+
end
|
254
|
+
|
255
|
+
it 'clears the rewrite rules' do
|
256
|
+
resource['rewrite'].should_receive(:delete)
|
257
|
+
|
258
|
+
client.clear_rewrites
|
259
|
+
end
|
260
|
+
end
|
261
|
+
|
262
|
+
|
234
263
|
context "#selenium_proxy" do
|
235
264
|
it "defaults to HTTP proxy only" do
|
236
265
|
proxy = client.selenium_proxy
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: browsermob-proxy
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.7
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- jari.bakken
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2014-01-06 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rest-client
|
@@ -186,7 +186,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
186
186
|
version: '0'
|
187
187
|
requirements: []
|
188
188
|
rubyforge_project: browsermob-proxy-rb
|
189
|
-
rubygems_version: 2.1.
|
189
|
+
rubygems_version: 2.1.10
|
190
190
|
signing_key:
|
191
191
|
specification_version: 4
|
192
192
|
summary: Ruby client for the BrowserMob Proxy REST API
|