mirror of
https://github.com/teamcapybara/capybara.git
synced 2022-11-09 12:08:07 -05:00
52 lines
948 B
Ruby
52 lines
948 B
Ruby
|
require 'spec_helper'
|
||
|
|
||
|
describe Capybara::Result do
|
||
|
let :string do
|
||
|
Capybara.string <<-STRING
|
||
|
<ul>
|
||
|
<li>Alpha</li>
|
||
|
<li>Beta</li>
|
||
|
<li>Gamma</li>
|
||
|
<li>Delta</li>
|
||
|
</ul>
|
||
|
STRING
|
||
|
end
|
||
|
|
||
|
let :result do
|
||
|
string.all '//li'
|
||
|
end
|
||
|
|
||
|
it "has a length" do
|
||
|
result.length.should == 4
|
||
|
end
|
||
|
|
||
|
it "has a first element" do
|
||
|
result.first.text == 'Alpha'
|
||
|
end
|
||
|
|
||
|
it "has a last element" do
|
||
|
result.last.text == 'Delta'
|
||
|
end
|
||
|
|
||
|
it "can return an element by its index" do
|
||
|
result.at(1).text.should == 'Beta'
|
||
|
result[2].text.should == 'Gamma'
|
||
|
end
|
||
|
|
||
|
it "can be mapped" do
|
||
|
result.map(&:text).should == %w(Alpha Beta Gamma Delta)
|
||
|
end
|
||
|
|
||
|
it "can be selected" do
|
||
|
result.select do |element|
|
||
|
element.text.include? 't'
|
||
|
end.length.should == 2
|
||
|
end
|
||
|
|
||
|
it "can be reduced" do
|
||
|
result.reduce('') do |memo, element|
|
||
|
memo += element.text[0]
|
||
|
end.should == 'ABGD'
|
||
|
end
|
||
|
end
|