From bda78a4679bc947dfd42ab92adfc043afd1d2f60 Mon Sep 17 00:00:00 2001 From: Jean-Philippe Lang Date: Fri, 22 Apr 2016 17:47:11 +0000 Subject: Adds "New wiki page" link to create a new wiki page (#5536). git-svn-id: http://svn.redmine.org/redmine/trunk@15346 e93f8b46-1217-0410-a6f0-8f06a7374b81 --- test/functional/wiki_controller_test.rb | 49 +++++++++++++++++++++++++++++++++ test/integration/routing/wiki_test.rb | 3 ++ 2 files changed, 52 insertions(+) (limited to 'test') diff --git a/test/functional/wiki_controller_test.rb b/test/functional/wiki_controller_test.rb index 82aca52d0..cd3bf0a76 100644 --- a/test/functional/wiki_controller_test.rb +++ b/test/functional/wiki_controller_test.rb @@ -183,6 +183,55 @@ class WikiControllerTest < ActionController::TestCase assert_select 'textarea[name=?]', 'content[text]' end + def test_get_new + @request.session[:user_id] = 2 + + get :new, :project_id => 'ecookbook' + assert_response :success + assert_template 'new' + end + + def test_get_new_xhr + @request.session[:user_id] = 2 + + xhr :get, :new, :project_id => 'ecookbook' + assert_response :success + assert_template 'new' + end + + def test_post_new_with_valid_title_should_redirect_to_edit + @request.session[:user_id] = 2 + + post :new, :project_id => 'ecookbook', :title => 'New Page' + assert_redirected_to '/projects/ecookbook/wiki/New_Page' + end + + def test_post_new_xhr_with_valid_title_should_redirect_to_edit + @request.session[:user_id] = 2 + + xhr :post, :new, :project_id => 'ecookbook', :title => 'New Page' + assert_response :success + assert_equal 'window.location = "/projects/ecookbook/wiki/New_Page"', response.body + end + + def test_post_new_with_invalid_title_should_display_errors + @request.session[:user_id] = 2 + + post :new, :project_id => 'ecookbook', :title => 'Another page' + assert_response :success + assert_template 'new' + assert_select_error 'Title has already been taken' + end + + def test_post_new_xhr_with_invalid_title_should_display_errors + @request.session[:user_id] = 2 + + xhr :post, :new, :project_id => 'ecookbook', :title => 'Another page' + assert_response :success + assert_template 'new' + assert_include 'Title has already been taken', response.body + end + def test_create_page @request.session[:user_id] = 2 assert_difference 'WikiPage.count' do diff --git a/test/integration/routing/wiki_test.rb b/test/integration/routing/wiki_test.rb index 135bb3f1b..c1c176af1 100644 --- a/test/integration/routing/wiki_test.rb +++ b/test/integration/routing/wiki_test.rb @@ -30,6 +30,9 @@ class RoutingWikiTest < Redmine::RoutingTest should_route 'GET /projects/foo/wiki/page' => 'wiki#show', :project_id => 'foo', :id => 'page' should_route 'GET /projects/foo/wiki/page.pdf' => 'wiki#show', :project_id => 'foo', :id => 'page', :format => 'pdf' + should_route 'GET /projects/foo/wiki/new' => 'wiki#new', :project_id => 'foo' + should_route 'POST /projects/foo/wiki/new' => 'wiki#new', :project_id => 'foo' + should_route 'GET /projects/foo/wiki/page/edit' => 'wiki#edit', :project_id => 'foo', :id => 'page' should_route 'PUT /projects/foo/wiki/page' => 'wiki#update', :project_id => 'foo', :id => 'page' should_route 'DELETE /projects/foo/wiki/page' => 'wiki#destroy', :project_id => 'foo', :id => 'page' -- cgit v1.2.3