require File.dirname(__FILE__) + "/../../../spec_helper.rb"
describe RightRails::Helpers::Basic do
include RightRails::Helpers::Basic
include ActionView::Helpers::TagHelper
describe ".rightjs_scripts" do
it "should build the basic javascript include tags" do
should_receive(:javascript_include_tag).with(*%w{right right/rails})
rightjs_scripts
end
it "should respect the options hash at the end" do
should_receive(:javascript_include_tag).with('right', 'right/rails', :cache => 'rightjs')
rightjs_scripts :cache => 'rightjs'
end
it "should catch the optional modules" do
rightjs_require_module *%w{lightbox dnd}
should_receive(:javascript_include_tag).with(*%w{right right/rails right/lightbox right/dnd})
rightjs_scripts
end
it "should let to specify the modules as arguments" do
should_receive(:javascript_include_tag).with(*%w{right right/rails right/lightbox right/dnd})
rightjs_scripts :lightbox, :dnd
end
it "should load internationalization modules if defined" do
should_receive(:javascript_include_tag).with(*%w{right right/rails right/i18n/ru})
I18n.locale = 'ru'
File.should_receive(:exists?).with("rails-root/public/javascripts/right/i18n/ru.js").and_return(true)
rightjs_scripts
end
it "should not include non-existing locales" do
should_receive(:javascript_include_tag).with(*%w{right right/rails})
I18n.locale = 'some-weird-stuff'
File.should_receive(:exists?).with("rails-root/public/javascripts/right/i18n/some-weird-stuff.js").and_return(false)
rightjs_scripts
end
it "should use the source scripts in development mode" do
RightRails::Config.env = 'development'
should_receive(:javascript_include_tag).with(*%w{right-src right/rails-src})
rightjs_scripts
RightRails::Config.reset!
end
end
describe ".rjs" do
it "should build a script-generator for the rjs method" do
rjs.should be_a(RightRails::JavaScriptGenerator)
end
it "should generate scripts with rjs one-liners" do
rjs.boo.boo.boo.to_s.should == 'boo().boo().boo()'
end
it "should generate scripts with rjs blocks" do
rjs do |page|
page.boo.boo.boo
end.to_s.should == 'boo().boo().boo();'
end
end
describe ".rjs_tag" do
def javascript_tag(rjs)
"#{rjs}"
end
it "should generate a proper javascript tag construction" do
should_receive(:rjs).and_return('some-stuff')
rjs_tag.to_s.should == 'some-stuff'
end
end
describe ".update_page" do
it "should bypass the blocks into the 'rjs' method" do
block = lambda{ }
should_receive(:rjs).with(&block).and_return('result')
update_page(&block).should == 'result'
end
end
end