Sha256: af8e702aa10c4fa281cd5ff9f55676e7803751479b9877b2adc810183901791e

Contents?: true

Size: 1.98 KB

Versions: 22

Compression:

Stored size: 1.98 KB

Contents

require File.dirname(__FILE__) + '/../../../spec_helper'

describe "have_text" do
  

  it "should have a helpful description" do
    matcher = have_text("foo bar")
    matcher.description.should == 'have text "foo bar"'
  end

  describe "where target is a Regexp" do
    it 'should should match submitted text using a regexp' do
      matcher = have_text(/fo*/)
      matcher.matches?('foo').should be_true
      matcher.matches?('bar').should be_nil
    end
  end
  
  describe "where target is a String" do
    it 'should match submitted text using a string' do
      matcher = have_text('foo')
      matcher.matches?('foo').should be_true
      matcher.matches?('foo bar').should be_false
    end
  end
  
end

describe "have_text",
  :type => :controller do
  ['isolation','integration'].each do |mode|
    if mode == 'integration'
      integrate_views
    end

    describe "where target is a response (in #{mode} mode)" do
      controller_name :render_spec

      it "should pass with exactly matching text" do
        post 'text_action'
        response.should have_text("this is the text for this action")
      end

      it "should pass with matching text (using Regexp)" do
        post 'text_action'
        response.should have_text(/is the text/)
      end

      it "should fail with matching text" do
        post 'text_action'
        lambda {
          response.should have_text("this is NOT the text for this action")
        }.should fail_with("expected \"this is NOT the text for this action\", got \"this is the text for this action\"")
      end

      it "should fail when a template is rendered" do
        post 'some_action'
        lambda {
          response.should have_text("this is the text for this action")
        }.should fail_with(/expected \"this is the text for this action\", got .*/)
      end
      
      it "should pass using should_not with incorrect text" do
        post 'text_action'
        response.should_not have_text("the accordian guy")
      end
    end
  end
end

Version data entries

22 entries across 22 versions & 4 rubygems

Version Path
cavalle-rspec-rails-1.2.2.0.1 spec/spec/rails/matchers/have_text_spec.rb
cavalle-rspec-rails-1.2.2.0.2 spec/spec/rails/matchers/have_text_spec.rb
cavalle-rspec-rails-1.2.3.1 spec/spec/rails/matchers/have_text_spec.rb
cavalle-rspec-rails-1.2.4.0.1 spec/spec/rails/matchers/have_text_spec.rb
dchelimsky-rspec-rails-1.1.99.1 spec/spec/rails/matchers/have_text_spec.rb
dchelimsky-rspec-rails-1.1.99.13 spec/spec/rails/matchers/have_text_spec.rb
dchelimsky-rspec-rails-1.1.99.2 spec/spec/rails/matchers/have_text_spec.rb
dchelimsky-rspec-rails-1.1.99.3 spec/spec/rails/matchers/have_text_spec.rb
dchelimsky-rspec-rails-1.1.99.4 spec/spec/rails/matchers/have_text_spec.rb
dchelimsky-rspec-rails-1.1.99.5 spec/spec/rails/matchers/have_text_spec.rb
dchelimsky-rspec-rails-1.1.99.6 spec/spec/rails/matchers/have_text_spec.rb
dchelimsky-rspec-rails-1.1.99.7 spec/spec/rails/matchers/have_text_spec.rb
dchelimsky-rspec-rails-1.1.99.8 spec/spec/rails/matchers/have_text_spec.rb
dchelimsky-rspec-rails-1.1.99.9 spec/spec/rails/matchers/have_text_spec.rb
mcmire-rspec-rails-1.1.99.9 spec/spec/rails/matchers/have_text_spec.rb
rspec-rails-1.2.0 spec/spec/rails/matchers/have_text_spec.rb
rspec-rails-1.2.1 spec/spec/rails/matchers/have_text_spec.rb
rspec-rails-1.2.5 spec/spec/rails/matchers/have_text_spec.rb
rspec-rails-1.2.4 spec/spec/rails/matchers/have_text_spec.rb
rspec-rails-1.2.6 spec/spec/rails/matchers/have_text_spec.rb