lib/picolena/templates/spec/models/document_spec.rb in picolena-0.1.6 vs lib/picolena/templates/spec/models/document_spec.rb in picolena-0.1.7
- old
+ new
@@ -3,56 +3,105 @@
basic_pdf_attribute={
:dirname=>File.join(RAILS_ROOT, 'spec/test_dirs/indexed/basic'),
:basename=>'basic',
:complete_path=>File.join(RAILS_ROOT, '/spec/test_dirs/indexed/basic/basic.pdf'),
:extname=>'.pdf',
- :filename=>'basic.pdf'
+ :ext_as_sym => :pdf,
+ :filename=>'basic.pdf',
+ :size => 9380
}
describe Document do
before(:each) do
- @valid_random_doc=Document.find(:random) rescue Document.new("spec/test_dirs/indexed/basic/basic.pdf")
+ @valid_document=Document.new("spec/test_dirs/indexed/basic/basic.pdf")
end
it "should be an existing file" do
lambda {Document.new("/patapouf.txt")}.should raise_error(Errno::ENOENT)
- lambda {@valid_random_doc}.should_not raise_error
+ lambda {@valid_document}.should_not raise_error
lambda {Document.new("spec/test_dirs/not_indexed/Rakefile")}.should_not raise_error(Errno::ENOENT)
end
it "should belong to an indexed directory" do
- lambda {@valid_random_doc}.should_not raise_error
+ lambda {@valid_document}.should_not raise_error
lambda {Document.new("spec/test_dirs/not_indexed/Rakefile")}.should raise_error(ArgumentError, "required document is not in indexed directory")
end
basic_pdf_attribute.each{|attribute,expected_value|
it "should know its #{attribute}" do
- @valid_random_doc.should respond_to(attribute)
+ @valid_document.should respond_to(attribute)
@basic_pdf=Document.new('spec/test_dirs/indexed/basic/basic.pdf')
@basic_pdf.send(attribute).should == expected_value
end
}
it "should know its content" do
another_doc=Document.new("spec/test_dirs/indexed/basic/plain.txt")
another_doc.content.should == "just a content test\nin a txt file"
end
+
+ it "should know its cached content" do
+ another_doc=Document.new("spec/test_dirs/indexed/basic/plain.txt")
+ another_doc.cached.should == "just a content test\nin a txt file"
+ end
+
+ it "should know its highlighted cached content for a given query" do
+ another_doc=Document.new("spec/test_dirs/indexed/basic/plain.txt")
+ another_doc.highlighted_cache('a content test').should == "just a <<content>> <<test>>\nin a txt file"
+ end
it "should know its alias_path" do
- @valid_random_doc.should respond_to(:alias_path)
- @valid_random_doc.alias_path.starts_with?("http://picolena.devjavu.com/browser/trunk/lib/picolena/templates/spec/test_dirs/indexed").should be_true
+ @valid_document.should respond_to(:alias_path)
+ @valid_document.alias_path.starts_with?("http://picolena.devjavu.com/browser/trunk/lib/picolena/templates/spec/test_dirs/indexed").should be_true
end
+
+ it "should know its probably_unique_id" do
+ @valid_document.should respond_to(:probably_unique_id)
+ @valid_document.probably_unique_id.should =~/^[a-z]+$/
+ @valid_document.probably_unique_id.size.should == Picolena::HashLength
+ end
+
+ it "should know its modification date" do
+ @valid_document.pretty_date.class.should == String
+ @valid_document.pretty_date.should =~/^\d{4}\-\d{2}\-\d{2}$/
+ end
+
+ it "should know its modification time and returns it in a pretty way" do
+ @valid_document.should respond_to(:mtime)
+ @valid_document.mtime.should be_kind_of(Integer)
+ @valid_document.should respond_to(:pretty_mtime)
+ @valid_document.pretty_mtime.class.should == String
+ @valid_document.pretty_mtime.should =~/^\d{4}\-\d{2}\-\d{2} \d{2}:\d{2}:\d{2}$/
+ end
+
+ it "should know if its content can be extracted" do
+ @valid_document.should respond_to(:supported?)
+ @valid_document.should be_supported
+ Document.new("spec/test_dirs/indexed/others/ghjopdfg.xyz").should_not be_supported
+ end
+
+ it "should know its language when enough content is available" do
+ Document.new("spec/test_dirs/indexed/lang/goethe").language.should == "de"
+ Document.new("spec/test_dirs/indexed/lang/shakespeare").language.should == "en"
+ Document.new("spec/test_dirs/indexed/lang/lorca").language.should == "es"
+ Document.new("spec/test_dirs/indexed/lang/hugo").language.should == "fr"
+ end if Picolena::UseLanguageRecognition
+ it "should not try to guess language when file is too small" do
+ Document.new("spec/test_dirs/indexed/basic/hello.rb").language.should be_nil
+ Document.new("spec/test_dirs/indexed/README").language.should be_nil
+ end if Picolena::UseLanguageRecognition
+
it "should let finder specify its score" do
- @valid_random_doc.should respond_to(:score)
- @valid_random_doc.score.should be_nil
- @valid_random_doc.score=25
- @valid_random_doc.score.should == 25
+ @valid_document.should respond_to(:score)
+ @valid_document.score.should be_nil
+ @valid_document.score=25
+ @valid_document.score.should == 25
end
it "should let finder specify its matching content" do
- @valid_random_doc.should respond_to(:matching_content)
- @valid_random_doc.matching_content.should be_nil
- @valid_random_doc.matching_content=["thermal cooling", "heat driven cooling"]
- @valid_random_doc.matching_content.should include("thermal cooling")
+ @valid_document.should respond_to(:matching_content)
+ @valid_document.matching_content.should be_nil
+ @valid_document.matching_content=["thermal cooling", "heat driven cooling"]
+ @valid_document.matching_content.should include("thermal cooling")
end
-end
\ No newline at end of file
+end