diaspora/spec/javascripts/app/views/oembed_view_spec.js
2012-10-03 19:05:17 +02:00

56 lines
No EOL
1.6 KiB
JavaScript

describe("app.views.OEmbed", function(){
beforeEach(function(){
this.statusMessage = factory.statusMessage({
"o_embed_cache":{
"data":{
"html":"some html",
"thumbnail_url": "//example.com/thumb.jpg"
}
}
});
this.view = new app.views.OEmbed({model : this.statusMessage})
});
describe("rendering", function(){
context("with thumb", function() {
it("shows the thumb with overlay", function(){
this.view.render();
expect(this.view.$el.html()).toContain("example.com/thumb");
expect(this.view.$el.html()).toContain("video-overlay");
});
it("shows the oembed html when clicking the thumb", function() {
this.view.render();
this.view.$('.thumb').click();
_.defer(function() {
expect(this.view.$el.html()).toContain("some html");
});
});
});
context("no thumb", function() {
beforeEach(function(){
this.statusMessage.set({"o_embed_cache" : {"data": {"html": "some html"}}});
});
it("provides oembed html from the model response", function(){
this.view.render()
expect(this.view.$el.html()).toContain("some html")
});
});
});
describe("presenter", function(){
it("provides oembed html from the model", function(){
expect(this.view.presenter().o_embed_html).toContain("some html")
});
it("does not provide oembed html from the model response if none is present", function(){
this.statusMessage.set({"o_embed_cache" : null})
expect(this.view.presenter().o_embed_html).toBe("");
});
});
});