Feature: link_to helper
Scenario: link_to produces relative links
Given a fixture app "indexable-app"
And an empty file named "config.rb"
And a file named "source/link_to.html.erb" with:
"""
absolute: <%= link_to "Needs Index", "/needs_index.html", :relative => true %>
relative: <%= link_to "Relative", "needs_index.html", :relative => true %>
"""
And a file named "source/link_to/sub.html.erb" with:
"""
absolute: <%= link_to "Needs Index", "/needs_index.html", :relative => true %>
relative: <%= link_to "Relative", "../needs_index.html", :relative => true %>
"""
And the Server is running at "indexable-app"
When I go to "/link_to.html"
Then I should see 'absolute: Needs Index'
Then I should see 'relative: Relative'
When I go to "/link_to/sub.html"
Then I should see 'absolute: Needs Index'
Then I should see 'relative: Relative'
Scenario: link_to produces relative links when :relative_links is set to true
Given a fixture app "indexable-app"
And a file named "config.rb" with:
"""
set :relative_links, true
"""
And a file named "source/link_to.html.erb" with:
"""
absolute: <%= link_to "Needs Index", "/needs_index.html" %>
relative: <%= link_to "Relative", "needs_index.html", :relative => false %>
unknown: <%= link_to "Unknown", "foo.html" %>
"""
And a file named "source/link_to/sub.html.erb" with:
"""
absolute: <%= link_to "Needs Index", "/needs_index.html" %>
relative: <%= link_to "Relative", "../needs_index.html" %>
"""
And the Server is running at "indexable-app"
When I go to "/link_to.html"
Then I should see 'absolute: Needs Index'
Then I should see 'relative: Relative'
Then I should see 'unknown: Unknown'
When I go to "/link_to/sub.html"
Then I should see 'absolute: Needs Index'
Then I should see 'relative: Relative'
Scenario: link_to knows about directory indexes
Given a fixture app "indexable-app"
And a file named "source/link_to.html.erb" with:
"""
absolute: <%= link_to "Needs Index", "/needs_index.html", :relative => true %>
relative: <%= link_to "Relative", "needs_index.html", :relative => true %>
"""
And a file named "source/link_to/sub.html.erb" with:
"""
absolute: <%= link_to "Needs Index", "/needs_index.html", :relative => true %>
relative: <%= link_to "Relative", "../needs_index.html", :relative => true %>
"""
And the Server is running at "indexable-app"
When I go to "/link_to/"
Then I should see 'absolute: Needs Index'
Then I should see 'relative: Relative'
When I go to "/link_to/sub/"
Then I should see 'absolute: Needs Index'
Then I should see 'relative: Relative'
Scenario: link_to can take a Resource
Given a fixture app "indexable-app"
And a file named "source/link_to.html.erb" with:
"""
<%= link_to "Needs Index", sitemap.find_resource_by_path("/needs_index.html") %>
"""
And the Server is running at "indexable-app"
When I go to "/link_to/"
Then I should see 'Needs Index'
Scenario: Setting http_prefix
Given a fixture app "indexable-app"
And a file named "config.rb" with:
"""
set :http_prefix, "/foo"
"""
And a file named "source/link_to.html.erb" with:
"""
<%= link_to "Needs Index", "/needs_index.html" %>
"""
And the Server is running at "indexable-app"
When I go to "/link_to.html"
Then I should see 'Needs Index'
Scenario: link_to preserves query string and anchor and isn't messed up by them
Given a fixture app "indexable-app"
And a file named "source/link_to.html.erb" with:
"""
<%= link_to "Needs Index Anchor", "/needs_index.html#foo" %>
<%= link_to "Needs Index Query", "/needs_index.html?foo" %>
<%= link_to "Needs Index Query and Anchor", "/needs_index.html?foo#foo" %>
"""
And the Server is running at "indexable-app"
When I go to "/link_to/"
Then I should see 'Needs Index Anchor'
Then I should see 'Needs Index Query'
Then I should see 'Needs Index Query and Anchor'
Scenario: link_to accepts a :query option that appends a query string
Given a fixture app "indexable-app"
And a file named "source/link_to.html.erb" with:
"""
<%= link_to "Needs Index String", "/needs_index.html", :query => "foo" %>
<%= link_to "Needs Index Hash", "/needs_index.html", :query => { :foo => :bar } %>
"""
And the Server is running at "indexable-app"
When I go to "/link_to/"
Then I should see 'Needs Index String'
Then I should see 'Needs Index Hash'