Migrating testcases to ScalaTest from Specs2

This commit is contained in:
Naoki Takezoe
2016-02-02 00:36:08 +09:00
parent d58ed55c3a
commit bcc05f021c
5 changed files with 110 additions and 106 deletions

View File

@@ -43,6 +43,7 @@ libraryDependencies ++= Seq(
"org.eclipse.jetty" % "jetty-webapp" % JettyVersion % "provided", "org.eclipse.jetty" % "jetty-webapp" % JettyVersion % "provided",
"javax.servlet" % "javax.servlet-api" % "3.1.0" % "provided", "javax.servlet" % "javax.servlet-api" % "3.1.0" % "provided",
"junit" % "junit" % "4.12" % "test", "junit" % "junit" % "4.12" % "test",
"org.scalatra" %% "scalatra-scalatest" % ScalatraVersion % "test",
"org.scalatra" %% "scalatra-specs2" % ScalatraVersion % "test", "org.scalatra" %% "scalatra-specs2" % ScalatraVersion % "test",
"org.specs2" %% "specs2-junit" % "3.6.6" % "test" "org.specs2" %% "specs2-junit" % "3.6.6" % "test"
) )

View File

@@ -1,15 +1,16 @@
package gitbucket.core.util package gitbucket.core.util
import org.specs2.mutable._ import org.scalatest.FunSpec
class DirectorySpec extends FunSpec {
class DirectorySpec extends Specification { describe("GitBucketHome"){
"GitBucketHome" should { it("should set under target in test scope"){
"set under target in test scope" in { assert(Directory.GitBucketHome === new java.io.File("target/gitbucket_home_for_test").getAbsolutePath)
Directory.GitBucketHome mustEqual new java.io.File("target/gitbucket_home_for_test").getAbsolutePath
}
"exists" in {
new java.io.File(Directory.GitBucketHome).exists
} }
} }
// test("GitBucketHome should exists"){
// new java.io.File(Directory.GitBucketHome).exists
// }
} }

View File

@@ -1,103 +1,104 @@
package gitbucket.core.util package gitbucket.core.util
import org.specs2.mutable._
import GitSpecUtil._ import GitSpecUtil._
import org.scalatest.FunSuite
class JGitUtilSpec extends Specification { class JGitUtilSpec extends FunSuite {
"getFileList(git: Git, revision: String, path)" should { test("getFileList(git: Git, revision: String, path)"){
withTestRepository { git => withTestRepository { git =>
def list(branch: String, path: String) = def list(branch: String, path: String) =
JGitUtil.getFileList(git, branch, path).map(finfo => (finfo.name, finfo.message, finfo.isDirectory)) JGitUtil.getFileList(git, branch, path).map(finfo => (finfo.name, finfo.message, finfo.isDirectory))
list("master", ".") mustEqual Nil assert(list("master", ".") === Nil)
list("master", "dir/subdir") mustEqual Nil assert(list("master", "dir/subdir") === Nil)
list("branch", ".") mustEqual Nil assert(list("branch", ".") === Nil)
list("branch", "dir/subdir") mustEqual Nil assert(list("branch", "dir/subdir") === Nil)
createFile(git, "master", "README.md", "body1", message = "commit1") createFile(git, "master", "README.md", "body1", message = "commit1")
list("master", ".") mustEqual List(("README.md", "commit1", false)) assert(list("master", ".") === List(("README.md", "commit1", false)))
list("master", "dir/subdir") mustEqual Nil assert(list("master", "dir/subdir") === Nil)
list("branch", ".") mustEqual Nil assert(list("branch", ".") === Nil)
list("branch", "dir/subdir") mustEqual Nil assert(list("branch", "dir/subdir") === Nil)
createFile(git, "master", "README.md", "body2", message = "commit2") createFile(git, "master", "README.md", "body2", message = "commit2")
list("master", ".") mustEqual List(("README.md", "commit2", false)) assert(list("master", ".") === List(("README.md", "commit2", false)))
list("master", "dir/subdir") mustEqual Nil assert(list("master", "dir/subdir") === Nil)
list("branch", ".") mustEqual Nil assert(list("branch", ".") === Nil)
list("branch", "dir/subdir") mustEqual Nil assert(list("branch", "dir/subdir") === Nil)
createFile(git, "master", "dir/subdir/File3.md", "body3", message = "commit3") createFile(git, "master", "dir/subdir/File3.md", "body3", message = "commit3")
list("master", ".") mustEqual List(("dir/subdir", "commit3", true), ("README.md", "commit2", false)) assert(list("master", ".") === List(("dir/subdir", "commit3", true), ("README.md", "commit2", false)))
list("master", "dir/subdir") mustEqual List(("File3.md", "commit3", false)) assert(list("master", "dir/subdir") === List(("File3.md", "commit3", false)))
list("branch", ".") mustEqual Nil assert(list("branch", ".") === Nil)
list("branch", "dir/subdir") mustEqual Nil assert(list("branch", "dir/subdir") === Nil)
createFile(git, "master", "dir/subdir/File4.md", "body4", message = "commit4") createFile(git, "master", "dir/subdir/File4.md", "body4", message = "commit4")
list("master", ".") mustEqual List(("dir/subdir", "commit4", true), ("README.md", "commit2", false)) assert(list("master", ".") === List(("dir/subdir", "commit4", true), ("README.md", "commit2", false)))
list("master", "dir/subdir") mustEqual List(("File3.md", "commit3", false), ("File4.md", "commit4", false)) assert(list("master", "dir/subdir") === List(("File3.md", "commit3", false), ("File4.md", "commit4", false)))
list("branch", ".") mustEqual Nil assert(list("branch", ".") === Nil)
list("branch", "dir/subdir") mustEqual Nil assert(list("branch", "dir/subdir") === Nil)
createFile(git, "master", "README5.md", "body5", message = "commit5") createFile(git, "master", "README5.md", "body5", message = "commit5")
list("master", ".") mustEqual List(("dir/subdir", "commit4", true), ("README.md", "commit2", false), ("README5.md", "commit5", false)) assert(list("master", ".") === List(("dir/subdir", "commit4", true), ("README.md", "commit2", false), ("README5.md", "commit5", false)))
list("master", "dir/subdir") mustEqual List(("File3.md", "commit3", false), ("File4.md", "commit4", false)) assert(list("master", "dir/subdir") === List(("File3.md", "commit3", false), ("File4.md", "commit4", false)))
list("branch", ".") mustEqual Nil assert(list("branch", ".") === Nil)
list("branch", "dir/subdir") mustEqual Nil assert(list("branch", "dir/subdir") === Nil)
createFile(git, "master", "README.md", "body6", message = "commit6") createFile(git, "master", "README.md", "body6", message = "commit6")
list("master", ".") mustEqual List(("dir/subdir", "commit4", true), ("README.md", "commit6", false), ("README5.md", "commit5", false)) assert(list("master", ".") === List(("dir/subdir", "commit4", true), ("README.md", "commit6", false), ("README5.md", "commit5", false)))
list("master", "dir/subdir") mustEqual List(("File3.md", "commit3", false), ("File4.md", "commit4", false)) assert(list("master", "dir/subdir") === List(("File3.md", "commit3", false), ("File4.md", "commit4", false)))
list("branch", ".") mustEqual Nil assert(list("branch", ".") === Nil)
list("branch", "dir/subdir") mustEqual Nil assert(list("branch", "dir/subdir") === Nil)
git.branchCreate().setName("branch").setStartPoint("master").call() git.branchCreate().setName("branch").setStartPoint("master").call()
list("master", ".") mustEqual List(("dir/subdir", "commit4", true), ("README.md", "commit6", false), ("README5.md", "commit5", false)) assert(list("master", ".") === List(("dir/subdir", "commit4", true), ("README.md", "commit6", false), ("README5.md", "commit5", false)))
list("master", "dir/subdir") mustEqual List(("File3.md", "commit3", false), ("File4.md", "commit4", false)) assert(list("master", "dir/subdir") === List(("File3.md", "commit3", false), ("File4.md", "commit4", false)))
list("branch", ".") mustEqual List(("dir/subdir", "commit4", true), ("README.md", "commit6", false), ("README5.md", "commit5", false)) assert(list("branch", ".") === List(("dir/subdir", "commit4", true), ("README.md", "commit6", false), ("README5.md", "commit5", false)))
list("branch", "dir/subdir") mustEqual List(("File3.md", "commit3", false), ("File4.md", "commit4", false)) assert(list("branch", "dir/subdir") === List(("File3.md", "commit3", false), ("File4.md", "commit4", false)))
createFile(git, "branch", "dir/subdir/File3.md", "body7", message = "commit7") createFile(git, "branch", "dir/subdir/File3.md", "body7", message = "commit7")
list("master", ".") mustEqual List(("dir/subdir", "commit4", true), ("README.md", "commit6", false), ("README5.md", "commit5", false)) assert(list("master", ".") === List(("dir/subdir", "commit4", true), ("README.md", "commit6", false), ("README5.md", "commit5", false)))
list("master", "dir/subdir") mustEqual List(("File3.md", "commit3", false), ("File4.md", "commit4", false)) assert(list("master", "dir/subdir") === List(("File3.md", "commit3", false), ("File4.md", "commit4", false)))
list("branch", ".") mustEqual List(("dir/subdir", "commit7", true), ("README.md", "commit6", false), ("README5.md", "commit5", false)) assert(list("branch", ".") === List(("dir/subdir", "commit7", true), ("README.md", "commit6", false), ("README5.md", "commit5", false)))
list("branch", "dir/subdir") mustEqual List(("File3.md", "commit7", false), ("File4.md", "commit4", false)) assert(list("branch", "dir/subdir") === List(("File3.md", "commit7", false), ("File4.md", "commit4", false)))
createFile(git, "master", "dir8/File8.md", "body8", message = "commit8") createFile(git, "master", "dir8/File8.md", "body8", message = "commit8")
list("master", ".") mustEqual List(("dir/subdir", "commit4", true), ("dir8", "commit8", true), ("README.md", "commit6", false), ("README5.md", "commit5", false)) assert(list("master", ".") === List(("dir/subdir", "commit4", true), ("dir8", "commit8", true), ("README.md", "commit6", false), ("README5.md", "commit5", false)))
list("master", "dir/subdir") mustEqual List(("File3.md", "commit3", false), ("File4.md", "commit4", false)) assert(list("master", "dir/subdir") === List(("File3.md", "commit3", false), ("File4.md", "commit4", false)))
list("branch", ".") mustEqual List(("dir/subdir", "commit7", true), ("README.md", "commit6", false), ("README5.md", "commit5", false)) assert(list("branch", ".") === List(("dir/subdir", "commit7", true), ("README.md", "commit6", false), ("README5.md", "commit5", false)))
list("branch", "dir/subdir") mustEqual List(("File3.md", "commit7", false), ("File4.md", "commit4", false)) assert(list("branch", "dir/subdir") === List(("File3.md", "commit7", false), ("File4.md", "commit4", false)))
createFile(git, "branch", "dir/subdir9/File9.md", "body9", message = "commit9") createFile(git, "branch", "dir/subdir9/File9.md", "body9", message = "commit9")
list("master", ".") mustEqual List(("dir/subdir", "commit4", true), ("dir8", "commit8", true), ("README.md", "commit6", false), ("README5.md", "commit5", false)) assert(list("master", ".") === List(("dir/subdir", "commit4", true), ("dir8", "commit8", true), ("README.md", "commit6", false), ("README5.md", "commit5", false)))
list("master", "dir/subdir") mustEqual List(("File3.md", "commit3", false), ("File4.md", "commit4", false)) assert(list("master", "dir/subdir") === List(("File3.md", "commit3", false), ("File4.md", "commit4", false)))
list("branch", ".") mustEqual List(("dir", "commit9", true), ("README.md", "commit6", false), ("README5.md", "commit5", false)) assert(list("branch", ".") === List(("dir", "commit9", true), ("README.md", "commit6", false), ("README5.md", "commit5", false)))
list("branch", "dir/subdir") mustEqual List(("File3.md", "commit7", false), ("File4.md", "commit4", false)) assert(list("branch", "dir/subdir") === List(("File3.md", "commit7", false), ("File4.md", "commit4", false)))
mergeAndCommit(git, "master", "branch", message = "merge10") mergeAndCommit(git, "master", "branch", message = "merge10")
list("master", ".") mustEqual List(("dir", "commit9", true), ("dir8", "commit8", true), ("README.md", "commit6", false), ("README5.md", "commit5", false)) assert(list("master", ".") === List(("dir", "commit9", true), ("dir8", "commit8", true), ("README.md", "commit6", false), ("README5.md", "commit5", false)))
list("master", "dir/subdir") mustEqual List(("File3.md", "commit7", false), ("File4.md", "commit4", false)) assert(list("master", "dir/subdir") === List(("File3.md", "commit7", false), ("File4.md", "commit4", false)))
} }
} }
"getFileList subfolder multi-origin (issue #721)" should {
test("getFileList subfolder multi-origin (issue #721)") {
withTestRepository { git => withTestRepository { git =>
def list(branch: String, path: String) = def list(branch: String, path: String) =
JGitUtil.getFileList(git, branch, path).map(finfo => (finfo.name, finfo.message, finfo.isDirectory)) JGitUtil.getFileList(git, branch, path).map(finfo => (finfo.name, finfo.message, finfo.isDirectory))
createFile(git, "master", "README.md", "body1", message = "commit1") createFile(git, "master", "README.md", "body1", message = "commit1")
createFile(git, "branch", "test/text2.txt", "body2", message = "commit2") createFile(git, "branch", "test/text2.txt", "body2", message = "commit2")
mergeAndCommit(git, "master", "branch", message = "merge3") mergeAndCommit(git, "master", "branch", message = "merge3")
list("master", "test") mustEqual List(("text2.txt", "commit2", false)) assert(list("master", "test") === List(("text2.txt", "commit2", false)))
} }
} }
} }

View File

@@ -1,66 +1,67 @@
package gitbucket.core.util package gitbucket.core.util
import org.specs2.mutable._ //import org.specs2.mutable._
import org.scalatest.FunSpec
class StringUtilSpec extends Specification { class StringUtilSpec extends FunSpec {
"urlEncode" should { describe("urlEncode") {
"encode whitespace to %20" in { it("should encode whitespace to %20") {
val encoded = StringUtil.urlEncode("aa bb") val encoded = StringUtil.urlEncode("aa bb")
encoded mustEqual "aa%20bb" assert(encoded === "aa%20bb")
} }
} }
"urlDecode" should { describe("urlDecode") {
"decode encoded string to original string" in { it("should decode encoded string to original string") {
val encoded = StringUtil.urlEncode("あいうえお") val encoded = StringUtil.urlEncode("あいうえお")
StringUtil.urlDecode(encoded) mustEqual "あいうえお" assert(StringUtil.urlDecode(encoded) === "あいうえお")
} }
"decode en%20 to whitespace" in { it("should decode en%20 to whitespace") {
StringUtil.urlDecode("aa%20bb") mustEqual "aa bb" assert(StringUtil.urlDecode("aa%20bb") === "aa bb")
} }
} }
"splitWords" should { describe("splitWords") {
"split string by whitespaces" in { it("should split string by whitespaces") {
val split = StringUtil.splitWords("aa bb\tcc dd \t ee") val split = StringUtil.splitWords("aa bb\tcc dd \t ee")
split mustEqual Array("aa", "bb", "cc", "dd", "ee") assert(split === Array("aa", "bb", "cc", "dd", "ee"))
} }
} }
"escapeHtml" should { describe("escapeHtml") {
"escape &, <, > and \"" in { it("should escape &, <, > and \"") {
StringUtil.escapeHtml("<a href=\"/test\">a & b</a>") mustEqual "&lt;a href=&quot;/test&quot;&gt;a &amp; b&lt;/a&gt;" assert(StringUtil.escapeHtml("<a href=\"/test\">a & b</a>") === "&lt;a href=&quot;/test&quot;&gt;a &amp; b&lt;/a&gt;")
} }
} }
"md5" should { describe("md5") {
"generate MD5 hash" in { it("should generate MD5 hash") {
StringUtil.md5("abc") mustEqual "900150983cd24fb0d6963f7d28e17f72" assert(StringUtil.md5("abc") === "900150983cd24fb0d6963f7d28e17f72")
} }
} }
"sha1" should { describe("sha1") {
"generate SHA1 hash" in { it("should generate SHA1 hash") {
StringUtil.sha1("abc") mustEqual "a9993e364706816aba3e25717850c26c9cd0d89d" assert(StringUtil.sha1("abc") === "a9993e364706816aba3e25717850c26c9cd0d89d")
} }
} }
"extractIssueId" should { describe("extractIssueId") {
"extract '#xxx' and return extracted id" in { it("should extract '#xxx' and return extracted id") {
StringUtil.extractIssueId("(refs #123)").toSeq mustEqual Seq("123") assert(StringUtil.extractIssueId("(refs #123)").toSeq === Seq("123"))
} }
"returns Nil from message which does not contain #xxx" in { it("should return Nil from message which does not contain #xxx") {
StringUtil.extractIssueId("this is test!").toSeq mustEqual Nil assert(StringUtil.extractIssueId("this is test!").toSeq === Nil)
} }
} }
"extractCloseId" should { describe("extractCloseId") {
"extract 'close #xxx' and return extracted id" in { it("should extract 'close #xxx' and return extracted id") {
StringUtil.extractCloseId("(close #123)").toSeq mustEqual Seq("123") assert(StringUtil.extractCloseId("(close #123)").toSeq === Seq("123"))
} }
"returns Nil from message which does not contain close command" in { it("should returns Nil from message which does not contain close command") {
StringUtil.extractCloseId("(refs #123)").toSeq mustEqual Nil assert(StringUtil.extractCloseId("(refs #123)").toSeq === Nil)
} }
} }
} }

View File

@@ -1,35 +1,35 @@
package gitbucket.core.util package gitbucket.core.util
import org.specs2.mutable._
import org.scalatra.i18n.Messages import org.scalatra.i18n.Messages
import org.scalatest.FunSpec
class ValidationsSpec extends Specification with Validations { class ValidationsSpec extends FunSpec with Validations {
"identifier" should { describe("identifier") {
"validate id string " in { it("should validate id string ") {
identifier.validate("id", "aa_ZZ-00.01", null) mustEqual None assert(identifier.validate("id", "aa_ZZ-00.01", null) === None)
identifier.validate("id", "_aaaa", null) mustEqual Some("id starts with invalid character.") assert(identifier.validate("id", "_aaaa", null) === Some("id starts with invalid character."))
identifier.validate("id", "-aaaa", null) mustEqual Some("id starts with invalid character.") assert(identifier.validate("id", "-aaaa", null) === Some("id starts with invalid character."))
identifier.validate("id", "aa_ZZ#01", null) mustEqual Some("id contains invalid character.") assert(identifier.validate("id", "aa_ZZ#01", null) === Some("id contains invalid character."))
} }
} }
"color" should { describe("color") {
"validate color string " in { it("should validate color string ") {
val messages = Messages() val messages = Messages()
color.validate("color", "#88aaff", messages) mustEqual None assert(color.validate("color", "#88aaff", messages) === None)
color.validate("color", "#gghhii", messages) mustEqual Some("color must be '#[0-9a-fA-F]{6}'.") assert(color.validate("color", "#gghhii", messages) === Some("color must be '#[0-9a-fA-F]{6}'."))
} }
} }
"date" should { describe("date") {
// "validate date string " in { // "validate date string " in {
// date().validate("date", "2013-10-05", Map[String, String]()) mustEqual Nil // date().validate("date", "2013-10-05", Map[String, String]()) mustEqual Nil
// date().validate("date", "2013-10-5" , Map[String, String]()) mustEqual List(("date", "date must be '\\d{4}-\\d{2}-\\d{2}'.")) // date().validate("date", "2013-10-5" , Map[String, String]()) mustEqual List(("date", "date must be '\\d{4}-\\d{2}-\\d{2}'."))
// } // }
"convert date string " in { it("should convert date string ") {
val result = date().convert("2013-10-05", null) val result = date().convert("2013-10-05", null)
new java.text.SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(result) mustEqual "2013-10-05 00:00:00" assert(new java.text.SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(result) === "2013-10-05 00:00:00")
} }
} }