browsermob-proxy 0.1.6 → 0.1.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.
- 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
|