Sha256: fdd6d11514c7eb3140af6055bd80c7bbdadc650b22e5c89d7148e71496976148

Contents?: true

Size: 1.63 KB

Versions: 8

Compression:

Stored size: 1.63 KB

Contents

require 'spec_helper'
require 'druid/javascript/jquery'

class TestClass
  include Druid::JavascriptFrameworkFacade
end

describe Druid::JavascriptFrameworkFacade do
  let(:facade) { Druid::JavascriptFrameworkFacade }

  it "should allow the selection of a javascript framework" do
    facade.framework = :jquery
    expect(facade.framework).to eql :jquery
  end

  it "should register the jQuery script builder" do
    facade.framework = :jquery
    expect(facade.script_builder).to eql Druid::Javascript::JQuery
  end

  it "should return script for pending requests in jQuery" do
    facade.framework = :jquery
    expect(facade.pending_requests).to eql 'return jQuery.active'
  end

  it "should register the Prototype script builder" do
    facade.framework = :prototype
    expect(facade.script_builder).to eql Druid::Javascript::Prototype
  end

  it "should return script for pending requests in Prototype" do
    facade.framework = :prototype
    expect(facade.pending_requests).to eql "return Ajax.activeRequestCount"
  end

  it "should not allow you to set the framework to one it does not know about" do
    expect{ facade.framework = :blah }.to raise_error
  end

  it "should allow you to add a new javascript framework" do
    module GoodFake
      def self.pending_requests
        "fake"
      end
    end

    facade.add_framework(:blah, GoodFake)
    facade.framework = :blah
    expect(facade.pending_requests).to eql "fake"
  end

  it "should not allow you to add a new javascript framework that is invalid" do
    module BadFake
      def self.blah
      end
    end
    expect{ facade.add_framework(:blah, BadFake) }.to raise_error
  end
end

Version data entries

8 entries across 8 versions & 1 rubygems

Version Path
druid-ts-1.2.0 spec/druid/javascript_framework_facade_spec.rb
druid-ts-1.1.8 spec/druid/javascript_framework_facade_spec.rb
druid-ts-1.1.7 spec/druid/javascript_framework_facade_spec.rb
druid-ts-1.1.6 spec/druid/javascript_framework_facade_spec.rb
druid-ts-1.1.5 spec/druid/javascript_framework_facade_spec.rb
druid-ts-1.1.4 spec/druid/javascript_framework_facade_spec.rb
druid-ts-1.1.3 spec/druid/javascript_framework_facade_spec.rb
druid-ts-1.1.2 spec/druid/javascript_framework_facade_spec.rb