diff options
Diffstat (limited to 'spec')
| -rw-r--r-- | spec/controllers/public_body_controller_spec.rb | 30 | 
1 files changed, 30 insertions, 0 deletions
diff --git a/spec/controllers/public_body_controller_spec.rb b/spec/controllers/public_body_controller_spec.rb index d4f359a80..70ed482b2 100644 --- a/spec/controllers/public_body_controller_spec.rb +++ b/spec/controllers/public_body_controller_spec.rb @@ -1,6 +1,8 @@  # coding: utf-8  require File.expand_path(File.dirname(__FILE__) + '/../spec_helper') +require 'nokogiri' +  describe PublicBodyController, "when showing a body" do      render_views @@ -99,6 +101,14 @@ describe PublicBodyController, "when listing bodies" do          result      end +    it "with no fallback, should only return bodies from the current locale" do +        @english_only = make_single_language_example :en +        @spanish_only = make_single_language_example :es +        get :list, {:locale => 'es'} +        assigns[:public_bodies].include?(@english_only).should == false +        assigns[:public_bodies].include?(@spanish_only).should == true +    end +      it "if fallback is requested, should list all bodies from default locale, even when there are no translations for selected locale" do          AlaveteliConfiguration.stub!(:public_body_list_fallback_to_default_locale).and_return(true)          @english_only = make_single_language_example :en @@ -113,6 +123,14 @@ describe PublicBodyController, "when listing bodies" do          assigns[:public_bodies].include?(@spanish_only).should == true      end +    it "if fallback is requested, make sure that there are no duplicates listed" do +        AlaveteliConfiguration.stub!(:public_body_list_fallback_to_default_locale).and_return(true) +        get :list, {:locale => 'es'} +        pb_ids = assigns[:public_bodies].map { |pb| pb.id } +        unique_pb_ids = pb_ids.uniq +        pb_ids.sort.should === unique_pb_ids.sort +    end +      it 'should show public body names in the selected locale language if present' do          get :list, {:locale => 'es'}          response.should contain('El Department for Humpadinking') @@ -124,6 +142,18 @@ describe PublicBodyController, "when listing bodies" do          response.should_not contain('Internal admin authority')      end +    it 'should order on the translated name, even with the fallback' do +      # The names of each public body is in: +      #    <span class="head"><a>Public Body Name</a></span> +      # ... eo extract all of those, and check that they are ordered: +      AlaveteliConfiguration.stub!(:public_body_list_fallback_to_default_locale).and_return(true) +      get :list, {:locale => 'es'} +      parsed = Nokogiri::HTML(response.body) +      public_body_names = parsed.xpath '//span[@class="head"]/a/text()' +      public_body_names = public_body_names.map { |pb| pb.to_s } +      public_body_names.should == public_body_names.sort +    end +      it 'should show public body names in the selected locale language if present for a locale with underscores' do          AlaveteliLocalization.set_locales('he_IL en', 'en')          get :list, {:locale => 'he_IL'}  | 
