diff options
Diffstat (limited to 'spec')
-rw-r--r-- | spec/controllers/general_controller_spec.rb | 28 | ||||
-rw-r--r-- | spec/controllers/public_body_controller_spec.rb | 10 | ||||
-rw-r--r-- | spec/controllers/request_controller_spec.rb | 16 | ||||
-rw-r--r-- | spec/integration/search_request_spec.rb | 48 |
4 files changed, 102 insertions, 0 deletions
diff --git a/spec/controllers/general_controller_spec.rb b/spec/controllers/general_controller_spec.rb index a76cdd3b6..4d7f1831d 100644 --- a/spec/controllers/general_controller_spec.rb +++ b/spec/controllers/general_controller_spec.rb @@ -122,6 +122,34 @@ describe GeneralController, "when searching" do end + it "should filter results based on end of URL being 'all'" do + get :search, :combined => ['"bob"', "all"] + assigns[:xapian_requests].results.size.should == 2 + assigns[:xapian_users].results.size.should == 1 + assigns[:xapian_bodies].results.size.should == 0 + end + + it "should filter results based on end of URL being 'users'" do + get :search, :combined => ['"bob"', "users"] + assigns[:xapian_requests].should == nil + assigns[:xapian_users].results.size.should == 1 + assigns[:xapian_bodies].should == nil + end + + it "should filter results based on end of URL being 'requests'" do + get :search, :combined => ['"bob"', "requests"] + assigns[:xapian_requests].results.size.should == 2 + assigns[:xapian_users].should == nil + assigns[:xapian_bodies].should == nil + end + + it "should filter results based on end of URL being 'bodies'" do + get :search, :combined => ['"quango"', "bodies"] + assigns[:xapian_requests].should == nil + assigns[:xapian_users].should == nil + assigns[:xapian_bodies].results.size.should == 1 + end + it "should show help when searching for nothing" do get :search_redirect, :query => nil response.should render_template('search') diff --git a/spec/controllers/public_body_controller_spec.rb b/spec/controllers/public_body_controller_spec.rb index 0ac2726ea..df3fc10dc 100644 --- a/spec/controllers/public_body_controller_spec.rb +++ b/spec/controllers/public_body_controller_spec.rb @@ -78,6 +78,16 @@ describe PublicBodyController, "when listing bodies" do assigns[:description].should == "all" end + it "should support simple searching of bodies by title" do + get :list, :public_body_query => 'quango' + assigns[:public_bodies].should == [ public_bodies(:geraldine_public_body) ] + end + + it "should support simple searching of bodies by notes" do + get :list, :public_body_query => 'Albatross' + assigns[:public_bodies].should == [ public_bodies(:humpadink_public_body) ] + end + it "should list bodies in alphabetical order with different locale" do I18n.default_locale = :es get :list diff --git a/spec/controllers/request_controller_spec.rb b/spec/controllers/request_controller_spec.rb index 7d0cd2c1a..2b153ac7a 100644 --- a/spec/controllers/request_controller_spec.rb +++ b/spec/controllers/request_controller_spec.rb @@ -20,6 +20,22 @@ describe RequestController, "when listing recent requests" do response.should render_template('list') end + it "should filter requests" do + get :list, :view => 'all' + assigns[:list_results].size.should == 2 + get :list, :view => 'successful' + assigns[:list_results].size.should == 0 + end + + it "should filter requests by date" do + get :list, :view => 'all', :request_date_before => '13/10/2007' + assigns[:list_results].size.should == 1 + get :list, :view => 'all', :request_date_after => '13/10/2007' + assigns[:list_results].size.should == 1 + get :list, :view => 'all', :request_date_after => '10/10/2007', :request_date_before => '01/01/2010' + assigns[:list_results].size.should == 2 + end + it "should assign the first page of results" do xap_results = mock_model(ActsAsXapian::Search, :results => (1..25).to_a.map { |m| { :model => m } }, diff --git a/spec/integration/search_request_spec.rb b/spec/integration/search_request_spec.rb index 9398519b7..84239f7a3 100644 --- a/spec/integration/search_request_spec.rb +++ b/spec/integration/search_request_spec.rb @@ -1,9 +1,57 @@ require File.expand_path(File.dirname(__FILE__) + '/../spec_helper') describe "When searching" do + + fixtures [ :info_requests, + :info_request_events, + :public_bodies, + :public_body_translations, + :users, + :raw_emails, + :outgoing_messages, + :incoming_messages, + :comments ] + + before(:each) do + load_raw_emails_data(raw_emails) + end + it "should not strip quotes from quoted query" do request_via_redirect("post", "/search", :query => '"mouse stilton"') response.body.should include(""mouse stilton"") end + + it "should correctly execute simple search" do + request_via_redirect("post", "/search", + :query => 'bob' + ) + response.body.should include("One person matching") + end + + it "should correctly filter searches for requests" do + request_via_redirect("post", "/search/bob/requests") + response.body.should_not include("One person matching") + response.body.should include("FOI requests 1 to 2 of 2") + end + + it "should correctly filter searches for successful requests" do + request_via_redirect("post", "/search", + :query => "bob", + :latest_status => ['successful']) + response.body.should include("no requests matching your query") + end + + it "should correctly filter searches for comments" do + request_via_redirect("post", "/search", + :query => "daftest", + :request_variety => ['comments']) + response.body.should include("One FOI request matching your search") + + request_via_redirect("post", "/search", + :query => "daftest", + :request_variety => ['response','sent']) + response.body.should include("no requests matching your query") + end + end |