Sha256: eaec90713d6d62f6fafb1559a0eac4e3078bafd55fbf337b9d36d2df45aae4df
Contents?: true
Size: 1.9 KB
Versions: 1
Compression:
Stored size: 1.9 KB
Contents
require "spec_helper" class OneboxEngineExample include Onebox::Engine def data { foo: raw[:key], url: @url } end def raw { key: "value" } end def template %|<div class="onebox"><a href="{{url}}"></a></div>| end end describe Onebox::Engine do describe "#to_html" do it "returns the onebox wrapper" do html = OneboxEngineExample.new("foo").to_html expect(html).to include(%|class="onebox"|) end it "doesn't allow XSS injection" do html = OneboxEngineExample.new(%|http://foo.com" onscript="alert('foo')|).to_html expect(html).not_to include(%|onscript="alert('foo')|) end end describe "#record" do class OneboxEngineBar 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) 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) expect(result).to eq("new content") end end describe ".===" do 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" expect(result).to eq(true) end end describe ".matches" do it "sets @@matcher to a regular expression" do class OneboxEngineFar include Onebox::Engine matches do find "foo.com" end end regex = OneboxEngineFar.class_variable_get(:@@matcher) expect(regex).to eq(/(?:foo\.com)/i) end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
onebox-1.0.0 | spec/lib/onebox/engine_spec.rb |