/*global waitsFor:true expect:true describe:true beforeEach:true it:true */ describe("Discourse.Composer", function() { describe("replyLength", function() { it("returns the length of a basic reply", function() { var composer = Discourse.Composer.create({ reply: "basic reply" }); expect(composer.get('replyLength')).toBe(11); }); it("trims whitespaces", function() { var composer = Discourse.Composer.create({ reply: " \nbasic reply\t" }); expect(composer.get('replyLength')).toBe(11); }); it("count only significant whitespaces", function() { // this will count the '\n' only once var composer = Discourse.Composer.create({ reply: "ba sic\n\nreply" }); expect(composer.get('replyLength')).toBe(12); }); it("removes quotes", function() { var composer = Discourse.Composer.create({ reply: "1[quote=]not counted[/quote]2[quote=]at all[/quote]3" }); expect(composer.get('replyLength')).toBe(3); }); it("handles nested quotes correctly", function() { var composer = Discourse.Composer.create({ reply: "1[quote=]not[quote=]counted[/quote]yay[/quote]2" }); expect(composer.get('replyLength')).toBe(2); }); }); });