describe "Searchable table spec" do tests TableScreenSearchable # Override controller to properly instantiate def controller @controller ||= TableScreenSearchable.new(nav_bar: true) @controller.on_load @controller.navigation_controller end it "should be rotated in portrait mode" do rotate_device to: :portrait, button: :bottom true.should == true end it "should show all 50 states" do @controller.tableView(@controller.tableView, numberOfRowsInSection:0).should == 50 end it "should allow searching for all the 'New' states" do @controller.searchDisplayController(@controller, shouldReloadTableForSearchString:"New") @controller.tableView(@controller.tableView, numberOfRowsInSection:0).should == 4 end it "should allow ending searches" do @controller.searchDisplayController(@controller, shouldReloadTableForSearchString:"North") @controller.tableView(@controller.tableView, numberOfRowsInSection:0).should == 2 @controller.searchDisplayControllerWillEndSearch(@controller) @controller.tableView(@controller.tableView, numberOfRowsInSection:0).should == 50 end it "should expose the search_string variable and clear it properly" do @controller.searchDisplayController(@controller, shouldReloadTableForSearchString:"North") @controller.search_string.should == "north" @controller.original_search_string.should == "North" @controller.searchDisplayControllerWillEndSearch(@controller) @controller.search_string.should == false @controller.original_search_string.should == false end end