Sha256: 3553a25d9bb7fada922f8fe09140074d4363ef795de8d268834b85512f40a10c

Contents?: true

Size: 1.99 KB

Versions: 10

Compression:

Stored size: 1.99 KB

Contents

require 'spec_helper'

describe Arachni::BrowserCluster::Jobs::ResourceExploration::EventTrigger do
    before do
        @cluster = Arachni::BrowserCluster.new

        browser = Arachni::Browser.new
        browser.load url

        browser.each_element_with_events { |element, _| @element = element }
        browser.shutdown
    end

    let(:url) do
        Arachni::Utilities.normalize_url( web_server_url_for( :event_trigger ) )
    end
    let(:event) { :click }
    let(:element) { @element }

    after do
        @cluster.shutdown
    end

    def test( job )
        pages = []

        @cluster.queue( job ) do |result|
            result.should be_kind_of described_class::Result
            pages << result.page
        end
        @cluster.wait

        pages.size.should == 2

        page = pages.last
        page.dom.transitions.last.event.should == event
        Nokogiri::HTML( page.body ).xpath("//div[@id='my-div']").first.to_s.should ==
            '<div id="my-div"><a href="#3">My link</a></div>'
    end

    context 'when the resource is a' do
        context String do
            it 'loads the URL and triggers the given event on the given element' do
                test described_class.new( resource: url, event: event, element: element )
            end
        end

        context Arachni::HTTP::Response do
            it 'loads it and triggers the given event on the given element' do
                test described_class.new(
                         resource: Arachni::HTTP::Client.get( url, mode: :sync ),
                         event:    event,
                         element:  element
                     )
            end
        end

        context Arachni::Page do
            it 'loads it and triggers the given event on the given element' do
                test described_class.new(
                    resource: Arachni::Page.from_url( url ),
                    event:    event,
                    element:  element
                )
            end
        end
    end
end

Version data entries

10 entries across 10 versions & 1 rubygems

Version Path
arachni-1.2.1 spec/arachni/browser_cluster/jobs/resource_exploration/event_trigger_spec.rb
arachni-1.2 spec/arachni/browser_cluster/jobs/resource_exploration/event_trigger_spec.rb
arachni-1.1 spec/arachni/browser_cluster/jobs/resource_exploration/event_trigger_spec.rb
arachni-1.0.6 spec/arachni/browser_cluster/jobs/resource_exploration/event_trigger_spec.rb
arachni-1.0.5 spec/arachni/browser_cluster/jobs/resource_exploration/event_trigger_spec.rb
arachni-1.0.4 spec/arachni/browser_cluster/jobs/resource_exploration/event_trigger_spec.rb
arachni-1.0.3 spec/arachni/browser_cluster/jobs/resource_exploration/event_trigger_spec.rb
arachni-1.0.2 spec/arachni/browser_cluster/jobs/resource_exploration/event_trigger_spec.rb
arachni-1.0.1 spec/arachni/browser_cluster/jobs/resource_exploration/event_trigger_spec.rb
arachni-1.0 spec/arachni/browser_cluster/jobs/resource_exploration/event_trigger_spec.rb