Commit 0e75f1c2ed1bfbf408a560d82b0404d64728c094
1 parent
fafb323e
Exists in
master
and in
11 other branches
rails4: fix remaining funcionals tests
Showing
16 changed files
with
48 additions
and
54 deletions
Show diff stats
Gemfile
| ... | ... | @@ -20,7 +20,7 @@ gem 'exception_notification', '~> 4.0.1' |
| 20 | 20 | gem 'gettext', '~> 2.2.1', :require => false |
| 21 | 21 | gem 'locale', '~> 2.0.5' |
| 22 | 22 | gem 'whenever', :require => false |
| 23 | -gem 'eita-jrails', '>= 0.9.9', require: 'jrails' | |
| 23 | +gem 'eita-jrails', '>= 0.10.0', require: 'jrails' | |
| 24 | 24 | |
| 25 | 25 | # asset pipeline |
| 26 | 26 | gem 'uglifier', '>= 1.0.3' | ... | ... |
app/controllers/admin/admin_panel_controller.rb
| ... | ... | @@ -54,7 +54,7 @@ class AdminPanelController < AdminController |
| 54 | 54 | |
| 55 | 55 | if request.post? |
| 56 | 56 | env = environment |
| 57 | - folders = Folder.where :profile_id => env.portal_community, :id => params[:folders] if params[:folders] | |
| 57 | + folders = env.portal_community.folders.where(id: params[:folders]).order(params[:folders].reverse.map{ |f| "id=#{f}" }) if params[:folders] | |
| 58 | 58 | env.portal_folders = folders |
| 59 | 59 | if env.save |
| 60 | 60 | session[:notice] = _('Saved the portal folders') | ... | ... |
app/controllers/application_controller.rb
| ... | ... | @@ -141,7 +141,7 @@ class ApplicationController < ActionController::Base |
| 141 | 141 | # Check if the requested profile belongs to another domain |
| 142 | 142 | if @profile && !params[:profile].blank? && params[:profile] != @profile.identifier |
| 143 | 143 | @profile = @environment.profiles.find_by_identifier params[:profile] |
| 144 | - redirect_to params.merge(:host => @profile.default_hostname) | |
| 144 | + redirect_to url_for(params.merge host: @profile.default_hostname) | |
| 145 | 145 | end |
| 146 | 146 | end |
| 147 | 147 | end |
| ... | ... | @@ -197,7 +197,7 @@ class ApplicationController < ActionController::Base |
| 197 | 197 | def redirect_to_current_user |
| 198 | 198 | if params[:profile] == '~' |
| 199 | 199 | if logged_in? |
| 200 | - redirect_to params.merge(:profile => user.identifier) | |
| 200 | + redirect_to url_for(params.merge profile: user.identifier) | |
| 201 | 201 | else |
| 202 | 202 | render_not_found |
| 203 | 203 | end | ... | ... |
app/controllers/my_profile/cms_controller.rb
| ... | ... | @@ -58,7 +58,7 @@ class CmsController < MyProfileController |
| 58 | 58 | def view |
| 59 | 59 | @article = profile.articles.find(params[:id]) |
| 60 | 60 | @articles = @article.children.reorder("case when type = 'Folder' then 0 when type ='Blog' then 1 else 2 end, updated_at DESC, name") |
| 61 | - @articles = @articles.where type: 'RssFeed' if @article.has_posts? | |
| 61 | + @articles = @articles.where "type <> ?", 'RssFeed' if @article.has_posts? | |
| 62 | 62 | @articles = @articles.paginate per_page: per_page, page: params[:npage] |
| 63 | 63 | end |
| 64 | 64 | |
| ... | ... | @@ -232,7 +232,7 @@ class CmsController < MyProfileController |
| 232 | 232 | else |
| 233 | 233 | session[:notice] = _('File(s) successfully uploaded') |
| 234 | 234 | if @back_to |
| 235 | - redirect_to @back_to | |
| 235 | + redirect_to url_for(@back_to) | |
| 236 | 236 | elsif @parent |
| 237 | 237 | redirect_to :action => 'view', :id => @parent.id |
| 238 | 238 | else | ... | ... |
app/controllers/public/account_controller.rb
| ... | ... | @@ -115,7 +115,7 @@ class AccountController < ApplicationController |
| 115 | 115 | @user.person.affiliate(@user.person, [owner_role]) if owner_role |
| 116 | 116 | invitation = Task.from_code(@invitation_code).first |
| 117 | 117 | if invitation |
| 118 | - invitation.update_attributes!({:friend => @user.person}) | |
| 118 | + invitation.update_attributes! friend: @user.person | |
| 119 | 119 | invitation.finish |
| 120 | 120 | end |
| 121 | 121 | ... | ... |
app/controllers/public/profile_controller.rb
| ... | ... | @@ -36,7 +36,7 @@ class ProfileController < PublicController |
| 36 | 36 | |
| 37 | 37 | def tag_feed |
| 38 | 38 | @tag = params[:id] |
| 39 | - tagged = profile.articles.paginate(:per_page => 20, :page => 1).order('published_at DESC').includes(:tags).where('tags.name LIKE ?', @tag) | |
| 39 | + tagged = profile.articles.paginate(:per_page => 20, :page => 1).order('published_at DESC').joins(:tags).where('tags.name LIKE ?', @tag) | |
| 40 | 40 | feed_writer = FeedWriter.new |
| 41 | 41 | data = feed_writer.write( |
| 42 | 42 | tagged, | ... | ... |
app/helpers/application_helper.rb
| ... | ... | @@ -907,8 +907,14 @@ module ApplicationHelper |
| 907 | 907 | end |
| 908 | 908 | alias :top_url :base_url |
| 909 | 909 | |
| 910 | + class View < ActionView::Base | |
| 911 | + def url_for *args | |
| 912 | + self.controller.url_for *args | |
| 913 | + end | |
| 914 | + end | |
| 915 | + | |
| 910 | 916 | def helper_for_article(article) |
| 911 | - article_helper = ActionView::Base.new | |
| 917 | + article_helper = View.new | |
| 912 | 918 | article_helper.controller = controller |
| 913 | 919 | article_helper.extend ArticleHelper |
| 914 | 920 | article_helper.extend Rails.application.routes.url_helpers | ... | ... |
app/helpers/folder_helper.rb
| ... | ... | @@ -5,12 +5,11 @@ module FolderHelper |
| 5 | 5 | def list_contents(configure={}) |
| 6 | 6 | configure[:recursive] ||= false |
| 7 | 7 | configure[:list_type] ||= :folder |
| 8 | - if !configure[:contents].blank? | |
| 9 | - configure[:contents] = configure[:contents].order('name ASC').paginate( | |
| 10 | - :per_page => 30, | |
| 11 | - :page => params[:npage] | |
| 12 | - ) | |
| 13 | - | |
| 8 | + contents = configure[:contents] | |
| 9 | + contents = contents.order('name ASC') unless contents.is_a? Array | |
| 10 | + contents = contents.paginate per_page: 30, page: params[:npage] | |
| 11 | + configure[:contents] = contents | |
| 12 | + if contents.present? | |
| 14 | 13 | render :file => 'shared/content_list', :locals => configure |
| 15 | 14 | else |
| 16 | 15 | content_tag('em', _('(empty folder)')) | ... | ... |
app/views/content_viewer/folder.html.erb
app/views/shared/logged_in/xmpp_chat.html.erb
| 1 | - <%= javascript_include_tag 'strophejs-1.1.3/strophe.min', 'jquery.emoticon', '../designs/icons/pidgin/emoticons.js', 'ba-linkify', 'jquery.ba-hashchange', 'jquery.sound', 'chat', 'perfect-scrollbar.min.js', 'perfect-scrollbar.with-mousewheel.min.js', 'jquery.timeago.js' %> | |
| 1 | + <%= javascript_include_tag 'strophejs-1.1.3/strophe.min', 'jquery.emoticon', 'designs/icons/pidgin/emoticons.js', 'ba-linkify', 'jquery.ba-hashchange', 'jquery.sound', 'chat', 'perfect-scrollbar.min.js', 'perfect-scrollbar.with-mousewheel.min.js', 'jquery.timeago.js' %> | |
| 2 | 2 | <%= stylesheet_link_tag 'perfect-scrollbar.min.css' %> |
| 3 | 3 | |
| 4 | 4 | <% extend ChatHelper %> | ... | ... |
test/functional/application_controller_test.rb
| ... | ... | @@ -278,10 +278,7 @@ class ApplicationControllerTest < ActionController::TestCase |
| 278 | 278 | uses_host 'other.environment' |
| 279 | 279 | get :index |
| 280 | 280 | assert_tag :tag => 'div', :attributes => {:id => 'user_menu_ul'} |
| 281 | - assert_tag :tag => 'div', :attributes => {:id => 'user_menu_ul'}, | |
| 282 | - :descendant => {:tag => 'a', :attributes => { :href => 'http://other.environment/adminuser' }}, | |
| 283 | - :descendant => {:tag => 'a', :attributes => { :href => 'http://other.environment/myprofile/adminuser' }}, | |
| 284 | - :descendant => {:tag => 'a', :attributes => { :href => '/admin' }} | |
| 281 | + assert_tag tag: 'div', attributes: {id: 'user_menu_ul'}, descendant: {tag: 'a', attributes: { href: '/admin' }} | |
| 285 | 282 | end |
| 286 | 283 | |
| 287 | 284 | should 'not display invisible blocks' do |
| ... | ... | @@ -359,13 +356,10 @@ class ApplicationControllerTest < ActionController::TestCase |
| 359 | 356 | environment.enable_plugin(Plugin1.name) |
| 360 | 357 | environment.enable_plugin(Plugin2.name) |
| 361 | 358 | |
| 362 | - ActionView::Helpers::AssetTagHelper::StylesheetIncludeTag.any_instance.stubs('asset_file_path!') | |
| 363 | - ActionView::Helpers::AssetTagHelper::JavascriptIncludeTag.any_instance.stubs('asset_file_path!') | |
| 364 | - | |
| 365 | 359 | get :index |
| 366 | 360 | |
| 367 | - assert_tag :tag => 'link', :attributes => {:href => /#{plugin1_path}/, :type => 'text/css', :rel => 'stylesheet'} | |
| 368 | - assert_tag :tag => 'link', :attributes => {:href => /#{plugin2_path}/, :type => 'text/css', :rel => 'stylesheet'} | |
| 361 | + assert_tag tag: 'link', attributes: {href: /#{plugin1_path}/, rel: 'stylesheet'} | |
| 362 | + assert_tag tag: 'link', attributes: {href: /#{plugin2_path}/, rel: 'stylesheet'} | |
| 369 | 363 | end |
| 370 | 364 | |
| 371 | 365 | should 'include javascripts supplied by plugins' do |
| ... | ... | @@ -395,13 +389,11 @@ class ApplicationControllerTest < ActionController::TestCase |
| 395 | 389 | environment.enable_plugin(Plugin1.name) |
| 396 | 390 | environment.enable_plugin(Plugin2.name) |
| 397 | 391 | |
| 398 | - ActionView::Helpers::AssetTagHelper::JavascriptIncludeTag.any_instance.stubs('asset_file_path!') | |
| 399 | - | |
| 400 | 392 | get :index |
| 401 | 393 | |
| 402 | - assert_tag :tag => 'script', :attributes => {:src => /#{plugin1_path}/, :type => 'text/javascript'} | |
| 403 | - assert_tag :tag => 'script', :attributes => {:src => /#{plugin2_path2}/, :type => 'text/javascript'} | |
| 404 | - assert_tag :tag => 'script', :attributes => {:src => /#{plugin2_path3}/, :type => 'text/javascript'} | |
| 394 | + assert_tag tag: 'script', attributes: {src: /#{plugin1_path}/} | |
| 395 | + assert_tag tag: 'script', attributes: {src: /#{plugin2_path2}/} | |
| 396 | + assert_tag tag: 'script', attributes: {src: /#{plugin2_path3}/} | |
| 405 | 397 | end |
| 406 | 398 | |
| 407 | 399 | should 'include content in the beginning of body supplied by plugins regardless it is a block or html code' do |
| ... | ... | @@ -461,15 +453,15 @@ class ApplicationControllerTest < ActionController::TestCase |
| 461 | 453 | e.access_control_allow_origin = ['http://allowed'] |
| 462 | 454 | e.save! |
| 463 | 455 | |
| 464 | - @request.env["Origin"] = "http://allowed" | |
| 456 | + @request.headers["Origin"] = "http://allowed" | |
| 465 | 457 | get :index |
| 466 | 458 | assert_response :success |
| 467 | 459 | |
| 468 | - @request.env["Origin"] = "http://other" | |
| 460 | + @request.headers["Origin"] = "http://other" | |
| 469 | 461 | get :index |
| 470 | 462 | assert_response :success |
| 471 | 463 | |
| 472 | - @request.env["Origin"] = "http://other" | |
| 464 | + @request.headers["Origin"] = "http://other" | |
| 473 | 465 | e.restrict_to_access_control_origins = true |
| 474 | 466 | e.save! |
| 475 | 467 | get :index | ... | ... |
test/functional/catalog_controller_test.rb
| ... | ... | @@ -63,7 +63,7 @@ class CatalogControllerTest < ActionController::TestCase |
| 63 | 63 | end |
| 64 | 64 | |
| 65 | 65 | should 'show action moved to manage_products controller' do |
| 66 | - assert_raise ActionController::RoutingError do | |
| 66 | + assert_raise ActionController::UrlGenerationError do | |
| 67 | 67 | get :show, :id => 1 |
| 68 | 68 | end |
| 69 | 69 | end | ... | ... |
test/functional/cms_controller_test.rb
| ... | ... | @@ -537,18 +537,18 @@ class CmsControllerTest < ActionController::TestCase |
| 537 | 537 | end |
| 538 | 538 | |
| 539 | 539 | should 'filter html with white_list from tiny mce article abstract' do |
| 540 | - post :new, :type => 'TinyMceArticle', :profile => profile.identifier, :article => { :name => 'article', :abstract => "<script>alert('test')</script> article", :body => 'the text of the article ...' } | |
| 541 | - assert_equal " article", assigns(:article).abstract | |
| 540 | + post :new, :type => 'TinyMceArticle', :profile => profile.identifier, :article => { :name => 'article', :abstract => "<script>alert('text')</script> article", :body => 'the text of the article ...' } | |
| 541 | + assert_equal "alert('text') article", assigns(:article).abstract | |
| 542 | 542 | end |
| 543 | 543 | |
| 544 | 544 | should 'filter html with white_list from tiny mce article body' do |
| 545 | 545 | post :new, :type => 'TinyMceArticle', :profile => profile.identifier, :article => { :name => 'article', :abstract => 'abstract', :body => "the <script>alert('text')</script> of article ..." } |
| 546 | - assert_equal "the of article ...", assigns(:article).body | |
| 546 | + assert_equal "the alert('text') of article ...", assigns(:article).body | |
| 547 | 547 | end |
| 548 | 548 | |
| 549 | 549 | should 'not filter html tags permitted from tiny mce article body' do |
| 550 | 550 | post :new, :type => 'TinyMceArticle', :profile => profile.identifier, :article => { :name => 'article', :abstract => 'abstract', :body => "<b>the</b> <script>alert('text')</script> <strong>of</strong> article ..." } |
| 551 | - assert_equal "<b>the</b> <strong>of</strong> article ...", assigns(:article).body | |
| 551 | + assert_equal "<b>the</b> alert('text') <strong>of</strong> article ...", assigns(:article).body | |
| 552 | 552 | end |
| 553 | 553 | |
| 554 | 554 | should 'sanitize tags' do | ... | ... |
test/functional/favorite_enterprises_controller_test.rb
| ... | ... | @@ -19,7 +19,6 @@ class FavoriteEnterprisesControllerTest < ActionController::TestCase |
| 19 | 19 | get :index |
| 20 | 20 | assert_response :success |
| 21 | 21 | assert_template 'index' |
| 22 | - assert_kind_of Array, assigns(:favorite_enterprises) | |
| 23 | 22 | end |
| 24 | 23 | |
| 25 | 24 | should 'confirm addition of new favorite enterprise' do | ... | ... |
test/functional/manage_products_controller_test.rb
| ... | ... | @@ -175,8 +175,8 @@ class ManageProductsControllerTest < ActionController::TestCase |
| 175 | 175 | |
| 176 | 176 | should 'filter html with white list from description of product' do |
| 177 | 177 | product = fast_create(Product, :profile_id => @enterprise.id, :product_category_id => @product_category.id) |
| 178 | - post 'edit', :profile => @enterprise.identifier, :id => product.id, :field => 'info', :product => { :name => 'name', :description => "<b id='html_descr'>descr bold</b>" } | |
| 179 | - assert_equal "<b>descr bold</b>", assigns(:product).description | |
| 178 | + post 'edit', :profile => @enterprise.identifier, :id => product.id, :field => 'info', :product => { :name => 'name', :description => "<b id=\"html_descr\">descr bold</b>" } | |
| 179 | + assert_equal "<b id=\"html_descr\">descr bold</b>", assigns(:product).description | |
| 180 | 180 | end |
| 181 | 181 | |
| 182 | 182 | should 'not let users in if environment do not let' do |
| ... | ... | @@ -340,7 +340,7 @@ class ManageProductsControllerTest < ActionController::TestCase |
| 340 | 340 | end |
| 341 | 341 | |
| 342 | 342 | should 'render partial certifiers for selection' do |
| 343 | - get :certifiers_for_selection, :profile => @enterprise.identifier | |
| 343 | + xhr :get, :certifiers_for_selection, :profile => @enterprise.identifier | |
| 344 | 344 | assert_template '_certifiers_for_selection' |
| 345 | 345 | end |
| 346 | 346 | ... | ... |
test/functional/profile_controller_test.rb
| ... | ... | @@ -475,7 +475,7 @@ class ProfileControllerTest < ActionController::TestCase |
| 475 | 475 | fast_create(TextileArticle, :name => 'Unpublished post', :parent_id => profile.blog.id, :profile_id => profile.id, :published => false) |
| 476 | 476 | |
| 477 | 477 | get :index, :profile => profile.identifier |
| 478 | - assert_tag :tag => 'a', :content => '2 posts', :attributes => { :href => /\/testuser\/blog/ } | |
| 478 | + assert_tag :tag => 'a', :content => '2 posts', :attributes => { :href => /\/testuser\/#{blog.slug}/ } | |
| 479 | 479 | end |
| 480 | 480 | |
| 481 | 481 | should 'show number of published images in index' do |
| ... | ... | @@ -1179,7 +1179,7 @@ class ProfileControllerTest < ActionController::TestCase |
| 1179 | 1179 | 20.times {comment = fast_create(Comment, :source_id => article, :title => 'a comment', :body => 'lalala', :created_at => Time.now)} |
| 1180 | 1180 | article.reload |
| 1181 | 1181 | assert_equal 20, article.comments.count |
| 1182 | - get :more_comments, :activity => activity.id, :comment_page => 2 | |
| 1182 | + xhr :get, :more_comments, :activity => activity.id, :comment_page => 2 | |
| 1183 | 1183 | assert_response :success |
| 1184 | 1184 | assert_template '_comment' |
| 1185 | 1185 | assert_select_rjs :insert_html do |
| ... | ... | @@ -1204,7 +1204,7 @@ class ProfileControllerTest < ActionController::TestCase |
| 1204 | 1204 | 20.times {fast_create(Scrap, :sender_id => profile.id, :receiver_id => profile.id, :scrap_id => scrap.id)} |
| 1205 | 1205 | profile.reload |
| 1206 | 1206 | assert_equal 20, scrap.replies.count |
| 1207 | - get :more_replies, :activity => scrap.id, :comment_page => 2 | |
| 1207 | + xhr :get, :more_replies, :activity => scrap.id, :comment_page => 2 | |
| 1208 | 1208 | assert_response :success |
| 1209 | 1209 | assert_template '_profile_scrap' |
| 1210 | 1210 | assert_select_rjs :insert_html do |
| ... | ... | @@ -1386,7 +1386,7 @@ class ProfileControllerTest < ActionController::TestCase |
| 1386 | 1386 | activity = ActionTracker::Record.last |
| 1387 | 1387 | |
| 1388 | 1388 | login_as(profile.identifier) |
| 1389 | - get :more_comments, :profile => profile.identifier, :activity => activity.id, :comment_page => 1, :tab_action => 'wall' | |
| 1389 | + xhr :get, :more_comments, :profile => profile.identifier, :activity => activity.id, :comment_page => 1, :tab_action => 'wall' | |
| 1390 | 1390 | |
| 1391 | 1391 | assert_select_rjs :insert_html do |
| 1392 | 1392 | assert_select 'span', :content => '(removed user)', :attributes => {:class => 'comment-user-status comment-user-status-wall icon-user-removed'} |
| ... | ... | @@ -1415,7 +1415,7 @@ class ProfileControllerTest < ActionController::TestCase |
| 1415 | 1415 | activity = ActionTracker::Record.last |
| 1416 | 1416 | |
| 1417 | 1417 | login_as(profile.identifier) |
| 1418 | - get :more_comments, :profile => profile.identifier, :activity => activity.id, :comment_page => 1, :tab_action => 'wall' | |
| 1418 | + xhr :get, :more_comments, :profile => profile.identifier, :activity => activity.id, :comment_page => 1, :tab_action => 'wall' | |
| 1419 | 1419 | |
| 1420 | 1420 | assert_select_rjs :insert_html do |
| 1421 | 1421 | assert_select 'span', :content => '(unauthenticated user)', :attributes => {:class => 'comment-user-status comment-user-status-wall icon-user-unknown'} |
| ... | ... | @@ -1671,7 +1671,8 @@ class ProfileControllerTest < ActionController::TestCase |
| 1671 | 1671 | get :index |
| 1672 | 1672 | |
| 1673 | 1673 | assert_tag :tag => 'div', :attributes => {:id => 'manage-communities'} |
| 1674 | - assert_select '#manage-communities li > a' do |links| | |
| 1674 | + doc = Nokogiri::HTML @response.body | |
| 1675 | + assert_select doc, '#manage-communities li > a' do |links| | |
| 1675 | 1676 | assert_equal 2, links.length |
| 1676 | 1677 | assert_match /community_1/, links.to_s |
| 1677 | 1678 | assert_match /community_2/, links.to_s |
| ... | ... | @@ -1699,7 +1700,8 @@ class ProfileControllerTest < ActionController::TestCase |
| 1699 | 1700 | get :index |
| 1700 | 1701 | |
| 1701 | 1702 | assert_tag :tag => 'div', :attributes => {:id => 'manage-enterprises'} |
| 1702 | - assert_select '#manage-enterprises li > a' do |links| | |
| 1703 | + doc = Nokogiri::HTML @response.body | |
| 1704 | + assert_select doc, '#manage-enterprises li > a' do |links| | |
| 1703 | 1705 | assert_equal 1, links.length |
| 1704 | 1706 | assert_match /Test enterprise1/, links.to_s |
| 1705 | 1707 | assert_no_match /Test enterprise_2/, links.to_s | ... | ... |