wiselinks 0.7.2 → 0.7.3

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: ff45b38e288d992f9f0caac5e9c421fa55f89d08
4
+ data.tar.gz: 267a33bf4cace68a13da6d39293fe0f80b147691
5
+ SHA512:
6
+ metadata.gz: e52123b5f8965db4e49edca5571f9117dfc7308cc83211e665016167e15dae3e59f881c38c17a89e78f2b8068e0488b65edf82ad5476922255b336aca21cdbde
7
+ data.tar.gz: 89e98116b5d6073612380e2a720b491597501b650d68dd2d6c442589690b102c0d81f33b278443473b59a4acd9ee20b0d7840d31bff97230980f170d8876bb75
data/.travis.yml CHANGED
@@ -1,6 +1,4 @@
1
1
  language: ruby
2
2
  rvm:
3
- - 1.9.2
4
3
  - 1.9.3
5
- - 2.0.0
6
- - ruby-head
4
+ - 2.0.0
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- wiselinks (0.7.2)
4
+ wiselinks (0.7.3)
5
5
 
6
6
  GEM
7
7
  remote: https://rubygems.org/
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Wiselinks-0.7.2
2
+ * Wiselinks-0.7.3
3
3
  * @copyright 2012-2013 Igor Alexandrov, Alexey Solilin, Julia Egorova, Alexandr Borisov
4
4
  * @preserve https://github.com/igor-alexandrov/wiselinks
5
5
  */
@@ -292,7 +292,7 @@
292
292
  return window.location.reload(true);
293
293
  } else {
294
294
  state = History.getState();
295
- if ((url != null) && (url !== encodeURI(self._normalize(state.url)))) {
295
+ if ((url != null) && (url !== self._normalize(window.location.href))) {
296
296
  self._redirect_to(url, $target, state, xhr);
297
297
  }
298
298
  $target.html(data);
@@ -22,7 +22,7 @@ d.ctrlKey||d.shiftKey||d.altKey};return c}();void 0===window._Wiselinks&&(window
22
22
  e.process(),!1});$(document).on("submit","form[data-push], form[data-replace]",function(d){var e;if(e=new _Wiselinks.Form(b,$(this)))return d.preventDefault(),e.process(),!1})}c.prototype.load=function(d,e,b){null==b&&(b="template");"partial"!==b&&(this.template_id=(new Date).getTime());null!=e&&this._try_target($(e));return History.pushState({timestamp:(new Date).getTime(),template_id:this.template_id,render:b,target:e,referer:window.location.href},document.title,d)};c.prototype.reload=function(){return History.replaceState({timestamp:(new Date).getTime(),
23
23
  template_id:this.template_id,render:"template",referer:window.location.href},document.title,History.getState().url)};c.prototype._call=function(d){var e;e=null!=d.data.target?$(d.data.target):this.$target;return this.request_manager.call(e,d)};c.prototype._template_id_changed=function(d){return null==d.data.template_id||d.data.template_id!==this.template_id};c.prototype._make_state=function(d,e,b,f){null==b&&(b="template");return{url:d,data:{target:e,render:b,referer:f}}};c.prototype._reset_state=
24
24
  function(d){null==d.data&&(d.data={});d.data.target=null;d.data.render="template";return d};c.prototype._try_target=function(d){if(0===d.length&&"exception"===this.options.target_missing)throw Error("[Wiselinks] Target missing: `"+d.selector+"`");};return c}();void 0===window._Wiselinks&&(window._Wiselinks={});window._Wiselinks.Page=c;c=function(){function c(d){this.options=null!=d?d:{}}c.prototype.call=function(d,c){var b;b=this;if(null!=this.redirected)this.redirected=null;else return b._loading(d,
25
- c),$.ajax({url:c.url,headers:{"X-Wiselinks":c.data.render,"X-Wiselinks-Referer":c.data.referer},dataType:"html"}).done(function(f,g,k){var l,h;h=b._normalize(k.getResponseHeader("X-Wiselinks-Url"));l=k.getResponseHeader("X-Wiselinks-Assets-Digest");if(b._assets_changed(l))return window.location.reload(!0);c=History.getState();null!=h&&h!==encodeURI(b._normalize(c.url))&&b._redirect_to(h,d,c,k);d.html(f);b._title(k.getResponseHeader("X-Wiselinks-Title"));return b._done(d,g,c.url,f)}).fail(function(f,
25
+ c),$.ajax({url:c.url,headers:{"X-Wiselinks":c.data.render,"X-Wiselinks-Referer":c.data.referer},dataType:"html"}).done(function(f,g,k){var l,h;h=b._normalize(k.getResponseHeader("X-Wiselinks-Url"));l=k.getResponseHeader("X-Wiselinks-Assets-Digest");if(b._assets_changed(l))return window.location.reload(!0);c=History.getState();null!=h&&h!==b._normalize(window.location.href)&&b._redirect_to(h,d,c,k);d.html(f);b._title(k.getResponseHeader("X-Wiselinks-Title"));return b._done(d,g,c.url,f)}).fail(function(f,
26
26
  g,k){return b._fail(d,g,c.url,k)}).always(function(f,g,k){return b._always(d,g,c.url)})};c.prototype._normalize=function(d){if(null!=d)return d=d.replace(/\/+$/,"")};c.prototype._assets_changed=function(d){return null!=this.options.assets_digest&&this.options.assets_digest!==d};c.prototype._redirect_to=function(d,c,b,f){f&&4>f.readyState&&(f.onreadystatechange=$.noop,f.abort());this.redirected=!0;$(document).trigger("page:redirected",[c,b.data.render,d]);return History.replaceState(b.data,document.title,
27
27
  d)};c.prototype._loading=function(d,c){return $(document).trigger("page:loading",[d,c.data.render,c.url])};c.prototype._done=function(d,c,b,f){return $(document).trigger("page:done",[d,c,b,f])};c.prototype._fail=function(d,c,b,f){return $(document).trigger("page:fail",[d,c,b,f])};c.prototype._always=function(d,c,b){return $(document).trigger("page:always",[d,c,b])};c.prototype._title=function(d){if(null!=d)return $(document).trigger("page:title",decodeURI(d)),document.title=decodeURI(d)};return c}();
28
28
  void 0===window._Wiselinks&&(window._Wiselinks={});window._Wiselinks.RequestManager=c;c=function(){function c(d,e){null==d&&(d=$("body"));this.options=null!=e?e:{};this._try_jquery();this.options=$.extend(this._defaults(),this.options);this.enabled()&&(this.page=new _Wiselinks.Page(d,this.options))}c.prototype.enabled=function(){return!History.emulated.pushState||!0===this.options.html4};c.prototype.load=function(c,e,b){null==b&&(b="template");return this.page.load(c,e,b)};c.prototype.reload=function(){return this.page.reload()};
Binary file
@@ -33,7 +33,7 @@ class RequestManager
33
33
  else
34
34
  state = History.getState()
35
35
 
36
- if url? && (url != encodeURI(self._normalize(state.url)))
36
+ if url? && (url != self._normalize(window.location.href))
37
37
  self._redirect_to(url, $target, state, xhr)
38
38
 
39
39
  $target.html(data)
@@ -4,7 +4,7 @@ module Wiselinks
4
4
  module Version
5
5
  MAJOR = 0
6
6
  MINOR = 7
7
- PATCH = 2
7
+ PATCH = 3
8
8
  BUILD = nil
9
9
 
10
10
  STRING = [MAJOR, MINOR, PATCH, BUILD].compact.join('.')
@@ -3,6 +3,6 @@ require "helper"
3
3
  feature 'Assets change detection' do
4
4
  scenario 'with an assets digest enabled' do
5
5
  visit('/')
6
- page.should have_xpath('//head/meta[@name="assets-digest"]')
6
+ page.should have_xpath("//head/meta[@name='assets-digest']", :visible => false)
7
7
  end
8
8
  end
@@ -2,7 +2,7 @@ require "helper"
2
2
 
3
3
  describe ActionDispatch::Request do
4
4
  describe 'request' do
5
- before :all do
5
+ before :all do
6
6
  @request = FactoryGirl.build(:request)
7
7
  end
8
8
 
@@ -24,7 +24,7 @@ describe ActionDispatch::Request do
24
24
  end
25
25
  end
26
26
 
27
- context 'wiselinks methods' do
27
+ context 'wiselinks methods' do
28
28
  it 'should not be a wiselinks request' do
29
29
  @request.wiselinks?.should == false
30
30
  end
@@ -36,11 +36,11 @@ describe ActionDispatch::Request do
36
36
  it 'should not be a wiselinks partial request' do
37
37
  @request.wiselinks_partial?.should == false
38
38
  end
39
- end
39
+ end
40
40
  end
41
-
41
+
42
42
  describe 'wiselinks_request' do
43
- before :all do
43
+ before :all do
44
44
  @request = FactoryGirl.build(:wiselinks_request)
45
45
  end
46
46
 
@@ -48,7 +48,7 @@ describe ActionDispatch::Request do
48
48
  @request.should be
49
49
  end
50
50
 
51
- context 'wiselinks methods' do
51
+ context 'wiselinks methods' do
52
52
  it 'should be a wiselinks request' do
53
53
  @request.wiselinks?.should == true
54
54
  end
@@ -60,11 +60,11 @@ describe ActionDispatch::Request do
60
60
  it 'should not be a wiselinks partial request' do
61
61
  @request.wiselinks_partial?.should == false
62
62
  end
63
- end
63
+ end
64
64
  end
65
65
 
66
66
  describe 'wiselinks_template_request' do
67
- before :all do
67
+ before :all do
68
68
  @request = FactoryGirl.build(:wiselinks_template_request)
69
69
  end
70
70
 
@@ -72,7 +72,7 @@ describe ActionDispatch::Request do
72
72
  @request.should be
73
73
  end
74
74
 
75
- context 'wiselinks methods' do
75
+ context 'wiselinks methods' do
76
76
  it 'should be a wiselinks request' do
77
77
  @request.wiselinks?.should == true
78
78
  end
@@ -84,11 +84,11 @@ describe ActionDispatch::Request do
84
84
  it 'should not be a wiselinks partial request' do
85
85
  @request.wiselinks_partial?.should == false
86
86
  end
87
- end
87
+ end
88
88
  end
89
89
 
90
90
  describe 'wiselinks_partial_request' do
91
- before :all do
91
+ before :all do
92
92
  @request = FactoryGirl.build(:wiselinks_partial_request)
93
93
  end
94
94
 
@@ -96,7 +96,7 @@ describe ActionDispatch::Request do
96
96
  @request.should be
97
97
  end
98
98
 
99
- context 'wiselinks methods' do
99
+ context 'wiselinks methods' do
100
100
  it 'should be a wiselinks request' do
101
101
  @request.wiselinks?.should == true
102
102
  end
@@ -108,6 +108,6 @@ describe ActionDispatch::Request do
108
108
  it 'should be a wiselinks partial request' do
109
109
  @request.wiselinks_partial?.should == true
110
110
  end
111
- end
111
+ end
112
112
  end
113
113
  end
data/spec/helper.rb CHANGED
@@ -17,3 +17,10 @@ Capybara.app = Dummy::Application
17
17
 
18
18
  require 'factory_girl'
19
19
  FactoryGirl.find_definitions
20
+
21
+ RSpec::Matchers::define :have_meta do |name|
22
+ match do |page|
23
+ puts Capybara.string(page.body)
24
+ Capybara.string(page.body).has_selector?(:xpath, "//head/meta[@name='#{name}']")
25
+ end
26
+ end
@@ -4,7 +4,7 @@ describe 'Requests' do
4
4
  context 'w/ trailing slash' do
5
5
  it 'sets X-Wiselinks header field correctly' do
6
6
  get('trailing-slash/', {}, {"X-Wiselinks" => 'template'})
7
- response.headers['X-Wiselinks-Url'].last.should == '/'
7
+ response.headers['X-Wiselinks-Url'].should =~ /trailing-slash\z/
8
8
  end
9
9
  end
10
10
 
metadata CHANGED
@@ -1,8 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: wiselinks
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.7.2
5
- prerelease:
4
+ version: 0.7.3
6
5
  platform: ruby
7
6
  authors:
8
7
  - Igor Alexandrov
@@ -12,28 +11,25 @@ authors:
12
11
  autorequire:
13
12
  bindir: bin
14
13
  cert_chain: []
15
- date: 2013-07-03 00:00:00.000000000 Z
14
+ date: 2013-07-04 00:00:00.000000000 Z
16
15
  dependencies:
17
16
  - !ruby/object:Gem::Dependency
18
17
  name: rspec
19
18
  requirement: !ruby/object:Gem::Requirement
20
- none: false
21
19
  requirements:
22
- - - ! '>='
20
+ - - '>='
23
21
  - !ruby/object:Gem::Version
24
22
  version: '0'
25
23
  type: :development
26
24
  prerelease: false
27
25
  version_requirements: !ruby/object:Gem::Requirement
28
- none: false
29
26
  requirements:
30
- - - ! '>='
27
+ - - '>='
31
28
  - !ruby/object:Gem::Version
32
29
  version: '0'
33
30
  - !ruby/object:Gem::Dependency
34
31
  name: webmock
35
32
  requirement: !ruby/object:Gem::Requirement
36
- none: false
37
33
  requirements:
38
34
  - - ~>
39
35
  - !ruby/object:Gem::Version
@@ -41,7 +37,6 @@ dependencies:
41
37
  type: :development
42
38
  prerelease: false
43
39
  version_requirements: !ruby/object:Gem::Requirement
44
- none: false
45
40
  requirements:
46
41
  - - ~>
47
42
  - !ruby/object:Gem::Version
@@ -49,183 +44,160 @@ dependencies:
49
44
  - !ruby/object:Gem::Dependency
50
45
  name: shoulda
51
46
  requirement: !ruby/object:Gem::Requirement
52
- none: false
53
47
  requirements:
54
- - - ! '>='
48
+ - - '>='
55
49
  - !ruby/object:Gem::Version
56
50
  version: '0'
57
51
  type: :development
58
52
  prerelease: false
59
53
  version_requirements: !ruby/object:Gem::Requirement
60
- none: false
61
54
  requirements:
62
- - - ! '>='
55
+ - - '>='
63
56
  - !ruby/object:Gem::Version
64
57
  version: '0'
65
58
  - !ruby/object:Gem::Dependency
66
59
  name: simplecov
67
60
  requirement: !ruby/object:Gem::Requirement
68
- none: false
69
61
  requirements:
70
- - - ! '>='
62
+ - - '>='
71
63
  - !ruby/object:Gem::Version
72
64
  version: '0'
73
65
  type: :development
74
66
  prerelease: false
75
67
  version_requirements: !ruby/object:Gem::Requirement
76
- none: false
77
68
  requirements:
78
- - - ! '>='
69
+ - - '>='
79
70
  - !ruby/object:Gem::Version
80
71
  version: '0'
81
72
  - !ruby/object:Gem::Dependency
82
73
  name: coveralls
83
74
  requirement: !ruby/object:Gem::Requirement
84
- none: false
85
75
  requirements:
86
- - - ! '>='
76
+ - - '>='
87
77
  - !ruby/object:Gem::Version
88
78
  version: '0'
89
79
  type: :development
90
80
  prerelease: false
91
81
  version_requirements: !ruby/object:Gem::Requirement
92
- none: false
93
82
  requirements:
94
- - - ! '>='
83
+ - - '>='
95
84
  - !ruby/object:Gem::Version
96
85
  version: '0'
97
86
  - !ruby/object:Gem::Dependency
98
87
  name: rake
99
88
  requirement: !ruby/object:Gem::Requirement
100
- none: false
101
89
  requirements:
102
- - - ! '>='
90
+ - - '>='
103
91
  - !ruby/object:Gem::Version
104
92
  version: '0'
105
93
  type: :development
106
94
  prerelease: false
107
95
  version_requirements: !ruby/object:Gem::Requirement
108
- none: false
109
96
  requirements:
110
- - - ! '>='
97
+ - - '>='
111
98
  - !ruby/object:Gem::Version
112
99
  version: '0'
113
100
  - !ruby/object:Gem::Dependency
114
101
  name: bundler
115
102
  requirement: !ruby/object:Gem::Requirement
116
- none: false
117
103
  requirements:
118
- - - ! '>='
104
+ - - '>='
119
105
  - !ruby/object:Gem::Version
120
106
  version: '0'
121
107
  type: :development
122
108
  prerelease: false
123
109
  version_requirements: !ruby/object:Gem::Requirement
124
- none: false
125
110
  requirements:
126
- - - ! '>='
111
+ - - '>='
127
112
  - !ruby/object:Gem::Version
128
113
  version: '0'
129
114
  - !ruby/object:Gem::Dependency
130
115
  name: sqlite3
131
116
  requirement: !ruby/object:Gem::Requirement
132
- none: false
133
117
  requirements:
134
- - - ! '>='
118
+ - - '>='
135
119
  - !ruby/object:Gem::Version
136
120
  version: '0'
137
121
  type: :development
138
122
  prerelease: false
139
123
  version_requirements: !ruby/object:Gem::Requirement
140
- none: false
141
124
  requirements:
142
- - - ! '>='
125
+ - - '>='
143
126
  - !ruby/object:Gem::Version
144
127
  version: '0'
145
128
  - !ruby/object:Gem::Dependency
146
129
  name: rspec
147
130
  requirement: !ruby/object:Gem::Requirement
148
- none: false
149
131
  requirements:
150
- - - ! '>='
132
+ - - '>='
151
133
  - !ruby/object:Gem::Version
152
134
  version: '0'
153
135
  type: :development
154
136
  prerelease: false
155
137
  version_requirements: !ruby/object:Gem::Requirement
156
- none: false
157
138
  requirements:
158
- - - ! '>='
139
+ - - '>='
159
140
  - !ruby/object:Gem::Version
160
141
  version: '0'
161
142
  - !ruby/object:Gem::Dependency
162
143
  name: rspec-rails
163
144
  requirement: !ruby/object:Gem::Requirement
164
- none: false
165
145
  requirements:
166
- - - ! '>='
146
+ - - '>='
167
147
  - !ruby/object:Gem::Version
168
148
  version: '0'
169
149
  type: :development
170
150
  prerelease: false
171
151
  version_requirements: !ruby/object:Gem::Requirement
172
- none: false
173
152
  requirements:
174
- - - ! '>='
153
+ - - '>='
175
154
  - !ruby/object:Gem::Version
176
155
  version: '0'
177
156
  - !ruby/object:Gem::Dependency
178
157
  name: factory_girl
179
158
  requirement: !ruby/object:Gem::Requirement
180
- none: false
181
159
  requirements:
182
- - - ! '>='
160
+ - - '>='
183
161
  - !ruby/object:Gem::Version
184
162
  version: '0'
185
163
  type: :development
186
164
  prerelease: false
187
165
  version_requirements: !ruby/object:Gem::Requirement
188
- none: false
189
166
  requirements:
190
- - - ! '>='
167
+ - - '>='
191
168
  - !ruby/object:Gem::Version
192
169
  version: '0'
193
170
  - !ruby/object:Gem::Dependency
194
171
  name: faker
195
172
  requirement: !ruby/object:Gem::Requirement
196
- none: false
197
173
  requirements:
198
- - - ! '>='
174
+ - - '>='
199
175
  - !ruby/object:Gem::Version
200
176
  version: '0'
201
177
  type: :development
202
178
  prerelease: false
203
179
  version_requirements: !ruby/object:Gem::Requirement
204
- none: false
205
180
  requirements:
206
- - - ! '>='
181
+ - - '>='
207
182
  - !ruby/object:Gem::Version
208
183
  version: '0'
209
184
  - !ruby/object:Gem::Dependency
210
185
  name: capybara
211
186
  requirement: !ruby/object:Gem::Requirement
212
- none: false
213
187
  requirements:
214
- - - ! '>='
188
+ - - '>='
215
189
  - !ruby/object:Gem::Version
216
190
  version: '0'
217
191
  type: :development
218
192
  prerelease: false
219
193
  version_requirements: !ruby/object:Gem::Requirement
220
- none: false
221
194
  requirements:
222
- - - ! '>='
195
+ - - '>='
223
196
  - !ruby/object:Gem::Version
224
197
  version: '0'
225
198
  - !ruby/object:Gem::Dependency
226
199
  name: rails
227
200
  requirement: !ruby/object:Gem::Requirement
228
- none: false
229
201
  requirements:
230
202
  - - ~>
231
203
  - !ruby/object:Gem::Version
@@ -233,7 +205,6 @@ dependencies:
233
205
  type: :development
234
206
  prerelease: false
235
207
  version_requirements: !ruby/object:Gem::Requirement
236
- none: false
237
208
  requirements:
238
209
  - - ~>
239
210
  - !ruby/object:Gem::Version
@@ -241,49 +212,43 @@ dependencies:
241
212
  - !ruby/object:Gem::Dependency
242
213
  name: coffee-rails
243
214
  requirement: !ruby/object:Gem::Requirement
244
- none: false
245
215
  requirements:
246
- - - ! '>='
216
+ - - '>='
247
217
  - !ruby/object:Gem::Version
248
218
  version: '0'
249
219
  type: :development
250
220
  prerelease: false
251
221
  version_requirements: !ruby/object:Gem::Requirement
252
- none: false
253
222
  requirements:
254
- - - ! '>='
223
+ - - '>='
255
224
  - !ruby/object:Gem::Version
256
225
  version: '0'
257
226
  - !ruby/object:Gem::Dependency
258
227
  name: closure-compiler
259
228
  requirement: !ruby/object:Gem::Requirement
260
- none: false
261
229
  requirements:
262
- - - ! '>='
230
+ - - '>='
263
231
  - !ruby/object:Gem::Version
264
232
  version: '0'
265
233
  type: :development
266
234
  prerelease: false
267
235
  version_requirements: !ruby/object:Gem::Requirement
268
- none: false
269
236
  requirements:
270
- - - ! '>='
237
+ - - '>='
271
238
  - !ruby/object:Gem::Version
272
239
  version: '0'
273
240
  - !ruby/object:Gem::Dependency
274
241
  name: coffeelint
275
242
  requirement: !ruby/object:Gem::Requirement
276
- none: false
277
243
  requirements:
278
- - - ! '>='
244
+ - - '>='
279
245
  - !ruby/object:Gem::Version
280
246
  version: '0'
281
247
  type: :development
282
248
  prerelease: false
283
249
  version_requirements: !ruby/object:Gem::Requirement
284
- none: false
285
250
  requirements:
286
- - - ! '>='
251
+ - - '>='
287
252
  - !ruby/object:Gem::Version
288
253
  version: '0'
289
254
  description:
@@ -302,9 +267,9 @@ files:
302
267
  - README.md
303
268
  - Rakefile
304
269
  - app/views/layouts/wiselinks.html.erb
305
- - build/wiselinks-0.7.2.js
306
- - build/wiselinks-0.7.2.min.js
307
- - build/wiselinks-0.7.2.min.js.gz
270
+ - build/wiselinks-0.7.3.js
271
+ - build/wiselinks-0.7.3.min.js
272
+ - build/wiselinks-0.7.3.min.js.gz
308
273
  - compiler.jar
309
274
  - lib/assets/javascripts/_form.js.coffee
310
275
  - lib/assets/javascripts/_link.js.coffee
@@ -394,33 +359,26 @@ files:
394
359
  homepage: http://github.com/igor-alexandrov/wiselinks
395
360
  licenses:
396
361
  - MIT
362
+ metadata: {}
397
363
  post_install_message:
398
364
  rdoc_options: []
399
365
  require_paths:
400
366
  - lib
401
367
  required_ruby_version: !ruby/object:Gem::Requirement
402
- none: false
403
368
  requirements:
404
- - - ! '>='
369
+ - - '>='
405
370
  - !ruby/object:Gem::Version
406
371
  version: '0'
407
- segments:
408
- - 0
409
- hash: -1371171981664883558
410
372
  required_rubygems_version: !ruby/object:Gem::Requirement
411
- none: false
412
373
  requirements:
413
- - - ! '>='
374
+ - - '>='
414
375
  - !ruby/object:Gem::Version
415
376
  version: '0'
416
- segments:
417
- - 0
418
- hash: -1371171981664883558
419
377
  requirements: []
420
378
  rubyforge_project:
421
- rubygems_version: 1.8.24
379
+ rubygems_version: 2.0.3
422
380
  signing_key:
423
- specification_version: 3
381
+ specification_version: 4
424
382
  summary: Wiselinks makes following links and submitting some forms in your web application
425
383
  smarter and faster
426
384
  test_files:
Binary file