Sha256: 499306aef38fc0fe53d7ba5a8a9578218b48208a7ca5aadaf8f332a9015ae74c

Contents?: true

Size: 1.21 KB

Versions: 1

Compression:

Stored size: 1.21 KB

Contents

# frozen_string_literal: true

module GenericTest
  # Represents a web page state at a particular point of time
  class Page
    # @return [Array] List of links
    attr_accessor :links
    # @return [Array] List of links that include domain being tested
    attr_accessor :internal_links
    # @return [Array] List of emails
    attr_accessor :emails
    attr_accessor :url
    attr_accessor :html
    attr_accessor :text
    attr_accessor :title

    # Store state of page when it is loaded
    # @param [Watir::Browser] browser Watir browser
    def initialize(browser)
      self.emails, self.links = browser.links.partition do |link|
        link.href.start_with?('mailto:')
      end
      links.reject! { |link| link.href.empty? || link.href.start_with?('javascript:') || link.href.include?('tel:') }
      emails.collect! { |link| link.href.split(':').last }
      self.internal_links = links.filter do |link|
        link.href.include? ENV["PAGE_URL"]  
      end.collect { |link| link.href  }.uniq
      self.url = browser.url
      self.html = browser.html
      self.text = browser.text
      self.title = browser.title
      puts "Found #{links.count} links, #{emails.count} emails at #{url} (#{title})"
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
generic_test-0.3.0 lib/generic_test/page.rb