Skip to content
Extraits de code Groupes Projets
application_controller_spec.rb 2,46 ko
Newer Older
  • Learn to ignore specific revisions
  • #   Copyright (c) 2010-2012, Diaspora Inc.  This file is
    
    #   licensed under the Affero General Public License version 3 or later.  See
    #   the COPYRIGHT file.
    
    
    require 'spec_helper'
    
    describe ApplicationController do
      controller do
        def index
    
    Jonne Haß's avatar
    Jonne Haß a validé
      describe '#set_diaspora_headers' do
        it 'sets the version header' do
          get :index
          response.headers['X-Diaspora-Version'].should include AppConfig.version.number.get
        end
        
    
        context 'with git info' do
          before do
    
    Jonne Haß's avatar
    Jonne Haß a validé
            AppConfig.stub(:git_available?).and_return(true)
            AppConfig.stub(:git_update).and_return('yesterday')
            AppConfig.stub(:git_revision).and_return('02395')
    
    Jonne Haß's avatar
    Jonne Haß a validé
          it 'sets the git header' do
    
            get :index
            response.headers['X-Git-Update'].should == 'yesterday'
            response.headers['X-Git-Revision'].should == '02395'
          end
        end
      end
    
    
      describe '#mobile_switch' do
        it 'sets the format to :mobile' do
          request.format = :html
          session[:mobile_view] = true
          get :index
          request.format.mobile?.should be_true
        end
    
        it 'uses :html for :tablets' do
          request.format = :tablet
          session[:tablet_view] = true
          get :index
          request.format.html?.should be_true
        end
    
        it "doesn't mess up other formats, like json" do
          get :index, :format => 'json'
          request.format.json?.should be_true
        end
    
        it "doesn't mess up other formats, like xml, even with :mobile session" do
          session[:mobile_view] = true
          get :index, :format => 'xml'
          request.format.xml?.should be_true
        end
      end
    
    
      describe '#tags' do
        before do
          @tag = ActsAsTaggableOn::Tag.create!(:name => "partytimeexcellent")
          TagFollowing.create!(:tag => @tag, :user => alice)
        end
    
        it 'queries current_users tag if there are tag_followings' do
          @controller.send(:tags).should == [@tag]
        end
    
        it 'does not query twice' do
          User.any_instance.should_receive(:followed_tags).once.and_return([@tag])
          @controller.send(:tags)
          @controller.send(:tags)
        end
      end
    
      describe "#after_sign_in_path_for" do
        context 'getting started true on user' do
          before do
            alice.update_attribute(:getting_started, true)
          end
    
          it "redirects to getting started if the user has getting started set to true" do
            @controller.send(:after_sign_in_path_for, alice).should == getting_started_path
          end
        end
      end