diff options
| author | azul <azul@riseup.net> | 2014-04-25 12:10:16 +0200 | 
|---|---|---|
| committer | azul <azul@riseup.net> | 2014-04-25 12:10:16 +0200 | 
| commit | 14b43488b968a1544fdb65caa4fb0df99606c3ff (patch) | |
| tree | 7c837eabc63b940cf4a2ea1cdbcda969ef4e82bd | |
| parent | 0968d0009070dea86cb312a2f0ce4a2e8cbac94c (diff) | |
| parent | 83379a78b0e14d0938f452ef1d23ad94754350ae (diff) | |
Merge pull request #152 from azul/bugfix/5552-recover-from-invalid-tickets
Bugfix/5552 recover from invalid tickets
8 files changed, 50 insertions, 12 deletions
| diff --git a/app/views/home/_content.html.haml b/app/views/home/_content.html.haml index 3d351e9..e47fdaf 100644 --- a/app/views/home/_content.html.haml +++ b/app/views/home/_content.html.haml @@ -9,6 +9,4 @@      .row-fluid        %hr        %p -        = link_to "fetch a cert", cert_path -      %p          = link_to "make donation", new_payment_path if APP_CONFIG[:payment].present? diff --git a/engines/support/app/controllers/tickets_controller.rb b/engines/support/app/controllers/tickets_controller.rb index d65ee43..4be3493 100644 --- a/engines/support/app/controllers/tickets_controller.rb +++ b/engines/support/app/controllers/tickets_controller.rb @@ -24,11 +24,11 @@ class TicketsController < ApplicationController      if @ticket.save        flash[:notice] = t(:thing_was_successfully_created, :thing => t(:ticket)) -    end -    # cannot set this until ticket has been saved, as @ticket.id will not be set -    if !logged_in? and flash[:notice] -      flash[:notice] += " " + t(:access_ticket_text, :full_url => ticket_url(@ticket.id)) +      # cannot set this until ticket has been saved, as @ticket.id will not be set +      if !logged_in? and flash[:notice] +        flash[:notice] += " " + t(:access_ticket_text, :full_url => ticket_url(@ticket.id)) +      end      end      respond_with(@ticket, :location => auto_ticket_path(@ticket))    end diff --git a/engines/support/app/helpers/auto_tickets_path_helper.rb b/engines/support/app/helpers/auto_tickets_path_helper.rb index 93f3cb9..5638222 100644 --- a/engines/support/app/helpers/auto_tickets_path_helper.rb +++ b/engines/support/app/helpers/auto_tickets_path_helper.rb @@ -23,6 +23,7 @@ module AutoTicketsPathHelper    end    def auto_ticket_path(ticket, options={}) +    return unless ticket.persisted?      options = ticket_view_options.merge options      if @user        user_ticket_path(@user, ticket, options) @@ -50,4 +51,4 @@ module AutoTicketsPathHelper      hsh    end -end
\ No newline at end of file +end diff --git a/engines/support/app/views/tickets/index.html.haml b/engines/support/app/views/tickets/index.html.haml index c02a326..a4df6e3 100644 --- a/engines/support/app/views/tickets/index.html.haml +++ b/engines/support/app/views/tickets/index.html.haml @@ -1,4 +1,4 @@ -- @show_navigation = !params[:user_id].nil? +- @show_navigation = params[:user_id].present?  = render 'tickets/tabs' diff --git a/engines/support/app/views/tickets/new.html.haml b/engines/support/app/views/tickets/new.html.haml index 8f217a5..ba86ac3 100644 --- a/engines/support/app/views/tickets/new.html.haml +++ b/engines/support/app/views/tickets/new.html.haml @@ -1,4 +1,4 @@ -- @show_navigation = !params[:user_id].nil? +- @show_navigation = params[:user_id].present?  = render 'tickets/tabs' @@ -27,4 +27,4 @@      - if logged_in?        = link_to t(:cancel), auto_tickets_path, :class => :btn      - else -      = link_to t(:cancel), home_path, :class => 'btn'
\ No newline at end of file +      = link_to t(:cancel), home_path, :class => 'btn' diff --git a/engines/support/app/views/tickets/show.html.haml b/engines/support/app/views/tickets/show.html.haml index bfdb773..bbca4bf 100644 --- a/engines/support/app/views/tickets/show.html.haml +++ b/engines/support/app/views/tickets/show.html.haml @@ -1,4 +1,4 @@ -- @show_navigation = !params[:user_id].nil? +- @show_navigation = params[:user_id].present?  .ticket    = render 'tickets/edit_form' @@ -9,4 +9,4 @@          %td.user            = logged_in? ? current_user.login : t(:anonymous)          %td.comment -          = render 'tickets/new_comment_form'
\ No newline at end of file +          = render 'tickets/new_comment_form' diff --git a/engines/support/test/functional/tickets_controller_test.rb b/engines/support/test/functional/tickets_controller_test.rb index 416fb73..d746b59 100644 --- a/engines/support/test/functional/tickets_controller_test.rb +++ b/engines/support/test/functional/tickets_controller_test.rb @@ -72,6 +72,17 @@ class TicketsControllerTest < ActionController::TestCase    end +  test "handle invalid ticket" do +    params = {:subject => "unauth ticket test subject", :comments_attributes => {"0" => {"body" =>"body of test ticket"}}, :email => 'a'} + +    assert_no_difference('Ticket.count') do +      post :create, :ticket => params +    end + +    assert_template :new +    assert_equal params[:subject], assigns(:ticket).subject +  end +    test "should create authenticated ticket" do      params = {:subject => "auth ticket test subject", :comments_attributes => {"0" => {"body" =>"body of test ticket"}}} diff --git a/engines/support/test/integration/create_ticket_test.rb b/engines/support/test/integration/create_ticket_test.rb new file mode 100644 index 0000000..2583fc7 --- /dev/null +++ b/engines/support/test/integration/create_ticket_test.rb @@ -0,0 +1,28 @@ +require 'test_helper' + +class CreateTicketTest < BrowserIntegrationTest + +  test "can submit ticket anonymously" do +    visit '/' +    click_on 'Get Help' +    fill_in 'Subject', with: 'test ticket' +    fill_in 'Description', with: 'description of the problem goes here' +    click_on 'Create Ticket' +    assert page.has_content?("Ticket was successfully created.") +    assert page.has_content?("You can later access this ticket at the URL") +    assert page.has_content?(current_url) +    assert ticket = Ticket.last +    ticket.destroy +  end + +  test "get help when creating ticket with invalid email" do +    visit '/' +    click_on 'Get Help' +    fill_in 'Subject', with: 'test ticket' +    fill_in 'Email', with: 'invalid data' +    fill_in 'Description', with: 'description of the problem goes here' +    click_on 'Create Ticket' +    assert page.has_content?("is invalid") +  end + +end | 
