From 3a41400d6383eca3b3c02bbbfdf1cb4fe6945d89 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9gis=20Hanol?= Date: Wed, 27 Feb 2013 03:18:23 +0100 Subject: [PATCH] formatted some tests - formatted the bbcode_spec - added 3 tests regarding the quotes - corrected a test label in the smoke test - cleaned up a bit the Guardfile --- Guardfile | 16 +- spec/javascripts/bbcode_spec.js | 371 ++++++++++++++++++-------------- spec/phantom_js/smoke_test.js | 2 +- 3 files changed, 213 insertions(+), 176 deletions(-) diff --git a/Guardfile b/Guardfile index aa49d8058d9..79946ebf4b0 100644 --- a/Guardfile +++ b/Guardfile @@ -8,7 +8,7 @@ guard :spork, wait: 120 do watch('spec/spec_helper.rb') { :rspec } end -phantom_path = File.expand_path('~/phantomjs/bin/phantomjs') +phantom_path = File.expand_path('~/phantomjs/bin/phantomjs') phantom_path = nil unless File.exists?(phantom_path) jasmine_options = {:phantomjs_bin => phantom_path} @@ -22,7 +22,8 @@ else jasmine_options[:server_timeout] = 300 end -guard 'jasmine', jasmine_options do watch(%r{spec/javascripts/spec\.js$}) { "spec/javascripts" } +guard 'jasmine', jasmine_options do + watch(%r{spec/javascripts/spec\.js$}) { "spec/javascripts" } watch(%r{spec/javascripts/.+_spec\.js$}) watch(%r{app/assets/javascripts/(.+?)\.js$}) { "spec/javascripts" } end @@ -37,8 +38,7 @@ end guard 'rspec', :focus_on_failed => true, :cli => "--drb" do watch(%r{^spec/.+_spec\.rb$}) - #watch(%r{^lib/jobs/(.+)\.rb$}) { |m| "spec/components/jobs/#{m[1]}_spec.rb" } - watch(%r{^lib/(.+)\.rb$}) { |m| "spec/components/#{m[1]}_spec.rb" } + watch(%r{^lib/(.+)\.rb$}) { |m| "spec/components/#{m[1]}_spec.rb" } watch('spec/spec_helper.rb') { "spec" } # Rails example @@ -47,10 +47,10 @@ guard 'rspec', :focus_on_failed => true, :cli => "--drb" do watch(%r{^app/controllers/(.+)_(controller)\.rb$}) { |m| "spec/#{m[2]}s/#{m[1]}_#{m[2]}_spec.rb" } watch(%r{^spec/support/(.+)\.rb$}) { "spec" } watch('app/controllers/application_controller.rb') { "spec/controllers" } - + # Capybara request specs watch(%r{^app/views/(.+)/.*\.(erb|haml)$}) { |m| "spec/requests/#{m[1]}_spec.rb" } - + end @@ -86,7 +86,7 @@ Thread.new do end end -guard :autoreload do +guard :autoreload do watch(/tmp\/refresh_browser/) watch(/\.css$/) watch(/\.sass$/) @@ -94,5 +94,3 @@ guard :autoreload do watch(/\.sass\.erb$/) watch(/\.handlebars$/) end - - diff --git a/spec/javascripts/bbcode_spec.js b/spec/javascripts/bbcode_spec.js index 1f26612901f..64a33999908 100644 --- a/spec/javascripts/bbcode_spec.js +++ b/spec/javascripts/bbcode_spec.js @@ -1,179 +1,218 @@ /*global waitsFor:true expect:true describe:true beforeEach:true it:true */ - describe("Discourse.BBCode", function() { - var format; - format = Discourse.BBCode.format; - describe('default replacer', function() { - describe("simple tags", function() { - it("bolds text", function() { - return expect(format("[b]strong[/b]")).toBe("strong"); - }); - it("italics text", function() { - return expect(format("[i]emphasis[/i]")).toBe("emphasis"); - }); - it("underlines text", function() { - return expect(format("[u]underlined[/u]")).toBe("underlined"); - }); - it("strikes-through text", function() { - return expect(format("[s]strikethrough[/s]")).toBe("strikethrough"); - }); - it("makes code into pre", function() { - return expect(format("[code]\nx++\n[/code]")).toBe("
\nx++\n
"); - }); - it("supports spoiler tags", function() { - return expect(format("[spoiler]it's a sled[/spoiler]")).toBe("it's a sled"); - }); - it("links images", function() { - return expect(format("[img]http://eviltrout.com/eviltrout.png[/img]")).toBe(""); - }); - it("supports [url] without a title", function() { - return expect(format("[url]http://bettercallsaul.com[/url]")).toBe("http://bettercallsaul.com"); - }); - return it("supports [email] without a title", function() { - return expect(format("[email]eviltrout@mailinator.com[/email]")).toBe("eviltrout@mailinator.com"); - }); + +describe("Discourse.BBCode", function() { + var format = Discourse.BBCode.format; + + describe('default replacer', function() { + + describe("simple tags", function() { + + it("bolds text", function() { + expect(format("[b]strong[/b]")).toBe("strong"); }); - describe("lists", function() { - it("creates an ul", function() { - return expect(format("[ul][li]option one[/li][/ul]")).toBe(""); - }); - return it("creates an ol", function() { - return expect(format("[ol][li]option one[/li][/ol]")).toBe("
  1. option one
"); - }); + + it("italics text", function() { + expect(format("[i]emphasis[/i]")).toBe("emphasis"); }); - describe("color", function() { - it("supports [color=] with a short hex value", function() { - return expect(format("[color=#00f]blue[/color]")).toBe("blue"); - }); - it("supports [color=] with a long hex value", function() { - return expect(format("[color=#ffff00]yellow[/color]")).toBe("yellow"); - }); - it("supports [color=] with an html color", function() { - return expect(format("[color=red]red[/color]")).toBe("red"); - }); - return it("it performs a noop on invalid input", function() { - return expect(format("[color=javascript:alert('wat')]noop[/color]")).toBe("noop"); - }); + + it("underlines text", function() { + expect(format("[u]underlined[/u]")).toBe("underlined"); }); - describe("tags with arguments", function() { - it("supports [size=]", function() { - return expect(format("[size=35]BIG[/size]")).toBe("BIG"); - }); - it("supports [url] with a title", function() { - return expect(format("[url=http://bettercallsaul.com]better call![/url]")).toBe("better call!"); - }); - return it("supports [email] with a title", function() { - return expect(format("[email=eviltrout@mailinator.com]evil trout[/email]")).toBe("evil trout"); - }); + + it("strikes-through text", function() { + expect(format("[s]strikethrough[/s]")).toBe("strikethrough"); }); - return describe("more complicated", function() { - it("can nest tags", function() { - return expect(format("[u][i]abc[/i][/u]")).toBe("abc"); - }); - return it("can bold two things on the same line", function() { - return expect(format("[b]first[/b] [b]second[/b]")).toBe("first second"); - }); + + it("makes code into pre", function() { + expect(format("[code]\nx++\n[/code]")).toBe("
\nx++\n
"); }); + + it("supports spoiler tags", function() { + expect(format("[spoiler]it's a sled[/spoiler]")).toBe("it's a sled"); + }); + + it("links images", function() { + expect(format("[img]http://eviltrout.com/eviltrout.png[/img]")).toBe(""); + }); + + it("supports [url] without a title", function() { + expect(format("[url]http://bettercallsaul.com[/url]")).toBe("http://bettercallsaul.com"); + }); + + it("supports [email] without a title", function() { + expect(format("[email]eviltrout@mailinator.com[/email]")).toBe("eviltrout@mailinator.com"); + }); + }); - return describe('email environment', function() { - describe("simple tags", function() { - it("bolds text", function() { - return expect(format("[b]strong[/b]", { - environment: 'email' - })).toBe("strong"); - }); - it("italics text", function() { - return expect(format("[i]emphasis[/i]", { - environment: 'email' - })).toBe("emphasis"); - }); - it("underlines text", function() { - return expect(format("[u]underlined[/u]", { - environment: 'email' - })).toBe("underlined"); - }); - it("strikes-through text", function() { - return expect(format("[s]strikethrough[/s]", { - environment: 'email' - })).toBe("strikethrough"); - }); - it("makes code into pre", function() { - return expect(format("[code]\nx++\n[/code]", { - environment: 'email' - })).toBe("
\nx++\n
"); - }); - it("supports spoiler tags", function() { - return expect(format("[spoiler]it's a sled[/spoiler]", { - environment: 'email' - })).toBe("it's a sled"); - }); - it("links images", function() { - return expect(format("[img]http://eviltrout.com/eviltrout.png[/img]", { - environment: 'email' - })).toBe(""); - }); - it("supports [url] without a title", function() { - return expect(format("[url]http://bettercallsaul.com[/url]", { - environment: 'email' - })).toBe("http://bettercallsaul.com"); - }); - return it("supports [email] without a title", function() { - return expect(format("[email]eviltrout@mailinator.com[/email]", { - environment: 'email' - })).toBe("eviltrout@mailinator.com"); - }); + + describe("lists", function() { + + it("creates an ul", function() { + expect(format("[ul][li]option one[/li][/ul]")).toBe(""); }); - describe("lists", function() { - it("creates an ul", function() { - return expect(format("[ul][li]option one[/li][/ul]", { - environment: 'email' - })).toBe(""); - }); - return it("creates an ol", function() { - return expect(format("[ol][li]option one[/li][/ol]", { - environment: 'email' - })).toBe("
  1. option one
"); - }); - }); - describe("color", function() { - it("supports [color=] with a short hex value", function() { - return expect(format("[color=#00f]blue[/color]", { - environment: 'email' - })).toBe("blue"); - }); - it("supports [color=] with a long hex value", function() { - return expect(format("[color=#ffff00]yellow[/color]", { - environment: 'email' - })).toBe("yellow"); - }); - it("supports [color=] with an html color", function() { - return expect(format("[color=red]red[/color]", { - environment: 'email' - })).toBe("red"); - }); - return it("it performs a noop on invalid input", function() { - return expect(format("[color=javascript:alert('wat')]noop[/color]", { - environment: 'email' - })).toBe("noop"); - }); - }); - return describe("tags with arguments", function() { - it("supports [size=]", function() { - return expect(format("[size=35]BIG[/size]", { - environment: 'email' - })).toBe("BIG"); - }); - it("supports [url] with a title", function() { - return expect(format("[url=http://bettercallsaul.com]better call![/url]", { - environment: 'email' - })).toBe("better call!"); - }); - return it("supports [email] with a title", function() { - return expect(format("[email=eviltrout@mailinator.com]evil trout[/email]", { - environment: 'email' - })).toBe("evil trout"); - }); + + it("creates an ol", function() { + expect(format("[ol][li]option one[/li][/ol]")).toBe("
  1. option one
"); }); + }); + + describe("color", function() { + + it("supports [color=] with a short hex value", function() { + expect(format("[color=#00f]blue[/color]")).toBe("blue"); + }); + + it("supports [color=] with a long hex value", function() { + expect(format("[color=#ffff00]yellow[/color]")).toBe("yellow"); + }); + + it("supports [color=] with an html color", function() { + expect(format("[color=red]red[/color]")).toBe("red"); + }); + + it("it performs a noop on invalid input", function() { + expect(format("[color=javascript:alert('wat')]noop[/color]")).toBe("noop"); + }); + + }); + + describe("tags with arguments", function() { + + it("supports [size=]", function() { + expect(format("[size=35]BIG[/size]")).toBe("BIG"); + }); + + it("supports [url] with a title", function() { + expect(format("[url=http://bettercallsaul.com]better call![/url]")).toBe("better call!"); + }); + + it("supports [email] with a title", function() { + expect(format("[email=eviltrout@mailinator.com]evil trout[/email]")).toBe("evil trout"); + }); + + }); + + describe("more complicated", function() { + + it("can nest tags", function() { + expect(format("[u][i]abc[/i][/u]")).toBe("abc"); + }); + + it("can bold two things on the same line", function() { + expect(format("[b]first[/b] [b]second[/b]")).toBe("first second"); + }); + + }); + + describe("quoting", function() { + + it("can quote", function() { + expect(format("[quote=\"eviltrout, post:1, topic:1\"]abc[/quote]", { lookupAvatar: false })).toBe("

\n

"); + }); + + it("can nest quotes", function() { + expect(format("[quote=\"eviltrout, post:1, topic:1\"]abc[quote=\"eviltrout, post:2, topic:2\"]nested[/quote][/quote]", { lookupAvatar: false })).toBe("

\n

"); + }); + + it("can handle more than one quote", function() { + expect(format("before[quote=\"eviltrout, post:1, topic:1\"]first[/quote]middle[quote=\"eviltrout, post:2, topic:2\"]second[/quote]after", { lookupAvatar: false })).toBe("before

\n

middle

\n

after"); + }); + + }); + }); + describe('email environment', function() { + describe("simple tags", function() { + + it("bolds text", function() { + expect(format("[b]strong[/b]", { environment: 'email' })).toBe("strong"); + }); + + it("italics text", function() { + expect(format("[i]emphasis[/i]", { environment: 'email' })).toBe("emphasis"); + }); + + it("underlines text", function() { + expect(format("[u]underlined[/u]", { environment: 'email' })).toBe("underlined"); + }); + + it("strikes-through text", function() { + expect(format("[s]strikethrough[/s]", { environment: 'email' })).toBe("strikethrough"); + }); + + it("makes code into pre", function() { + expect(format("[code]\nx++\n[/code]", { environment: 'email' })).toBe("

\nx++\n
"); + }); + + it("supports spoiler tags", function() { + expect(format("[spoiler]it's a sled[/spoiler]", { environment: 'email' })).toBe("it's a sled"); + }); + + it("links images", function() { + expect(format("[img]http://eviltrout.com/eviltrout.png[/img]", { environment: 'email' })).toBe(""); + }); + + it("supports [url] without a title", function() { + expect(format("[url]http://bettercallsaul.com[/url]", { environment: 'email' })).toBe("http://bettercallsaul.com"); + }); + + it("supports [email] without a title", function() { + expect(format("[email]eviltrout@mailinator.com[/email]", { environment: 'email' })).toBe("eviltrout@mailinator.com"); + }); + + }); + + describe("lists", function() { + + it("creates an ul", function() { + expect(format("[ul][li]option one[/li][/ul]", { environment: 'email' })).toBe(""); + }); + + it("creates an ol", function() { + expect(format("[ol][li]option one[/li][/ol]", { environment: 'email' })).toBe("
  1. option one
"); + }); + + }); + + describe("color", function() { + + it("supports [color=] with a short hex value", function() { + expect(format("[color=#00f]blue[/color]", { environment: 'email' })).toBe("blue"); + }); + + it("supports [color=] with a long hex value", function() { + expect(format("[color=#ffff00]yellow[/color]", { environment: 'email' })).toBe("yellow"); + }); + + it("supports [color=] with an html color", function() { + expect(format("[color=red]red[/color]", { environment: 'email' })).toBe("red"); + }); + + it("it performs a noop on invalid input", function() { + expect(format("[color=javascript:alert('wat')]noop[/color]", { environment: 'email' })).toBe("noop"); + }); + + }); + + describe("tags with arguments", function() { + + it("supports [size=]", function() { + expect(format("[size=35]BIG[/size]", { environment: 'email' })).toBe("BIG"); + }); + + it("supports [url] with a title", function() { + expect(format("[url=http://bettercallsaul.com]better call![/url]", { environment: 'email' })).toBe("better call!"); + }); + + it("supports [email] with a title", function() { + expect(format("[email=eviltrout@mailinator.com]evil trout[/email]", { environment: 'email' })).toBe("evil trout"); + }); + + }); + + }); + +}); diff --git a/spec/phantom_js/smoke_test.js b/spec/phantom_js/smoke_test.js index 05fe19e52f9..d44d64b73cf 100644 --- a/spec/phantom_js/smoke_test.js +++ b/spec/phantom_js/smoke_test.js @@ -91,7 +91,7 @@ var run = function(){ page.runTests = function(){ - test("more than one topic shows up", function() { + test("at least one topic shows up", function() { return $('#topic-list tbody tr').length > 0; });