Showing the changes to test (1 of 7 files). Show all
Unified · Split
| @@ -5,16 +5,15 @@ class InternalUrlsFilterTest < MiniTest::Spec · 4 unmodified lines | ||
| 5 | 5 | include FilterTestHelper |
| 6 | 6 | self.filter_class = Docs::InternalUrlsFilter |
| 7 | 7 | |
| 8 | − describe ":internal_urls" do | |
| 9 | − before do | |
| 10 | − context[:base_url] = context[:root_url] = 'http://example.com/dir' | |
| 11 | − context[:url] = 'http://example.com/dir' | |
| 12 | − end | |
| 8 | + before do | |
| 9 | + context[:base_url] = context[:root_url] = context[:url] = 'http://example.com/dir' | |
| 10 | + end | |
| 13 | 11 | |
| 14 | − let :internal_urls do | |
| 15 | − filter_result[:internal_urls] | |
| 16 | − end | |
| 12 | + let :internal_urls do | |
| 13 | + filter_result[:internal_urls] | |
| 14 | + end | |
| 17 | 15 | |
| 16 | + describe ":internal_urls" do | |
| 18 | 17 | it "is an array" do |
| 19 | 18 | assert_instance_of Array, internal_urls |
| 20 | 19 | end |
| @@ -135,31 +134,6 @@ class InternalUrlsFilterTest < MiniTest::Spec · 114 unmodified lines | ||
| 135 | 134 | end |
| 136 | 135 | 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 | 137 | context "when context[:follow_links] is a block" do |
| 164 | 138 | before do |
| 165 | 139 | @body = link_to context[:url] |
| @@ -305,4 +279,46 @@ class InternalUrlsFilterTest < MiniTest::Spec · 139 unmodified lines | ||
| 305 | 279 | end |
| 306 | 280 | end |
| 307 | 281 | 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 | |
| 308 | 324 | end |