diff --git a/src/test/scala/gitbucket/core/api/JsonFormatSpec.scala b/src/test/scala/gitbucket/core/api/JsonFormatSpec.scala index 38dee6a..a012c49 100644 --- a/src/test/scala/gitbucket/core/api/JsonFormatSpec.scala +++ b/src/test/scala/gitbucket/core/api/JsonFormatSpec.scala @@ -2,16 +2,17 @@ import gitbucket.core.util.RepositoryName -import org.specs2.mutable.Specification +//import org.specs2.mutable.Specification import org.json4s.jackson.JsonMethods.{pretty, parse} import org.json4s._ -import org.specs2.matcher._ +//import org.specs2.matcher._ +import org.scalatest.FunSuite import java.util.{Calendar, TimeZone, Date} -class JsonFormatSpec extends Specification { +class JsonFormatSpec extends FunSuite { val date1 = { val d = Calendar.getInstance(TimeZone.getTimeZone("UTC")) d.set(2011,3,14,16,0,49) @@ -374,67 +375,58 @@ } }""" - def beFormatted(json2Arg:String) = new Matcher[String] { - def apply[S <: String](e: Expectable[S]) = { - import java.util.regex.Pattern - val json2 = Pattern.compile("""^\s*//.*$""", Pattern.MULTILINE).matcher(json2Arg).replaceAll("") - val js2 = try{ - parse(json2) - }catch{ - case e:com.fasterxml.jackson.core.JsonParseException => { - val p = java.lang.Math.max(e.getLocation.getCharOffset()-10,0).toInt - val message = json2.substring(p,java.lang.Math.min(p+100,json2.length)) - throw new com.fasterxml.jackson.core.JsonParseException(message + e.getMessage , e.getLocation) - } + def assertJson(resultJson: String, expectJson: String) = { + import java.util.regex.Pattern + val json2 = Pattern.compile("""^\s*//.*$""", Pattern.MULTILINE).matcher(expectJson).replaceAll("") + val js2 = try { + parse(json2) + } catch { + case e: com.fasterxml.jackson.core.JsonParseException => { + val p = java.lang.Math.max(e.getLocation.getCharOffset() - 10, 0).toInt + val message = json2.substring(p, java.lang.Math.min(p + 100, json2.length)) + throw new com.fasterxml.jackson.core.JsonParseException(message + e.getMessage, e.getLocation) } - val js1 = parse(e.value) - result(js1 == js2, - "expected", - { - val diff = js2 diff js1 - s"${pretty(js1)} is not ${pretty(js2)} \n\n ${pretty(Extraction.decompose(diff)(org.json4s.DefaultFormats))}" - }, - e) } + val js1 = parse(resultJson) + assert(js1 === js2) } - "JsonFormat" should { - "apiUser" in { - JsonFormat(apiUser) must beFormatted(apiUserJson) - } - "repository" in { - JsonFormat(repository) must beFormatted(repositoryJson) - } - "apiPushCommit" in { - JsonFormat(apiPushCommit) must beFormatted(apiPushCommitJson) - } - "apiComment" in { - JsonFormat(apiComment) must beFormatted(apiCommentJson) - JsonFormat(apiCommentPR) must beFormatted(apiCommentPRJson) - } - "apiCommitListItem" in { - JsonFormat(apiCommitListItem) must beFormatted(apiCommitListItemJson) - } - "apiCommitStatus" in { - JsonFormat(apiCommitStatus) must beFormatted(apiCommitStatusJson) - } - "apiCombinedCommitStatus" in { - JsonFormat(apiCombinedCommitStatus) must beFormatted(apiCombinedCommitStatusJson) - } - "apiLabel" in { - JsonFormat(apiLabel) must beFormatted(apiLabelJson) - } - "apiIssue" in { - JsonFormat(apiIssue) must beFormatted(apiIssueJson) - JsonFormat(apiIssuePR) must beFormatted(apiIssuePRJson) - } - "apiPullRequest" in { - JsonFormat(apiPullRequest) must beFormatted(apiPullRequestJson) - } - "apiPullRequestReviewComment" in { - JsonFormat(apiPullRequestReviewComment) must beFormatted(apiPullRequestReviewCommentJson) - } - "apiBranchProtection" in { - JsonFormat(apiBranchProtection) must beFormatted(apiBranchProtectionJson) - } + + test("apiUser") { + assertJson(JsonFormat(apiUser), apiUserJson) + } + test("repository") { + assertJson(JsonFormat(repository), repositoryJson) + } + test("apiPushCommit") { + assertJson(JsonFormat(apiPushCommit), apiPushCommitJson) + } + test("apiComment") { + assertJson(JsonFormat(apiComment), apiCommentJson) + assertJson(JsonFormat(apiCommentPR), apiCommentPRJson) + } + test("apiCommitListItem") { + assertJson(JsonFormat(apiCommitListItem), apiCommitListItemJson) + } + test("apiCommitStatus") { + assertJson(JsonFormat(apiCommitStatus), apiCommitStatusJson) + } + test("apiCombinedCommitStatus") { + assertJson(JsonFormat(apiCombinedCommitStatus), apiCombinedCommitStatusJson) + } + test("apiLabel") { + assertJson(JsonFormat(apiLabel), apiLabelJson) + } + test("apiIssue") { + assertJson(JsonFormat(apiIssue), apiIssueJson) + assertJson(JsonFormat(apiIssuePR), apiIssuePRJson) + } + test("apiPullRequest") { + assertJson(JsonFormat(apiPullRequest), apiPullRequestJson) + } + test("apiPullRequestReviewComment") { + assertJson(JsonFormat(apiPullRequestReviewComment), apiPullRequestReviewCommentJson) + } + test("apiBranchProtection") { + assertJson(JsonFormat(apiBranchProtection), apiBranchProtectionJson) } } diff --git a/src/test/scala/gitbucket/core/view/AvatarImageProviderSpec.scala b/src/test/scala/gitbucket/core/view/AvatarImageProviderSpec.scala index 75b9744..5af7bee 100644 --- a/src/test/scala/gitbucket/core/view/AvatarImageProviderSpec.scala +++ b/src/test/scala/gitbucket/core/view/AvatarImageProviderSpec.scala @@ -5,74 +5,74 @@ import gitbucket.core.model.Account import gitbucket.core.service.{SystemSettingsService, RequestCache} import gitbucket.core.controller.Context -import org.specs2.mutable._ -import org.specs2.mock.Mockito +import org.mockito.Mockito._ import SystemSettingsService.SystemSettings import javax.servlet.http.HttpServletRequest import play.twirl.api.Html +import org.scalatest.FunSpec -class AvatarImageProviderSpec extends Specification with Mockito { +class AvatarImageProviderSpec extends FunSpec { - val request = mock[HttpServletRequest] - request.getRequestURL returns new StringBuffer("http://localhost:8080/path.html") - request.getRequestURI returns "/path.html" - request.getContextPath returns "" + val request = mock(classOf[HttpServletRequest]) + when(request.getRequestURL).thenReturn(new StringBuffer("http://localhost:8080/path.html")) + when(request.getRequestURI).thenReturn("/path.html") + when(request.getContextPath).thenReturn("") - "getAvatarImageHtml" should { - "show Gravatar image for no image account if gravatar integration is enabled" in { + describe("getAvatarImageHtml") { + it("should show Gravatar image for no image account if gravatar integration is enabled") { implicit val context = Context(createSystemSettings(true), None, request) val provider = new AvatarImageProviderImpl(Some(createAccount(None))) - provider.toHtml("user", 32).toString mustEqual - "" + assert(provider.toHtml("user", 32).toString == + "") } - "show uploaded image even if gravatar integration is enabled" in { + it("should show uploaded image even if gravatar integration is enabled") { implicit val context = Context(createSystemSettings(true), None, request) val provider = new AvatarImageProviderImpl(Some(createAccount(Some("icon.png")))) - provider.toHtml("user", 32).toString mustEqual - "" + assert(provider.toHtml("user", 32).toString == + "") } - "show local image for no image account if gravatar integration is disabled" in { + it("should show local image for no image account if gravatar integration is disabled") { implicit val context = Context(createSystemSettings(false), None, request) val provider = new AvatarImageProviderImpl(Some(createAccount(None))) - provider.toHtml("user", 32).toString mustEqual - "" + assert(provider.toHtml("user", 32).toString == + "") } - "show Gravatar image for specified mail address if gravatar integration is enabled" in { + it("should show Gravatar image for specified mail address if gravatar integration is enabled") { implicit val context = Context(createSystemSettings(true), None, request) val provider = new AvatarImageProviderImpl(None) - provider.toHtml("user", 20, "hoge@hoge.com").toString mustEqual - "" + assert(provider.toHtml("user", 20, "hoge@hoge.com").toString == + "") } - "show unknown image for unknown user if gravatar integration is enabled" in { + it("should show unknown image for unknown user if gravatar integration is enabled") { implicit val context = Context(createSystemSettings(true), None, request) val provider = new AvatarImageProviderImpl(None) - provider.toHtml("user", 20).toString mustEqual - "" + assert(provider.toHtml("user", 20).toString == + "") } - "show unknown image for specified mail address if gravatar integration is disabled" in { + it("should show unknown image for specified mail address if gravatar integration is disabled") { implicit val context = Context(createSystemSettings(false), None, request) val provider = new AvatarImageProviderImpl(None) - provider.toHtml("user", 20, "hoge@hoge.com").toString mustEqual - "" + assert(provider.toHtml("user", 20, "hoge@hoge.com").toString == + "") } - "add tooltip if it's enabled" in { + it("should add tooltip if it's enabled") { implicit val context = Context(createSystemSettings(false), None, request) val provider = new AvatarImageProviderImpl(None) - provider.toHtml("user", 20, "hoge@hoge.com", true).toString mustEqual - "" + assert(provider.toHtml("user", 20, "hoge@hoge.com", true).toString == + "") } } diff --git a/src/test/scala/gitbucket/core/view/PaginationSpec.scala b/src/test/scala/gitbucket/core/view/PaginationSpec.scala index 785c761..79da56a 100644 --- a/src/test/scala/gitbucket/core/view/PaginationSpec.scala +++ b/src/test/scala/gitbucket/core/view/PaginationSpec.scala @@ -1,68 +1,68 @@ package gitbucket.core.view import gitbucket.core.util.ControlUtil -import org.specs2.mutable._ import ControlUtil._ +import org.scalatest.FunSpec -class PaginationSpec extends Specification { +class PaginationSpec extends FunSpec { - "max" should { - "return max page number" in { + describe("max") { + it("should return max page number") { val pagination = Pagination(1, 100, 10, 6) - pagination.max mustEqual 10 + assert(pagination.max == 10) } } - "omitLeft and omitRight" should { - "return true if pagination links at their side will be omitted" in { + describe("omitLeft and omitRight") { + it("should return true if pagination links at their side will be omitted") { defining(Pagination(1, 100, 10, 6)){ pagination => - pagination.omitLeft mustEqual false - pagination.omitRight mustEqual true + assert(pagination.omitLeft == false) + assert(pagination.omitRight == true) } defining(Pagination(9, 100, 10, 6)){ pagination => - pagination.omitLeft mustEqual true - pagination.omitRight mustEqual false + assert(pagination.omitLeft == true) + assert(pagination.omitRight == false) } } } - "visibleFor" should { - "return true for visible pagination links" in { + describe("visibleFor") { + it("should return true for visible pagination links") { defining(Pagination(1, 100, 10, 6)){ pagination => - pagination.visibleFor(1) mustEqual true - pagination.visibleFor(2) mustEqual true - pagination.visibleFor(3) mustEqual true - pagination.visibleFor(4) mustEqual true - pagination.visibleFor(5) mustEqual true - pagination.visibleFor(6) mustEqual false - pagination.visibleFor(7) mustEqual false - pagination.visibleFor(8) mustEqual false - pagination.visibleFor(9) mustEqual false - pagination.visibleFor(10) mustEqual true + assert(pagination.visibleFor(1) == true) + assert(pagination.visibleFor(2) == true) + assert(pagination.visibleFor(3) == true) + assert(pagination.visibleFor(4) == true) + assert(pagination.visibleFor(5) == true) + assert(pagination.visibleFor(6) == false) + assert(pagination.visibleFor(7) == false) + assert(pagination.visibleFor(8) == false) + assert(pagination.visibleFor(9) == false) + assert(pagination.visibleFor(10) == true) } defining(Pagination(5, 100, 10, 6)){ pagination => - pagination.visibleFor(1) mustEqual true - pagination.visibleFor(2) mustEqual false - pagination.visibleFor(3) mustEqual false - pagination.visibleFor(4) mustEqual true - pagination.visibleFor(5) mustEqual true - pagination.visibleFor(6) mustEqual true - pagination.visibleFor(7) mustEqual false - pagination.visibleFor(8) mustEqual false - pagination.visibleFor(9) mustEqual false - pagination.visibleFor(10) mustEqual true + assert(pagination.visibleFor(1) == true) + assert(pagination.visibleFor(2) == false) + assert(pagination.visibleFor(3) == false) + assert(pagination.visibleFor(4) == true) + assert(pagination.visibleFor(5) == true) + assert(pagination.visibleFor(6) == true) + assert(pagination.visibleFor(7) == false) + assert(pagination.visibleFor(8) == false) + assert(pagination.visibleFor(9) == false) + assert(pagination.visibleFor(10) == true) } defining(Pagination(8, 100, 10, 6)){ pagination => - pagination.visibleFor(1) mustEqual true - pagination.visibleFor(2) mustEqual false - pagination.visibleFor(3) mustEqual false - pagination.visibleFor(4) mustEqual false - pagination.visibleFor(5) mustEqual false - pagination.visibleFor(6) mustEqual true - pagination.visibleFor(7) mustEqual true - pagination.visibleFor(8) mustEqual true - pagination.visibleFor(9) mustEqual true - pagination.visibleFor(10) mustEqual true + assert(pagination.visibleFor(1) == true) + assert(pagination.visibleFor(2) == false) + assert(pagination.visibleFor(3) == false) + assert(pagination.visibleFor(4) == false) + assert(pagination.visibleFor(5) == false) + assert(pagination.visibleFor(6) == true) + assert(pagination.visibleFor(7) == true) + assert(pagination.visibleFor(8) == true) + assert(pagination.visibleFor(9) == true) + assert(pagination.visibleFor(10) == true) } } }