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("- 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("- 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("- 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
\nmiddle
\nafter");
+ });
+
+ });
+
});
+ 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("- 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;
});