spec and document the 'url' setting
authorLunar <lunar@anargeek.net>
Fri, 24 Feb 2012 18:55:03 +0000 (19:55 +0100)
committerLunar <lunar@anargeek.net>
Fri, 24 Feb 2012 18:57:22 +0000 (19:57 +0100)
lib/coquelicot/app.rb
spec/coquelicot_spec.rb

index 91a2b97..859a936 100644 (file)
@@ -48,6 +48,7 @@ module Coquelicot
     set :random_pass_length, 16
     set :about_text, ''
     set :additional_css, ''
     set :random_pass_length, 16
     set :about_text, ''
     set :additional_css, ''
+    set :url, '' # compute instance URL using request data
     set :authentication_method, :name => :simplepass,
                                 :upload_password => 'a94a8fe5ccb19ba61c4c0873d391e987982fbbd3'
 
     set :authentication_method, :name => :simplepass,
                                 :upload_password => 'a94a8fe5ccb19ba61c4c0873d391e987982fbbd3'
 
@@ -213,9 +214,8 @@ module Coquelicot
 
     helpers do
       def base_href
 
     helpers do
       def base_href
-        if settings.respond_to?(:url)
-          return settings.url
-        end
+        return settings.url unless settings.url.empty?
+
         url = request.scheme + "://"
         url << request.host
         if request.scheme == "https" && request.port != 443 ||
         url = request.scheme + "://"
         url << request.host
         if request.scheme == "https" && request.port != 443 ||
index c0f1659..2426441 100644 (file)
@@ -314,4 +314,16 @@ describe 'Coquelicot' do
       last_response.should be_ok
     end
   end
       last_response.should be_ok
     end
   end
+
+  context "when I set an URL in the 'url' setting" do
+    before(:each) do
+      app.set :url, 'http://example.com/url-test/'
+    end
+    it 'should be appear in <base/> href' do
+      request "/"
+      last_response.should be_ok
+      doc = Hpricot(last_response.body)
+      (doc/"base").attr('href').should == 'http://example.com/url-test/'
+    end
+  end
 end
 end