wovnrb 0.1.71 → 0.1.72

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 6de41f16ba0cd217fe246d63968cb01e5c2a6ee1
4
- data.tar.gz: 5d86fa885bc7ccca860d417be1313c26ab82e637
3
+ metadata.gz: 8a1a011e4d8bff9e778139c4e77f365df5de6742
4
+ data.tar.gz: 50c5dbf8bd3b7a4eda18ae59a0a415b907ee8da3
5
5
  SHA512:
6
- metadata.gz: 49c9a83d6d90562cdb15100feda10bb56b5611d471a8dcc14b8a109ec64de02a9336550e9a79d420235e0374b6dc0896d112970e56db7ab6bd52df91a9564987
7
- data.tar.gz: e54a6893605f5d36c5e439f82f4742405d085e788144f46763f2391caca76913cd648b68f44bb6f7fe304e5f0eea3e319a6d6d86aa8fb70df376313bb5200ed7
6
+ metadata.gz: 06f5dd0a9c35c0867862c1d96e88a2385aeb0825b5570e7f5936a250755e5d991017ae7c4660d86618d0fda379eb08d4bcdc395ab3b572dd5249dc7e0096c68c
7
+ data.tar.gz: 150b1708b79dfe172648b53e85e1353e5d0d9635cfc739523702770e284ca5e27a5a52f21bb7fdcdaf9e7d0140c0a3367073df537e43fa783ae544f61cfcb270
data/lib/wovnrb.rb CHANGED
@@ -10,7 +10,7 @@ require 'wovnrb/railtie' if defined?(Rails)
10
10
  module Wovnrb
11
11
 
12
12
  STORE = Store.new
13
-
13
+
14
14
  class Interceptor
15
15
  def initialize(app)
16
16
  @app = app
@@ -35,22 +35,22 @@ module Wovnrb
35
35
  # pass to application
36
36
  status, res_headers, body = @app.call(headers.request_out)
37
37
 
38
- if res_headers["Content-Type"] =~ /html/# && !body[0].nil?
39
- puts ""
40
- puts ""
41
- puts "WOVNRB LOGGING"
42
- puts "H-PATHLANG: " + headers.path_lang
43
- puts "DEF_LANG: " + STORE.settings['default_lang']
44
- puts "WOVNRB LOGGING"
45
- puts ""
46
- puts ""
38
+ if res_headers["Content-Type"] =~ /html/ # && !body[0].nil?
39
+ puts ""
40
+ puts ""
41
+ puts "WOVNRB LOGGING"
42
+ puts "H-PATHLANG: " + headers.path_lang
43
+ puts "DEF_LANG: " + STORE.settings['default_lang']
44
+ puts "WOVNRB LOGGING"
45
+ puts ""
46
+ puts ""
47
47
 
48
48
  values = STORE.get_values(headers.redis_url)
49
49
  url = {
50
- :protocol => headers.protocol,
51
- :host => headers.host,
52
- :pathname => headers.pathname
53
- }
50
+ :protocol => headers.protocol,
51
+ :host => headers.host,
52
+ :pathname => headers.pathname
53
+ }
54
54
  body = switch_lang(body, values, url, lang, headers) unless status.to_s =~ /^1|302/
55
55
 
56
56
  content_length = 0
@@ -64,6 +64,7 @@ module Wovnrb
64
64
  end
65
65
 
66
66
  def add_lang_code(href, pattern, lang, headers)
67
+ return href if href =~ /^(#.*)?$/
67
68
  # absolute links
68
69
  new_href = href
69
70
  if href && href =~ /^(https?:)?\/\//i
@@ -77,39 +78,47 @@ module Wovnrb
77
78
  # only add lang if it's an internal link
78
79
  if uri.host === headers.host
79
80
  case pattern
80
- when 'subdomain'
81
- sub_d = href.match(/\/\/([^\.]*)\./)[1]
82
- sub_code = Lang.get_code(sub_d)
83
- if sub_code && sub_code.downcase == lang.downcase
84
- new_href = href.sub(Regexp.new(lang, 'i'), lang.downcase)
85
- else
86
- new_href = href.sub(/(\/\/)([^\.]*)/,'\1' + lang.downcase + '.' + '\2' )
87
- end
88
- when 'query'
89
- new_href = href =~ /\?/ ? href + '&wovn=' + lang : href + '?wovn=' + lang
90
- else # path
91
- new_href = href.sub(/([^\.]*\.[^\/]*)(\/|$)/, '\1/' + lang + '/')
81
+ when 'subdomain'
82
+ sub_d = href.match(/\/\/([^\.]*)\./)[1]
83
+ sub_code = Lang.get_code(sub_d)
84
+ if sub_code && sub_code.downcase == lang.downcase
85
+ new_href = href.sub(Regexp.new(lang, 'i'), lang.downcase)
86
+ else
87
+ new_href = href.sub(/(\/\/)([^\.]*)/, '\1' + lang.downcase + '.' + '\2')
88
+ end
89
+ when 'query'
90
+ new_href = href =~ /\?/ ? href + '&wovn=' + lang : href + '?wovn=' + lang
91
+ else # path
92
+ new_href = href.sub(/([^\.]*\.[^\/]*)(\/|$)/, '\1/' + lang + '/')
92
93
  end
93
94
  end
94
95
  elsif href
95
96
  case pattern
96
- when 'subdomain'
97
- lang_url = headers.protocol + '://' + lang.downcase + '.' + headers.host
98
- if href =~ /^\//
99
- new_href = lang_url + href
100
- else
101
- current_dir = headers.pathname.sub(/[^\/]*\.[^\.]{2,6}$/, '')
102
- new_href = lang_url + current_dir + href
103
- end
104
- when 'query'
105
- new_href = href =~ /\?/ ? href + '&wovn=' + lang : href + '?wovn=' + lang
106
- else # path
107
- if href =~ /^\//
108
- new_href = '/' + lang + href
109
- else
97
+ when 'subdomain'
98
+ lang_url = headers.protocol + '://' + lang.downcase + '.' + headers.host
110
99
  current_dir = headers.pathname.sub(/[^\/]*\.[^\.]{2,6}$/, '')
111
- new_href = '/' + lang + current_dir + href
112
- end
100
+ if href =~ /^\.\..*$/
101
+ # ../path
102
+ new_href = lang_url + '/' + href.gsub(/^\.\.\//, '')
103
+ elsif href =~ /^\..*$/
104
+ # ./path
105
+ new_href = lang_url + current_dir + '/' + href.gsub(/^\.\//, '')
106
+ elsif href =~ /^\/.*$/
107
+ # /path
108
+ new_href = lang_url + current_dir + href
109
+ else
110
+ # path
111
+ new_href = lang_url + current_dir + '/' + href
112
+ end
113
+ when 'query'
114
+ new_href = href =~ /\?/ ? href + '&wovn=' + lang : href + '?wovn=' + lang
115
+ else # path
116
+ if href =~ /^\//
117
+ new_href = '/' + lang + href
118
+ else
119
+ current_dir = headers.pathname.sub(/[^\/]*\.[^\.]{2,6}$/, '')
120
+ new_href = '/' + lang + current_dir + href
121
+ end
113
122
  end
114
123
  end
115
124
  new_href
@@ -144,7 +153,7 @@ module Wovnrb
144
153
  end
145
154
  end
146
155
  # swap meta tag values
147
- d.xpath('//meta').select{ |t|
156
+ d.xpath('//meta').select { |t|
148
157
  (t.get_attribute('name') || t.get_attribute('property') || '') =~ /^(description|keywords|og:title|og:description)$/
149
158
  }.each do |node|
150
159
  node_content = node.get_attribute('content').strip
@@ -160,7 +169,7 @@ module Wovnrb
160
169
  src = node.to_html.match(/src=['"]([^'"]*)['"]/i)[1]
161
170
  # THIS SRC CORRECTION DOES NOT HANDLE ONE IMPORTANT CASE
162
171
  # 1) "../path/with/ellipse"
163
- # if this is not an absolute src
172
+ # if this is not an absolute src
164
173
  if src !~ /:\/\//
165
174
  # if this is a path with a leading slash
166
175
  if src =~ /^\//
@@ -169,7 +178,7 @@ module Wovnrb
169
178
  src = "#{url[:protocol]}://#{url[:host]}#{url[:path]}#{src}"
170
179
  end
171
180
  end
172
-
181
+
173
182
  # shouldn't need size check, but for now...
174
183
  if src_index[src] && src_index[src][lang] && src_index[src][lang].size > 0
175
184
  node.attribute('src').value = "#{img_src_prefix}#{src_index[src][lang][0]['data']}"
@@ -200,7 +209,7 @@ module Wovnrb
200
209
  parent_node.add_child(insert_node)
201
210
  end
202
211
 
203
-
212
+
204
213
  # INSERT LANGUAGE METALINKS
205
214
  published_langs = get_langs(values)
206
215
  published_langs.each do |l|
@@ -216,7 +225,7 @@ module Wovnrb
216
225
  (d.at_css('html') || d.at_css('HTML')).set_attribute('lang', lang)
217
226
  end
218
227
 
219
- output = d.to_html.gsub(/href="([^"]*)"/) {|m| "href=\"#{URI.decode($1)}\""}
228
+ output = d.to_html.gsub(/href="([^"]*)"/) { |m| "href=\"#{URI.decode($1)}\"" }
220
229
  new_body.push(output)
221
230
  end
222
231
  body.close if body.respond_to?(:close)
@@ -229,7 +238,7 @@ module Wovnrb
229
238
  langs = Set.new
230
239
  (values['text_vals'] || {}).merge(values['img_vals'] || {}).each do |key, index|
231
240
  index.each do |l, val|
232
- langs.add(l)
241
+ langs.add(l)
233
242
  end
234
243
  end
235
244
  langs
@@ -1,3 +1,3 @@
1
1
  module Wovnrb
2
- VERSION = "0.1.71"
2
+ VERSION = "0.1.72"
3
3
  end
@@ -19,17 +19,14 @@ class WovnrbTest < Minitest::Test
19
19
  # end
20
20
 
21
21
 
22
-
23
22
  # def test_switch_lang(body, values, url, lang=STORE.settings['default_lang'], headers)
24
23
  # end
25
24
 
26
25
 
27
-
28
26
  # def test_get_langs(values)
29
27
  # end
30
28
 
31
29
 
32
-
33
30
  def test_add_lang_code
34
31
  i = Wovnrb::Interceptor.new(get_app)
35
32
  h = Wovnrb::Headers.new(get_env('url' => 'http://favy.tips'), get_settings('url_pattern' => 'subdomain', 'url_pattern_reg' => '^(?<lang>[^.]+).'))
@@ -71,150 +68,201 @@ class WovnrbTest < Minitest::Test
71
68
  h = Wovnrb::Headers.new(get_env('url' => 'http://favy.tips'), get_settings('url_pattern' => 'subdomain', 'url_pattern_reg' => '^(?<lang>[^.]+).'))
72
69
  assert_equal("http://www.facebook.com/sharer.php?u=http://favy.tips/topics/50&amp;amp;t=Gourmet Tofu World: Vegetarian-Friendly Japanese Food is Here!", i.add_lang_code("http://www.facebook.com/sharer.php?u=http://favy.tips/topics/50&amp;amp;t=Gourmet Tofu World: Vegetarian-Friendly Japanese Food is Here!", 'subdomain', 'zh-cht', h))
73
70
  end
74
- #//url
75
- #/path
76
- #path
77
- #../path
78
- #path.html
79
- #/path.html
80
- #//url/path.php
81
- #http://url/path.php
82
- #./path
83
-
84
- # def test_add_lang_code_nil_href
85
- # i = Wovnrb::Interceptor.new(get_app)
86
- # assert_equal(nil, i.add_lang_code(nil,'path', 'en', nil))
87
- # end
88
- # def test_add_lang_code_absolute_different_host
89
- # i = Wovnrb::Interceptor.new(get_app)
90
- # headers = stub
91
- # headers.expects(:host).returns('google.com')
92
- # assert_equal('http://yahoo.co.jp', i.add_lang_code('http://yahoo.co.jp', 'path', 'fr', headers))
93
- # end
94
- #
95
- # def test_add_lang_code_absolute_subdomain_no_subdomain
96
- # i = Wovnrb::Interceptor.new(get_app)
97
- # headers = stub
98
- # headers.expects(:host).returns('google.com')
99
- # assert_equal('http://fr.google.com', i.add_lang_code('http://google.com', 'subdomain', 'fr', headers))
100
- # end
101
- #
102
- # def test_add_lang_code_absolute_subdomain_with_subdomain
103
- # i = Wovnrb::Interceptor.new(get_app)
104
- # headers = stub
105
- # headers.expects(:host).returns('home.google.com')
106
- # assert_equal('http://fr.home.google.com', i.add_lang_code('http://home.google.com', 'subdomain', 'fr', headers))
107
- # end
108
- #
109
- # def test_add_lang_code_absolute_query_no_query
110
- # i = Wovnrb::Interceptor.new(get_app)
111
- # headers = stub
112
- # headers.expects(:host).returns('google.com')
113
- # assert_equal('http://google.com?wovn=fr', i.add_lang_code('http://google.com', 'query', 'fr', headers))
114
- # end
115
- #
116
- # def test_add_lang_code_absolute_query_with_query
117
- # i = Wovnrb::Interceptor.new(get_app)
118
- # headers = stub
119
- # headers.expects(:host).returns('google.com')
120
- # assert_equal('http://google.com?hey=yo&wovn=fr', i.add_lang_code('http://google.com?hey=yo', 'query', 'fr', headers))
121
- # end
122
- #
123
- # def test_add_lang_code_absolute_path_no_pathname
124
- # i = Wovnrb::Interceptor.new(get_app)
125
- # headers = stub
126
- # headers.expects(:host).returns('google.com')
127
- # assert_equal('http://google.com/fr/', i.add_lang_code('http://google.com', 'path', 'fr', headers))
128
- # end
129
- #
130
- # def test_add_lang_code_absolute_path_with_pathname
131
- # i = Wovnrb::Interceptor.new(get_app)
132
- # headers = stub
133
- # headers.expects(:host).returns('google.com')
134
- # assert_equal('http://google.com/fr/index.html', i.add_lang_code('http://google.com/index.html', 'path', 'fr', headers))
135
- # end
136
- #
137
- # def test_add_lang_code_absolute_path_with_long_pathname
138
- # i = Wovnrb::Interceptor.new(get_app)
139
- # headers = stub
140
- # headers.expects(:host).returns('google.com')
141
- # assert_equal('http://google.com/fr/hello/long/path/index.html', i.add_lang_code('http://google.com/hello/long/path/index.html', 'path', 'fr', headers))
142
- # end
143
- #
144
- # def test_add_lang_code_relative_subdomain_leading_slash
145
- # i = Wovnrb::Interceptor.new(get_app)
146
- # headers = stub
147
- # headers.expects(:protocol).returns('http')
148
- # headers.expects(:host).returns('google.com')
149
- # assert_equal('http://fr.google.com/', i.add_lang_code('/', 'subdomain', 'fr', headers))
150
- # end
151
- #
152
- # def test_add_lang_code_relative_subdomain_leading_slash_filename
153
- # i = Wovnrb::Interceptor.new(get_app)
154
- # headers = stub
155
- # headers.expects(:protocol).returns('http')
156
- # headers.expects(:host).returns('google.com')
157
- # assert_equal('http://fr.google.com/index.html', i.add_lang_code('/index.html', 'subdomain', 'fr', headers))
158
- # end
159
- #
160
- # def test_add_lang_code_relative_subdomain_no_leading_slash_filename
161
- # i = Wovnrb::Interceptor.new(get_app)
162
- # headers = stub
163
- # headers.expects(:protocol).returns('http')
164
- # headers.expects(:host).returns('google.com')
165
- # headers.expects(:pathname).returns('/')
166
- # assert_equal('http://fr.google.com/index.html', i.add_lang_code('index.html', 'subdomain', 'fr', headers))
167
- # end
168
- #
169
- # def test_add_lang_code_relative_subdomain_dot_filename
170
- # i = Wovnrb::Interceptor.new(get_app)
171
- # headers = stub
172
- # headers.expects(:protocol).returns('http')
173
- # headers.expects(:host).returns('google.com')
174
- # headers.expects(:pathname).returns('/')
175
- # assert_equal('http://fr.google.com/./index.html', i.add_lang_code('./index.html', 'subdomain', 'fr', headers))
176
- # end
177
- #
178
- # def test_add_lang_code_relative_subdomain_two_dots_filename_long_pathname
179
- # i = Wovnrb::Interceptor.new(get_app)
180
- # headers = stub
181
- # headers.expects(:protocol).returns('http')
182
- # headers.expects(:host).returns('google.com')
183
- # headers.expects(:pathname).returns('/home/hey/index.html')
184
- # assert_equal('http://fr.google.com/home/hey/../index.html', i.add_lang_code('../index.html', 'subdomain', 'fr', headers))
185
- # end
186
- #
187
- # def test_add_lang_code_relative_query_with_no_query
188
- # i = Wovnrb::Interceptor.new(get_app)
189
- # headers = stub
190
- # assert_equal('/index.html?wovn=fr', i.add_lang_code('/index.html', 'query', 'fr', headers))
191
- # end
192
- #
193
- # def test_add_lang_code_relative_query_with_query
194
- # i = Wovnrb::Interceptor.new(get_app)
195
- # headers = stub
196
- # assert_equal('/index.html?hey=yo&wovn=fr', i.add_lang_code('/index.html?hey=yo', 'query', 'fr', headers))
197
- # end
198
- #
199
- # def test_add_lang_code_relative_path_with_leading_slash
200
- # i = Wovnrb::Interceptor.new(get_app)
201
- # headers = stub
202
- # assert_equal('/fr/index.html', i.add_lang_code('/index.html', 'path', 'fr', headers))
203
- # end
204
- #
205
- # def test_add_lang_code_relative_path_without_leading_slash_different_pathname
206
- # i = Wovnrb::Interceptor.new(get_app)
207
- # headers = stub
208
- # headers.expects(:pathname).returns('/hello/tab.html')
209
- # assert_equal('/fr/hello/index.html', i.add_lang_code('index.html', 'path', 'fr', headers))
210
- # end
211
- #
212
- # def test_add_lang_code_relative_path_without_leading_slash_different_pathname2
213
- # i = Wovnrb::Interceptor.new(get_app)
214
- # headers = stub
215
- # headers.expects(:pathname).returns('/hello/tab.html')
216
- # assert_equal('/fr/hello/hey/index.html', i.add_lang_code('hey/index.html', 'path', 'fr', headers))
217
- # end
71
+
72
+ def test_add_lang_code_path_only_with_slash
73
+ i = Wovnrb::Interceptor.new(get_app)
74
+ h = Wovnrb::Headers.new(get_env('url' => 'http://favy.tips'), get_settings('url_pattern' => 'subdomain', 'url_pattern_reg' => '^(?<lang>[^.]+).'))
75
+ assert_equal("http://zh-cht.favy.tips/topics/31", i.add_lang_code("/topics/31", 'subdomain', 'zh-cht', h))
76
+ end
77
+
78
+ def test_add_lang_code_path_only_no_slash
79
+ i = Wovnrb::Interceptor.new(get_app)
80
+ h = Wovnrb::Headers.new(get_env('url' => 'http://favy.tips'), get_settings('url_pattern' => 'subdomain', 'url_pattern_reg' => '^(?<lang>[^.]+).'))
81
+ assert_equal("http://zh-cht.favy.tips/topics/31", i.add_lang_code("topics/31", 'subdomain', 'zh-cht', h))
82
+ end
83
+
84
+ def test_add_lang_code_path_explicit_page_no_slash
85
+ i = Wovnrb::Interceptor.new(get_app)
86
+ h = Wovnrb::Headers.new(get_env('url' => 'http://favy.tips'), get_settings('url_pattern' => 'subdomain', 'url_pattern_reg' => '^(?<lang>[^.]+).'))
87
+ assert_equal("http://zh-cht.favy.tips/topics/31.html", i.add_lang_code("topics/31.html", 'subdomain', 'zh-cht', h))
88
+ end
89
+
90
+ def test_add_lang_code_path_explicit_page_with_slash
91
+ i = Wovnrb::Interceptor.new(get_app)
92
+ h = Wovnrb::Headers.new(get_env('url' => 'http://favy.tips'), get_settings('url_pattern' => 'subdomain', 'url_pattern_reg' => '^(?<lang>[^.]+).'))
93
+ assert_equal("http://zh-cht.favy.tips/topics/31.html", i.add_lang_code("/topics/31.html", 'subdomain', 'zh-cht', h))
94
+ end
95
+
96
+ def test_add_lang_code_no_protocol_with_path_explicit_page
97
+ i = Wovnrb::Interceptor.new(get_app)
98
+ h = Wovnrb::Headers.new(get_env('url' => 'http://favy.tips'), get_settings('url_pattern' => 'subdomain', 'url_pattern_reg' => '^(?<lang>[^.]+).'))
99
+ assert_equal("//www.google.com/topics/31.php", i.add_lang_code("//www.google.com/topics/31.php", 'subdomain', 'zh-cht', h))
100
+ end
101
+
102
+ def test_add_lang_code_protocol_with_path_explicit_page
103
+ i = Wovnrb::Interceptor.new(get_app)
104
+ h = Wovnrb::Headers.new(get_env('url' => 'http://favy.tips'), get_settings('url_pattern' => 'subdomain', 'url_pattern_reg' => '^(?<lang>[^.]+).'))
105
+ assert_equal("http://www.google.com/topics/31.php", i.add_lang_code("http://www.google.com/topics/31.php", 'subdomain', 'zh-cht', h))
106
+ end
107
+
108
+ def test_add_lang_code_relative_path_double_period
109
+ i = Wovnrb::Interceptor.new(get_app)
110
+ h = Wovnrb::Headers.new(get_env('url' => 'http://favy.tips'), get_settings('url_pattern' => 'subdomain', 'url_pattern_reg' => '^(?<lang>[^.]+).'))
111
+ assert_equal("http://zh-cht.favy.tips/topics/31", i.add_lang_code("../topics/31", 'subdomain', 'zh-cht', h))
112
+ end
113
+
114
+ def test_add_lang_code_relative_path_single_period
115
+ i = Wovnrb::Interceptor.new(get_app)
116
+ h = Wovnrb::Headers.new(get_env('url' => 'http://favy.tips'), get_settings('url_pattern' => 'subdomain', 'url_pattern_reg' => '^(?<lang>[^.]+).'))
117
+ assert_equal("http://zh-cht.favy.tips/topics/31", i.add_lang_code("./topics/31", 'subdomain', 'zh-cht', h))
118
+ end
119
+
120
+ def test_add_lang_code_empty_href
121
+ i = Wovnrb::Interceptor.new(get_app)
122
+ h = Wovnrb::Headers.new(get_env('url' => 'http://favy.tips'), get_settings('url_pattern' => 'subdomain', 'url_pattern_reg' => '^(?<lang>[^.]+).'))
123
+ assert_equal("", i.add_lang_code("", 'subdomain', 'zh-cht', h))
124
+ end
125
+
126
+ def test_add_lang_code_hash_href
127
+ i = Wovnrb::Interceptor.new(get_app)
128
+ h = Wovnrb::Headers.new(get_env('url' => 'http://favy.tips'), get_settings('url_pattern' => 'subdomain', 'url_pattern_reg' => '^(?<lang>[^.]+).'))
129
+ assert_equal("#", i.add_lang_code("#", 'subdomain', 'zh-cht', h))
130
+ end
131
+
132
+ # def test_add_lang_code_nil_href
133
+ # i = Wovnrb::Interceptor.new(get_app)
134
+ # assert_equal(nil, i.add_lang_code(nil,'path', 'en', nil))
135
+ # end
136
+ # def test_add_lang_code_absolute_different_host
137
+ # i = Wovnrb::Interceptor.new(get_app)
138
+ # headers = stub
139
+ # headers.expects(:host).returns('google.com')
140
+ # assert_equal('http://yahoo.co.jp', i.add_lang_code('http://yahoo.co.jp', 'path', 'fr', headers))
141
+ # end
142
+ #
143
+ # def test_add_lang_code_absolute_subdomain_no_subdomain
144
+ # i = Wovnrb::Interceptor.new(get_app)
145
+ # headers = stub
146
+ # headers.expects(:host).returns('google.com')
147
+ # assert_equal('http://fr.google.com', i.add_lang_code('http://google.com', 'subdomain', 'fr', headers))
148
+ # end
149
+ #
150
+ # def test_add_lang_code_absolute_subdomain_with_subdomain
151
+ # i = Wovnrb::Interceptor.new(get_app)
152
+ # headers = stub
153
+ # headers.expects(:host).returns('home.google.com')
154
+ # assert_equal('http://fr.home.google.com', i.add_lang_code('http://home.google.com', 'subdomain', 'fr', headers))
155
+ # end
156
+ #
157
+ # def test_add_lang_code_absolute_query_no_query
158
+ # i = Wovnrb::Interceptor.new(get_app)
159
+ # headers = stub
160
+ # headers.expects(:host).returns('google.com')
161
+ # assert_equal('http://google.com?wovn=fr', i.add_lang_code('http://google.com', 'query', 'fr', headers))
162
+ # end
163
+ #
164
+ # def test_add_lang_code_absolute_query_with_query
165
+ # i = Wovnrb::Interceptor.new(get_app)
166
+ # headers = stub
167
+ # headers.expects(:host).returns('google.com')
168
+ # assert_equal('http://google.com?hey=yo&wovn=fr', i.add_lang_code('http://google.com?hey=yo', 'query', 'fr', headers))
169
+ # end
170
+ #
171
+ # def test_add_lang_code_absolute_path_no_pathname
172
+ # i = Wovnrb::Interceptor.new(get_app)
173
+ # headers = stub
174
+ # headers.expects(:host).returns('google.com')
175
+ # assert_equal('http://google.com/fr/', i.add_lang_code('http://google.com', 'path', 'fr', headers))
176
+ # end
177
+ #
178
+ # def test_add_lang_code_absolute_path_with_pathname
179
+ # i = Wovnrb::Interceptor.new(get_app)
180
+ # headers = stub
181
+ # headers.expects(:host).returns('google.com')
182
+ # assert_equal('http://google.com/fr/index.html', i.add_lang_code('http://google.com/index.html', 'path', 'fr', headers))
183
+ # end
184
+ #
185
+ # def test_add_lang_code_absolute_path_with_long_pathname
186
+ # i = Wovnrb::Interceptor.new(get_app)
187
+ # headers = stub
188
+ # headers.expects(:host).returns('google.com')
189
+ # assert_equal('http://google.com/fr/hello/long/path/index.html', i.add_lang_code('http://google.com/hello/long/path/index.html', 'path', 'fr', headers))
190
+ # end
191
+ #
192
+ # def test_add_lang_code_relative_subdomain_leading_slash
193
+ # i = Wovnrb::Interceptor.new(get_app)
194
+ # headers = stub
195
+ # headers.expects(:protocol).returns('http')
196
+ # headers.expects(:host).returns('google.com')
197
+ # assert_equal('http://fr.google.com/', i.add_lang_code('/', 'subdomain', 'fr', headers))
198
+ # end
199
+ #
200
+ # def test_add_lang_code_relative_subdomain_leading_slash_filename
201
+ # i = Wovnrb::Interceptor.new(get_app)
202
+ # headers = stub
203
+ # headers.expects(:protocol).returns('http')
204
+ # headers.expects(:host).returns('google.com')
205
+ # assert_equal('http://fr.google.com/index.html', i.add_lang_code('/index.html', 'subdomain', 'fr', headers))
206
+ # end
207
+ #
208
+ # def test_add_lang_code_relative_subdomain_no_leading_slash_filename
209
+ # i = Wovnrb::Interceptor.new(get_app)
210
+ # headers = stub
211
+ # headers.expects(:protocol).returns('http')
212
+ # headers.expects(:host).returns('google.com')
213
+ # headers.expects(:pathname).returns('/')
214
+ # assert_equal('http://fr.google.com/index.html', i.add_lang_code('index.html', 'subdomain', 'fr', headers))
215
+ # end
216
+ #
217
+ # def test_add_lang_code_relative_subdomain_dot_filename
218
+ # i = Wovnrb::Interceptor.new(get_app)
219
+ # headers = stub
220
+ # headers.expects(:protocol).returns('http')
221
+ # headers.expects(:host).returns('google.com')
222
+ # headers.expects(:pathname).returns('/')
223
+ # assert_equal('http://fr.google.com/./index.html', i.add_lang_code('./index.html', 'subdomain', 'fr', headers))
224
+ # end
225
+ #
226
+ # def test_add_lang_code_relative_subdomain_two_dots_filename_long_pathname
227
+ # i = Wovnrb::Interceptor.new(get_app)
228
+ # headers = stub
229
+ # headers.expects(:protocol).returns('http')
230
+ # headers.expects(:host).returns('google.com')
231
+ # headers.expects(:pathname).returns('/home/hey/index.html')
232
+ # assert_equal('http://fr.google.com/home/hey/../index.html', i.add_lang_code('../index.html', 'subdomain', 'fr', headers))
233
+ # end
234
+ #
235
+ # def test_add_lang_code_relative_query_with_no_query
236
+ # i = Wovnrb::Interceptor.new(get_app)
237
+ # headers = stub
238
+ # assert_equal('/index.html?wovn=fr', i.add_lang_code('/index.html', 'query', 'fr', headers))
239
+ # end
240
+ #
241
+ # def test_add_lang_code_relative_query_with_query
242
+ # i = Wovnrb::Interceptor.new(get_app)
243
+ # headers = stub
244
+ # assert_equal('/index.html?hey=yo&wovn=fr', i.add_lang_code('/index.html?hey=yo', 'query', 'fr', headers))
245
+ # end
246
+ #
247
+ # def test_add_lang_code_relative_path_with_leading_slash
248
+ # i = Wovnrb::Interceptor.new(get_app)
249
+ # headers = stub
250
+ # assert_equal('/fr/index.html', i.add_lang_code('/index.html', 'path', 'fr', headers))
251
+ # end
252
+ #
253
+ # def test_add_lang_code_relative_path_without_leading_slash_different_pathname
254
+ # i = Wovnrb::Interceptor.new(get_app)
255
+ # headers = stub
256
+ # headers.expects(:pathname).returns('/hello/tab.html')
257
+ # assert_equal('/fr/hello/index.html', i.add_lang_code('index.html', 'path', 'fr', headers))
258
+ # end
259
+ #
260
+ # def test_add_lang_code_relative_path_without_leading_slash_different_pathname2
261
+ # i = Wovnrb::Interceptor.new(get_app)
262
+ # headers = stub
263
+ # headers.expects(:pathname).returns('/hello/tab.html')
264
+ # assert_equal('/fr/hello/hey/index.html', i.add_lang_code('hey/index.html', 'path', 'fr', headers))
265
+ # end
218
266
 
219
267
  def get_settings(options={})
220
268
  settings = {}
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: wovnrb
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.71
4
+ version: 0.1.72
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jeff Sandford
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2015-11-11 00:00:00.000000000 Z
12
+ date: 2015-11-12 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: nokogumbo
@@ -251,7 +251,6 @@ files:
251
251
  - test/services/url_test.rb
252
252
  - test/test_helper.rb
253
253
  - values/values
254
- - wovnrb-0.1.70.gem
255
254
  - wovnrb.gemspec
256
255
  homepage: ''
257
256
  licenses:
data/wovnrb-0.1.70.gem DELETED
Binary file