History

Make :skip_links option apply to pages instead of individual links

Thibaut committed 12 years ago

Commit 47eb7ee1 parent 6c8eea17 files · +59 −43Browse files

Showing the changes to test (1 of 7 files). Show all

Unified · Split

test/lib/docs/filters/core/internal_urls_test.rb+49−33
@@ -5,16 +5,15 @@ class InternalUrlsFilterTest < MiniTest::Spec · 4 unmodified lines
5 include FilterTestHelper5 include FilterTestHelper
6 self.filter_class = Docs::InternalUrlsFilter6 self.filter_class = Docs::InternalUrlsFilter
7 7
8 describe ":internal_urls" do8 before do
9 before do9 context[:base_url] = context[:root_url] = context[:url] = 'http://example.com/dir'
10 context[:base_url] = context[:root_url] = 'http://example.com/dir'10 end
11 context[:url] = 'http://example.com/dir'
12 end
13 11
14 let :internal_urls do12 let :internal_urls do
15 filter_result[:internal_urls]13 filter_result[:internal_urls]
16 end14 end
17 15
16 describe ":internal_urls" do
18 it "is an array" do17 it "is an array" do
19 assert_instance_of Array, internal_urls18 assert_instance_of Array, internal_urls
20 end19 end
@@ -135,31 +134,6 @@ class InternalUrlsFilterTest < MiniTest::Spec · 114 unmodified lines
135 end134 end
136 end135 end
137 136
138 context "when context[:skip_links] is a block" do
139 let :block do
140 context[:skip_links] = Proc.new {}
141 end
142
143 it "passes all links to the block" do
144 @body = link_to 'http://example.com'
145 context[:skip_links] = ->(arg) { @arg = arg }
146 internal_urls
147 assert_equal @body, @arg.to_s
148 end
149
150 it "doesn't include urls from links where the block returns true" do
151 @body = link_to 'http://example.com/dir/path'
152 context[:skip_links] = ->(_) { true }
153 assert_empty internal_urls
154 end
155
156 it "includes urls from links where the block returns false" do
157 @body = link_to 'http://example.com/dir/path'
158 context[:skip_links] = ->(_) { false }
159 assert_equal 1, internal_urls.length
160 end
161 end
162
163 context "when context[:follow_links] is a block" do137 context "when context[:follow_links] is a block" do
164 before do138 before do
165 @body = link_to context[:url]139 @body = link_to context[:url]
@@ -305,4 +279,46 @@ class InternalUrlsFilterTest < MiniTest::Spec · 139 unmodified lines
305 end279 end
306 end280 end
307 end281 end
282
283 context "context[:skip_links]" do
284 before do
285 @body = link_to context[:url]
286 end
287
288 context "when it is a block" do
289 it "calls the block with the filter instance" do
290 context[:skip_links] = ->(arg) { @arg = arg; nil }
291 filter.call
292 assert_equal filter, @arg
293 end
294
295 context "and the block returns true" do
296 before do
297 context[:skip_links] = ->(_) { true }
298 end
299
300 it "doesn't set :internal_urls" do
301 refute internal_urls
302 end
303
304 it "doesn't replace urls" do
305 assert_equal @body, filter_output_string
306 end
307 end
308
309 context "and the block returns false" do
310 before do
311 context[:skip_links] = ->(_) { false }
312 end
313
314 it "set :internal_urls" do
315 assert internal_urls
316 end
317
318 it "replaces urls" do
319 refute_equal @body, filter_output_string
320 end
321 end
322 end
323 end
308end324end