This file is indexed.

/usr/lib/ruby/vendor_ruby/capybara/spec/session/fill_in_spec.rb is in ruby-capybara 2.5.0-1.

This file is owned by root:root, with mode 0o644.

The actual contents of the file can be viewed below.

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
Capybara::SpecHelper.spec "#fill_in" do
  before do
    @session.visit('/form')
  end

  it "should fill in a text field by id" do
    @session.fill_in('form_first_name', :with => 'Harry')
    @session.click_button('awesome')
    expect(extract_results(@session)['first_name']).to eq('Harry')
  end

  it "should fill in a text field by name" do
    @session.fill_in('form[last_name]', :with => 'Green')
    @session.click_button('awesome')
    expect(extract_results(@session)['last_name']).to eq('Green')
  end

  it "should fill in a text field by label without for" do
    @session.fill_in('First Name', :with => 'Harry')
    @session.click_button('awesome')
    expect(extract_results(@session)['first_name']).to eq('Harry')
  end

  it "should fill in a url field by label without for" do
    @session.fill_in('Html5 Url', :with => 'http://www.avenueq.com')
    @session.click_button('html5_submit')
    expect(extract_results(@session)['html5_url']).to eq('http://www.avenueq.com')
  end

  it "should fill in a textarea by id" do
    @session.fill_in('form_description', :with => 'Texty text')
    @session.click_button('awesome')
    expect(extract_results(@session)['description']).to eq('Texty text')
  end

  it "should fill in a textarea by label" do
    @session.fill_in('Description', :with => 'Texty text')
    @session.click_button('awesome')
    expect(extract_results(@session)['description']).to eq('Texty text')
  end

  it "should fill in a textarea by name" do
    @session.fill_in('form[description]', :with => 'Texty text')
    @session.click_button('awesome')
    expect(extract_results(@session)['description']).to eq('Texty text')
  end

  it "should fill in a password field by id" do
    @session.fill_in('form_password', :with => 'supasikrit')
    @session.click_button('awesome')
    expect(extract_results(@session)['password']).to eq('supasikrit')
  end

  it "should handle HTML in a textarea" do
    @session.fill_in('form_description', :with => 'is <strong>very</strong> secret!')
    @session.click_button('awesome')
    expect(extract_results(@session)['description']).to eq('is <strong>very</strong> secret!')
  end

  it "should handle newlines in a textarea" do
    @session.fill_in('form_description', :with => "\nSome text\n")
    @session.click_button('awesome')
    expect(extract_results(@session)['description']).to eq("\r\nSome text\r\n")
  end

  it "should fill in a field with a custom type" do
    @session.fill_in('Schmooo', :with => 'Schmooo is the game')
    @session.click_button('awesome')
    expect(extract_results(@session)['schmooo']).to eq('Schmooo is the game')
  end

  it "should fill in a field without a type" do
    @session.fill_in('Phone', :with => '+1 555 7022')
    @session.click_button('awesome')
    expect(extract_results(@session)['phone']).to eq('+1 555 7022')
  end

  it "should fill in a text field respecting its maxlength attribute" do
    @session.fill_in('Zipcode', :with => '52071350')
    @session.click_button('awesome')
    expect(extract_results(@session)['zipcode']).to eq('52071')
  end

  it "should fill in a password field by name" do
    @session.fill_in('form[password]', :with => 'supasikrit')
    @session.click_button('awesome')
    expect(extract_results(@session)['password']).to eq('supasikrit')
  end

  it "should fill in a password field by label" do
    @session.fill_in('Password', :with => 'supasikrit')
    @session.click_button('awesome')
    expect(extract_results(@session)['password']).to eq('supasikrit')
  end

  it "should fill in a password field by name" do
    @session.fill_in('form[password]', :with => 'supasikrit')
    @session.click_button('awesome')
    expect(extract_results(@session)['password']).to eq('supasikrit')
  end

  it "should throw an exception if a hash containing 'with' is not provided" do
    expect {@session.fill_in 'Name', 'ignu'}.to raise_error(RuntimeError, /with/)
  end

  it "should wait for asynchronous load", :requires => [:js] do
    @session.visit('/with_js')
    @session.click_link('Click me')
    @session.fill_in('new_field', :with => 'Testing...')
  end

  it "casts to string" do
    @session.fill_in(:'form_first_name', :with => :'Harry')
    @session.click_button('awesome')
    expect(extract_results(@session)['first_name']).to eq('Harry')
  end

  it "casts to string if field has maxlength" do
    @session.fill_in(:'form_zipcode', :with => 1234567)
    @session.click_button('awesome')
    expect(extract_results(@session)['zipcode']).to eq('12345')
  end

  context 'on a pre-populated textfield with a reformatting onchange', :requires => [:js] do
    it 'should only trigger onchange once' do
      @session.visit('/with_js')
      @session.fill_in('with_change_event', :with => 'some value')
      # click outside the field to trigger the change event
      @session.find(:css, 'body').click
      expect(@session.find(:css, '.change_event_triggered', :match => :one)).to have_text 'some value'
    end

    it 'should trigger change when clearing field' do
      @session.visit('/with_js')
      @session.fill_in('with_change_event', :with => '')
      # click outside the field to trigger the change event
      @session.find(:css, 'body').click
      expect(@session).to have_selector(:css, '.change_event_triggered', :match => :one)
    end
  end

  context "with ignore_hidden_fields" do
    before { Capybara.ignore_hidden_elements = true }
    after  { Capybara.ignore_hidden_elements = false }
    it "should not find a hidden field" do
      msg = "Unable to find field \"Super Secret\""
      expect do
        @session.fill_in('Super Secret', :with => '777')
      end.to raise_error(Capybara::ElementNotFound, msg)
    end
  end

  context "with a locator that doesn't exist" do
    it "should raise an error" do
      msg = "Unable to find field \"does not exist\""
      expect do
        @session.fill_in('does not exist', :with => 'Blah blah')
      end.to raise_error(Capybara::ElementNotFound, msg)
    end
  end

  context "on a disabled field" do
    it "should raise an error" do
      expect do
        @session.fill_in('Disabled Text Field', :with => 'Blah blah')
      end.to raise_error(Capybara::ElementNotFound)
    end
  end

  context "with :exact option" do
    it "should accept partial matches when false" do
      @session.fill_in("Explanation", :with => "Dude", :exact => false)
      @session.click_button("awesome")
      expect(extract_results(@session)["name_explanation"]).to eq("Dude")
    end

    it "should not accept partial matches when true" do
      expect do
        @session.fill_in("Explanation", :with => "Dude", :exact => true)
      end.to raise_error(Capybara::ElementNotFound)
    end
  end
end