Commit 99d7ddca7430e0a892c9eb251ca583192d6dfc83
1 parent
2b966b41
Exists in
master
and in
23 other branches
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
Showing
2 changed files
with
26 additions
and
3 deletions
Show diff stats
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 < 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! | ... | ... |