Commit 99d7ddca7430e0a892c9eb251ca583192d6dfc83

Authored by AntonioTerceiro
1 parent 2b966b41

ActionItem519: only generate url's with own domain for content

(articles) URL's

git-svn-id: https://svn.colivre.coop.br/svn/noosfero/trunk@2320 3f533792-8f58-4932-b0fe-aaf55b0a4547
app/models/profile.rb
... ... @@ -254,15 +254,24 @@ class Profile < ActiveRecord::Base
254 254 end
255 255  
256 256 def url
257   - generate_url(url_options.merge(:controller => 'content_viewer', :action => 'view_page', :page => []))
  257 + if self.domains.empty?
  258 + generate_url(:controller => 'content_viewer', :action => 'view_page', :page => [])
  259 + else
  260 + options = { :host => self.domains.first.name, :controller => 'content_viewer', :action => 'view_page', :page => []}
  261 + # help developers by generating a suitable URL for development environment
  262 + if (ENV['RAILS_ENV'] == 'development')
  263 + options.merge!(development_url_options)
  264 + end
  265 + options
  266 + end
258 267 end
259 268  
260 269 def admin_url
261   - generate_url(url_options.merge(:controller => 'profile_editor', :action => 'index'))
  270 + generate_url(:controller => 'profile_editor', :action => 'index')
262 271 end
263 272  
264 273 def public_profile_url
265   - generate_url(url_options.merge(:controller => 'profile', :action => 'index'))
  274 + generate_url(:controller => 'profile', :action => 'index')
266 275 end
267 276  
268 277 def generate_url(options)
... ...
test/unit/profile_test.rb
... ... @@ -272,6 +272,12 @@ class ProfileTest < Test::Unit::TestCase
272 272 assert_equal({:host => 'mycolivre.net', :profile => 'testprofile'}, profile.url_options)
273 273 end
274 274  
  275 + should "use own domain name instead of environment's for home page url" do
  276 + profile = Profile.create!(:name => "Test Profile", :identifier => 'testprofile', :environment_id => create_environment('mycolivre.net').id)
  277 + profile.domains << Domain.new(:name => 'micojones.net')
  278 + assert_equal({:host => 'micojones.net', :controller => 'content_viewer', :action => 'view_page', :page => []}, profile.url)
  279 + end
  280 +
275 281 should 'help developers by adding a suitable port to url options' do
276 282 profile = Profile.create!(:name => "Test Profile", :identifier => 'testprofile', :environment_id => create_environment('mycolivre.net').id)
277 283  
... ... @@ -280,6 +286,14 @@ class ProfileTest &lt; Test::Unit::TestCase
280 286 ok('Profile#url_options must include port option when running in development mode') { profile.url_options[:port] == 9999 }
281 287 end
282 288  
  289 + should 'help developers by adding a suitable port to url options for own domain urls' do
  290 + profile = Profile.create!(:name => "Test Profile", :identifier => 'testprofile', :environment_id => create_environment('mycolivre.net').id)
  291 + profile.domains << Domain.new(:name => 'micojones.net')
  292 + ENV.expects(:[]).with('RAILS_ENV').returns('development')
  293 + profile.expects(:development_url_options).returns({ :port => 9999 })
  294 + ok('Profile#url must include port options when running in developers mode') { profile.url[:port] == 9999 }
  295 + end
  296 +
283 297 should 'list tags for profile' do
284 298 profile = Profile.create!(:name => "Test Profile", :identifier => 'testprofile')
285 299 profile.articles.build(:name => 'first', :tag_list => 'first-tag').save!
... ...