Sha256: 8ebc065571fb73dd373cb5673f794fa36545229544eb39f8b7270f123ae92a6c

Contents?: true

Size: 1.67 KB

Versions: 1

Compression:

Stored size: 1.67 KB

Contents

require 'test_helper'

class ArticleTest < ActiveSupport::TestCase

  context "for sunspot" do

    should "create valid article" do
      assert_difference('Article.count') do
        article = Article.make
        assert article.valid?
      end
    end

    should "create invalid article, the URL is invalid" do
      article = Article.make_unsaved(:url => Sham.incorrect_url)
      assert !article.valid?
    end

    should "create duplicate article, should fail as the guid is the same" do
      article = Article.make
      article_duplicate = Article.make_unsaved(:guid => article.guid)
      assert !article_duplicate.valid?
    end

    should "modify valid article, should fail when the URL changed to invalid" do
      article = Article.make
      article.url = Sham.incorrect_url
      assert !article.valid?
    end

    context "on indexing and searching central-european characters" do
      setup do
        Sunspot.remove_all!
        10.times { Article.make }
        [:accent_in_title, :accent_in_summary, :accent_in_body].each { |i| Article.make(i) }
        Sunspot.commit
      end
      should "find articles with accents" do
        search = Sunspot.search(Article) { keywords Sham.accented_word }
        assert_equal 3, search.results.count
      end
      should "find articles with no accents" do
        search = Sunspot.search(Article) { keywords Sham.unaccented_word }
        assert_equal 3, search.results.count
      end
    end

    context "on indexing characters prohibited in XML documents" do
      setup { Sunspot.remove_all! }
      should "not raise expcetion" do
        assert_nothing_raised { Article.make(:with_corrupt_xml_chars) }
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
solarsearch-0.0.6 test/unit/article_test.rb