spec/lib/onebox/engine_spec.rb in onebox-1.0.1 vs spec/lib/onebox/engine_spec.rb in onebox-1.1.0
- old
+ new
@@ -9,12 +9,14 @@
def raw
{ key: "value" }
end
- def template
- %|<div class="onebox"><a href="{{url}}"></a></div>|
+ def view
+ @view.tap do |layout|
+ layout.view.template = %|<div class="onebox"><a href="{{url}}"></a></div>|
+ end
end
end
describe Onebox::Engine do
describe "#to_html" do
@@ -28,61 +30,70 @@
expect(html).not_to include(%|onscript="alert('foo')|)
end
end
describe "#record" do
- class OneboxEngineBar
+ class OneboxEngineRecord
include Onebox::Engine
def data
"new content"
end
end
it "returns cached value for given url if its url is already in cache" do
cache = { "http://example.com" => "old content" }
- result = OneboxEngineBar.new("http://example.com", cache).send(:record)
+ result = OneboxEngineRecord.new("http://example.com", cache).send(:record)
expect(result).to eq("old content")
end
it "stores cache value for given url if cache key doesn't exist" do
cache = { "http://example.com1" => "old content" }
- result = OneboxEngineBar.new("http://example.com", cache).send(:record)
+ result = OneboxEngineRecord.new("http://example.com", cache).send(:record)
expect(result).to eq("new content")
end
end
- describe "#template_path" do
- it "returns file path for onebox template" do
- class OneboxEngineVoo
- include Onebox::Engine
- end
- result = OneboxEngineVoo.new("http://amazon.com").send(:template_path)
- expect(result).to eq("/home/jzeta/Projects/rgsoc/onebox/templates/enginevoo.handlebars")
- end
- end
-
describe ".===" do
+ class OneboxEngineTripleEqual
+ include Onebox::Engine
+ @@matcher = /example/
+ end
it "returns true if argument matches the matcher" do
- class OneboxEngineFoo
- include Onebox::Engine
- @@matcher = /example/
- end
- result = OneboxEngineFoo === "http://www.example.com/product/5?var=foo&bar=5"
+ result = OneboxEngineTripleEqual === "http://www.example.com/product/5?var=foo&bar=5"
expect(result).to eq(true)
end
end
describe ".matches" do
+ class OneboxEngineMatches
+ include Onebox::Engine
+
+ matches do
+ find "foo.com"
+ end
+ end
+
it "sets @@matcher to a regular expression" do
- class OneboxEngineFar
- include Onebox::Engine
+ regex = OneboxEngineMatches.class_variable_get(:@@matcher)
+ expect(regex).to be_a(Regexp)
+ end
+ end
- matches do
- find "foo.com"
- end
+ describe ".template_name" do
+ module ScopeForTemplateName
+ class TemplateNameOnebox
+ include Onebox::Engine
end
- regex = OneboxEngineFar.class_variable_get(:@@matcher)
- expect(regex).to eq(/(?:foo\.com)/i)
+ end
+
+ let(:template_name) { ScopeForTemplateName::TemplateNameOnebox.template_name }
+
+ it "should not include the scope" do
+ expect(template_name).not_to include("ScopeForTemplateName", "scopefortemplatename")
+ end
+
+ it "should not include the word Onebox" do
+ expect(template_name).not_to include("onebox", "Onebox")
end
end
end