Implement the jquery_include_tag helper, which is used in several views but was not implemented in the code. This helper attempts to load jQuery from the Google CDN (matching the version of the vendored jquery.js in jquery-rails), falling back to the vendored copy if the google CDN fails. The helper also loads jquery_ujs.js from jquery-rails. A jquery_cdn setting is added to application.yml to enable or disable serving jQuery from the Google CDN (for those podmins who would rather not use Google's services). Update app/views/application.html.haml to use the jquery_include_tag helper since it was the only view that was including the vendored copy of jquery directly with jquery_include_tag.
82 lines
1.9 KiB
Ruby
82 lines
1.9 KiB
Ruby
# Copyright (c) 2010-2011, Diaspora Inc. This file is
|
|
# licensed under the Affero General Public License version 3 or later. See
|
|
# the COPYRIGHT file.
|
|
|
|
require 'spec_helper'
|
|
|
|
describe ApplicationHelper do
|
|
before do
|
|
@user = alice
|
|
@person = Factory(:person)
|
|
end
|
|
|
|
describe "#contacts_link" do
|
|
before do
|
|
def current_user
|
|
@current_user
|
|
end
|
|
end
|
|
|
|
it 'links to community spotlight' do
|
|
@current_user = Factory(:user)
|
|
contacts_link.should == community_spotlight_path
|
|
end
|
|
|
|
it 'links to contacts#index' do
|
|
@current_user = alice
|
|
contacts_link.should == contacts_path
|
|
end
|
|
end
|
|
|
|
describe "#all_services_connected?" do
|
|
before do
|
|
AppConfig[:configured_services] = [1, 2, 3]
|
|
|
|
def current_user
|
|
@current_user
|
|
end
|
|
@current_user = alice
|
|
end
|
|
|
|
it 'returns true if all networks are connected' do
|
|
3.times { |t| @current_user.services << Factory.build(:service) }
|
|
all_services_connected?.should be_true
|
|
end
|
|
|
|
it 'returns false if not all networks are connected' do
|
|
@current_user.services.delete_all
|
|
all_services_connected?.should be_false
|
|
end
|
|
end
|
|
|
|
describe "#jquery_include_tag" do
|
|
describe "with google cdn" do
|
|
before do
|
|
AppConfig[:jquery_cdn] = true
|
|
end
|
|
|
|
it 'inclues jquery.js from google cdn' do
|
|
jquery_include_tag.should match(/googleapis\.com/)
|
|
end
|
|
|
|
it 'falls back to asset pipeline on cdn failure' do
|
|
jquery_include_tag.should match(/document\.write/)
|
|
end
|
|
end
|
|
|
|
describe "without google cdn" do
|
|
before do
|
|
AppConfig[:jquery_cdn] = false
|
|
end
|
|
|
|
it 'includes jquery.js from asset pipeline' do
|
|
jquery_include_tag.should match(/jquery\.js/)
|
|
jquery_include_tag.should_not match(/googleapis\.com/)
|
|
end
|
|
end
|
|
|
|
it 'inclues jquery_ujs.js' do
|
|
jquery_include_tag.should match(/jquery_ujs\.js/)
|
|
end
|
|
end
|
|
end
|