Sha256: 9a2f0554f4fadd82ccd317e97758da700a275c7bb0c73e5562b980b04381a92a

Contents?: true

Size: 1.96 KB

Versions: 3

Compression:

Stored size: 1.96 KB

Contents

# frozen_string_literal: true

require_relative '../unit_helper'

module Watir
  module Locators
    class Anchor
      describe SelectorBuilder do
        include LocatorSpecHelper

        let(:selector_builder) { described_class.new(attributes, query_scope) }

        describe '#build' do
          it 'without only tag name' do
            selector = {tag_name: 'a'}
            built = {xpath: ".//*[local-name()='a']"}

            expect(selector_builder.build(selector)).to eq built
          end

          it 'converts visible_text String to link_text' do
            selector = {tag_name: 'a', visible_text: 'Foo'}
            built = {link_text: 'Foo'}

            expect(selector_builder.build(selector)).to eq built
          end

          it 'converts visible_text Regexp to partial_link_text' do
            selector = {tag_name: 'a', visible_text: /Foo/}
            built = {partial_link_text: 'Foo'}

            expect(selector_builder.build(selector)).to eq built
          end

          it 'does not convert visible_text with casefold Regexp to partial_link_text' do
            selector = {tag_name: 'a', visible_text: /partial text/i}
            built = {xpath: ".//*[local-name()='a']", visible_text: /partial text/i}

            expect(selector_builder.build(selector)).to eq built
          end

          it 'does not convert :visible_text with String and other locators' do
            selector = {tag_name: 'a', visible_text: 'Foo', id: 'Foo'}
            built = {xpath: ".//*[local-name()='a'][@id='Foo']", visible_text: 'Foo'}

            expect(selector_builder.build(selector)).to eq built
          end

          it 'does not convert :visible_text with Regexp and other locators' do
            selector = {tag_name: 'a', visible_text: /Foo/, id: 'Foo'}
            built = {xpath: ".//*[local-name()='a'][@id='Foo']", visible_text: /Foo/}

            expect(selector_builder.build(selector)).to eq built
          end
        end
      end
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
watir-7.3.0 spec/unit/selector_builder/anchor_spec.rb
watir-7.2.2 spec/unit/selector_builder/anchor_spec.rb
watir-7.2.1 spec/unit/selector_builder/anchor_spec.rb