Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
tree: 722ef32dba
Fetching contributors…

Cannot retrieve contributors at this time

182 lines (146 sloc) 7.638 kB
require 'spec_helper'
describe "SubdomainFu URL Writing" do
before do
SubdomainFu.config.tld_size = 1
SubdomainFu.config.mirrors = SubdomainFu::Configuration.defaults[:mirrors].dup
SubdomainFu.config.override_only_path = true
SubdomainFu.config.preferred_mirror = nil
default_url_options[:host] = "example.com"
end
describe "#url_for" do
it "should be able to add a subdomain" do
url_for(:controller => "something", :action => "other", :subdomain => "awesome").should == "http://awesome.example.com/something/other"
end
it "should be able to remove a subdomain" do
url_for(:controller => "something", :action => "other", :subdomain => false, :host => "awesome.example.com").should == "http://example.com/something/other"
end
it "should not change a mirrored subdomain" do
url_for(:controller => "something", :action => "other", :subdomain => false, :host => "www.example.com").should == "http://www.example.com/something/other"
end
it "should should not force the full url with :only_path if override_only_path is false (default)" do
SubdomainFu.config.override_only_path = false
url_for(:controller => "something", :action => "other", :subdomain => "awesome", :only_path => true).should == "/something/other"
end
it "should should force the full url, even with :only_path if override_only_path is true" do
SubdomainFu.config.override_only_path = true
url_for(:controller => "something", :action => "other", :subdomain => "awesome", :only_path => true).should == "http://awesome.example.com/something/other"
end
end
describe "Standard Routes" do
it "should be able to add a subdomain" do
needs_subdomain_url(:subdomain => "awesome").should == "http://awesome.example.com/needs_subdomain"
end
it "should be able to remove a subdomain" do
default_url_options[:host] = "awesome.example.com"
needs_subdomain_url(:subdomain => false).should == "http://example.com/needs_subdomain"
end
it "should not change a mirrored subdomain" do
default_url_options[:host] = "www.example.com"
needs_subdomain_url(:subdomain => false).should == "http://www.example.com/needs_subdomain"
end
it "should should not force the full url with _path" do
SubdomainFu.config.override_only_path = false
needs_subdomain_path(:subdomain => "awesome").should == "/needs_subdomain"
end
it "should not force the full url if it's the same as the current subdomain" do
default_url_options[:host] = "awesome.example.com"
needs_subdomain_path(:subdomain => "awesome").should == "/needs_subdomain"
end
it "should not force the full url even if it's a different subdomain" do
SubdomainFu.config.override_only_path = false
default_url_options[:host] = "awesome.example.com"
needs_subdomain_path(:subdomain => "crazy").should == "/needs_subdomain"
end
it "should not force the full url if the current subdomain is nil and so is the target" do
needs_subdomain_path(:subdomain => nil).should == "/needs_subdomain"
end
it "should not force the full url if no :subdomain option is given" do
needs_subdomain_path.should == "/needs_subdomain"
default_url_options[:host] = "awesome.example.com"
needs_subdomain_path.should == "/needs_subdomain"
end
describe "With override_only_path set to true" do
before(:each) do
SubdomainFu.config.override_only_path = true
end
it "should should force the full url, even with _path" do
needs_subdomain_path(:subdomain => "awesome").should == needs_subdomain_url(:subdomain => "awesome")
end
it "should not force the full url if it's the same as the current subdomain" do
default_url_options[:host] = "awesome.example.com"
needs_subdomain_path(:subdomain => "awesome").should == "/needs_subdomain"
end
it "should force the full url if it's a different subdomain" do
default_url_options[:host] = "awesome.example.com"
needs_subdomain_path(:subdomain => "crazy").should == "http://crazy.example.com/needs_subdomain"
end
it "should not force the full url if the current subdomain is nil and so is the target" do
needs_subdomain_path(:subdomain => nil).should == "/needs_subdomain"
end
it "should not force the full url if no :subdomain option is given" do
needs_subdomain_path.should == "/needs_subdomain"
default_url_options[:host] = "awesome.example.com"
needs_subdomain_path.should == "/needs_subdomain"
end
end
end
describe "Resourced Routes" do
it "should be able to add a subdomain" do
foo_url(:id => "something", :subdomain => "awesome").should == "http://awesome.example.com/foos/something"
end
it "should be able to remove a subdomain" do
default_url_options[:host] = "awesome.example.com"
foo_url(:id => "something", :subdomain => false).should == "http://example.com/foos/something"
end
it "should work when passed in a paramable object" do
foo_url(Paramed.new("something"), :subdomain => "awesome").should == "http://awesome.example.com/foos/something"
end
it "should work when passed in a paramable object" do
foo_url(Paramed.new("something"), :subdomain => "awesome").should == "http://awesome.example.com/foos/something"
end
it "should work when passed in a paramable object and no subdomain to a _path" do
default_url_options[:host] = "awesome.example.com"
foo_path(Paramed.new("something")).should == "/foos/something"
end
it "should work when passed in a paramable object and no subdomain to a _url" do
default_url_options[:host] = "awesome.example.com"
foo_url(Paramed.new("something")).should == "http://awesome.example.com/foos/something"
end
it "should work on nested resource collections" do
foo_bars_url(Paramed.new("something"), :subdomain => "awesome").should == "http://awesome.example.com/foos/something/bars"
end
it "should work on nested resource members" do
foo_bar_url(Paramed.new("something"),Paramed.new("else"), :subdomain => "awesome").should == "http://awesome.example.com/foos/something/bars/else"
end
end
describe "Preferred Mirror" do
before do
SubdomainFu.config.preferred_mirror = "www"
SubdomainFu.config.override_only_path = true
end
it "should switch to the preferred mirror instead of no subdomain" do
default_url_options[:host] = "awesome.example.com"
needs_subdomain_url(:subdomain => false).should == "http://www.example.com/needs_subdomain"
end
it "should switch to the preferred mirror automatically" do
default_url_options[:host] = "example.com"
needs_subdomain_url.should == "http://www.example.com/needs_subdomain"
end
it "should work when passed in a paramable object and no subdomain to a _url" do
default_url_options[:host] = "awesome.example.com"
foo_url(Paramed.new("something")).should == "http://awesome.example.com/foos/something"
end
it "should force a switch to no subdomain on a mirror if preferred_mirror is false" do
SubdomainFu.config.preferred_mirror = false
default_url_options[:host] = "www.example.com"
needs_subdomain_url(:subdomain => false).should == "http://example.com/needs_subdomain"
end
after do
SubdomainFu.config.preferred_mirror = nil
end
end
after do
SubdomainFu.config.tld_size = 0
default_url_options[:host] = "localhost"
end
end
Jump to Line
Something went wrong with that request. Please try again.