not_to have_ancestor(:css, '#footer')
    end

    it 'drops illegal fragments when using gumbo' do
      skip 'libxml is less strict than Gumbo' unless Nokogiri.respond_to?(:HTML5)
      described_class.use_html5_parsing = true
      expect(described_class.string('<td>1</td>')).not_to have_css('td')
    end

    it 'can disable use of HTML5 parsing' do
      skip "Test doesn't make sense unlesss HTML5 parsing is loaded (Nokogumbo or Nokogiri >= 1.12.0)" unless Nokogiri.respond_to?(:HTML5)
      described_class.use_html5_parsing = false
      expect(described_class.string('<td>1</td>')).to have_css('td')
    end

    describe '#title' do
      it 'returns the page title' do
        expect(string.title).to eq('simple_node')
      end
    end

    describe '#has_title?' do
      it 'returns whether the page has the given title' do
        expect(string.has_title?('simple_node')).to be true
        expect(string.has_title?('monkey')).to be false
      end

      it 'allows regexp matches' do
        expect(string.has_title?(/s[a-z]+_node/)).to be true
        expect(string.has_title?(/monkey/)).to be false
      end
    end

    describe '#has_no_title?' do
      it 'returns whether the page does not have the given title' do
        expect(string.has_no_title?('simple_node')).to be false
        expect(string.has_no_title?('monkey')).to be true
      end

      it 'allows regexp matches' do
        expect(string.has_no_title?(/s[a-z]+_node/)).to be false
        expect(string.has_no_title?(/monkey/)).to be true
      end
    end
  end
end
