diff --git a/_examples/auth/basicauth/basic/main_test.go b/_examples/auth/basicauth/basic/main_test.go
index e3f27486ce..1cce493a6d 100644
--- a/_examples/auth/basicauth/basic/main_test.go
+++ b/_examples/auth/basicauth/basic/main_test.go
@@ -17,11 +17,11 @@ func TestBasicAuth(t *testing.T) {
// with valid basic auth
e.GET("/admin").WithBasicAuth("myusername", "mypassword").Expect().
- Status(httptest.StatusOK).Body().Equal("/admin myusername:mypassword")
+ Status(httptest.StatusOK).Body().IsEqual("/admin myusername:mypassword")
e.GET("/admin/profile").WithBasicAuth("myusername", "mypassword").Expect().
- Status(httptest.StatusOK).Body().Equal("/admin/profile myusername:mypassword")
+ Status(httptest.StatusOK).Body().IsEqual("/admin/profile myusername:mypassword")
e.GET("/admin/settings").WithBasicAuth("myusername", "mypassword").Expect().
- Status(httptest.StatusOK).Body().Equal("/admin/settings myusername:mypassword")
+ Status(httptest.StatusOK).Body().IsEqual("/admin/settings myusername:mypassword")
// with invalid basic auth
e.GET("/admin/settings").WithBasicAuth("invalidusername", "invalidpassword").
diff --git a/_examples/bootstrapper/main_test.go b/_examples/bootstrapper/main_test.go
index 959c04eb2f..df05c65f31 100644
--- a/_examples/bootstrapper/main_test.go
+++ b/_examples/bootstrapper/main_test.go
@@ -14,11 +14,11 @@ func TestApp(t *testing.T) {
// test our routes
e.GET("/").Expect().Status(httptest.StatusOK)
e.GET("/follower/42").Expect().Status(httptest.StatusOK).
- Body().Equal("from /follower/{id:int64} with ID: 42")
+ Body().IsEqual("from /follower/{id:int64} with ID: 42")
e.GET("/following/52").Expect().Status(httptest.StatusOK).
- Body().Equal("from /following/{id:int64} with ID: 52")
+ Body().IsEqual("from /following/{id:int64} with ID: 52")
e.GET("/like/64").Expect().Status(httptest.StatusOK).
- Body().Equal("from /like/{id:int64} with ID: 64")
+ Body().IsEqual("from /like/{id:int64} with ID: 64")
// test not found
e.GET("/notfound").Expect().Status(httptest.StatusNotFound)
@@ -28,5 +28,5 @@ func TestApp(t *testing.T) {
"message": "",
}
e.GET("/anotfoundwithjson").WithQuery("json", nil).
- Expect().Status(httptest.StatusNotFound).JSON().Equal(expectedErr)
+ Expect().Status(httptest.StatusNotFound).JSON().IsEqual(expectedErr)
}
diff --git a/_examples/cookies/basic/main_test.go b/_examples/cookies/basic/main_test.go
index 8dd9946701..bd82d9c39a 100644
--- a/_examples/cookies/basic/main_test.go
+++ b/_examples/cookies/basic/main_test.go
@@ -20,7 +20,7 @@ func TestCookiesBasic(t *testing.T) {
// Test retrieve a Cookie.
t2 := e.GET(fmt.Sprintf("/cookies/%s", cookieName)).Expect().Status(httptest.StatusOK)
- t2.Body().Equal(cookieValue)
+ t2.Body().IsEqual(cookieValue)
// Test remove a Cookie.
t3 := e.DELETE(fmt.Sprintf("/cookies/%s", cookieName)).Expect().Status(httptest.StatusOK)
@@ -28,5 +28,5 @@ func TestCookiesBasic(t *testing.T) {
t4 := e.GET(fmt.Sprintf("/cookies/%s", cookieName)).Expect().Status(httptest.StatusOK)
t4.Cookies().Empty()
- t4.Body().Empty()
+ t4.Body().IsEmpty()
}
diff --git a/_examples/cookies/options/main_test.go b/_examples/cookies/options/main_test.go
index 7f064d466d..5a543832c8 100644
--- a/_examples/cookies/options/main_test.go
+++ b/_examples/cookies/options/main_test.go
@@ -20,7 +20,7 @@ func TestCookieOptions(t *testing.T) {
// Test retrieve a Cookie.
t2 := e.GET(fmt.Sprintf("/get/%s", cookieName)).Expect().Status(httptest.StatusOK)
- t2.Body().Equal(cookieValue)
+ t2.Body().IsEqual(cookieValue)
// Test remove a Cookie.
t3 := e.GET(fmt.Sprintf("/remove/%s", cookieName)).Expect().Status(httptest.StatusOK)
@@ -28,5 +28,5 @@ func TestCookieOptions(t *testing.T) {
t4 := e.GET(fmt.Sprintf("/get/%s", cookieName)).Expect().Status(httptest.StatusOK)
t4.Cookies().Empty()
- t4.Body().Empty()
+ t4.Body().IsEmpty()
}
diff --git a/_examples/cookies/securecookie/main_test.go b/_examples/cookies/securecookie/main_test.go
index 0754c9bd1f..bd8b682f7d 100644
--- a/_examples/cookies/securecookie/main_test.go
+++ b/_examples/cookies/securecookie/main_test.go
@@ -22,7 +22,7 @@ func TestSecureCookie(t *testing.T) {
// Test retrieve a Cookie.
t2 := e.GET(fmt.Sprintf("/cookies/%s", cookieName)).Expect().Status(httptest.StatusOK)
- t2.Body().Equal(cookieValue)
+ t2.Body().IsEqual(cookieValue)
// Test remove a Cookie.
t3 := e.GET(fmt.Sprintf("/cookies/remove/%s", cookieName)).Expect().Status(httptest.StatusOK)
@@ -30,5 +30,5 @@ func TestSecureCookie(t *testing.T) {
t4 := e.GET(fmt.Sprintf("/cookies/%s", cookieName)).Expect().Status(httptest.StatusOK)
t4.Cookies().Empty()
- t4.Body().Empty()
+ t4.Body().IsEmpty()
}
diff --git a/_examples/dependency-injection/basic/middleware/main_test.go b/_examples/dependency-injection/basic/middleware/main_test.go
index eb90c87b51..fdacc32ddc 100644
--- a/_examples/dependency-injection/basic/middleware/main_test.go
+++ b/_examples/dependency-injection/basic/middleware/main_test.go
@@ -12,14 +12,14 @@ func TestDependencyInjectionBasic_Middleware(t *testing.T) {
e := httptest.New(t, app)
e.POST("/42").WithJSON(testInput{Email: "my_email"}).Expect().
Status(httptest.StatusOK).
- JSON().Equal(testOutput{ID: 42, Name: "my_email"})
+ JSON().IsEqual(testOutput{ID: 42, Name: "my_email"})
// it should stop the execution at the middleware and return the middleware's status code,
// because the error is `ErrStopExecution`.
e.POST("/42").WithJSON(testInput{Email: "invalid"}).Expect().
- Status(httptest.StatusAccepted).Body().Empty()
+ Status(httptest.StatusAccepted).Body().IsEmpty()
// it should stop the execution at the middleware and return the error's text.
e.POST("/42").WithJSON(testInput{Email: "error"}).Expect().
- Status(httptest.StatusConflict).Body().Equal("my_error")
+ Status(httptest.StatusConflict).Body().IsEqual("my_error")
}
diff --git a/_examples/file-server/basic/main_test.go b/_examples/file-server/basic/main_test.go
index a27067bb0e..cdd6b46b23 100644
--- a/_examples/file-server/basic/main_test.go
+++ b/_examples/file-server/basic/main_test.go
@@ -89,7 +89,7 @@ func TestFileServerBasic(t *testing.T) {
e.GET(url).Expect().
Status(httptest.StatusOK).
ContentType(u.contentType(), app.ConfigurationReadOnly().GetCharset()).
- Body().Equal(contents)
+ Body().IsEqual(contents)
}
}
@@ -109,6 +109,6 @@ func TestHandleDirDot(t *testing.T) {
e.GET(url).Expect().
Status(httptest.StatusOK).
ContentType(u.contentType(), app.ConfigurationReadOnly().GetCharset()).
- Body().Equal(contents)
+ Body().IsEqual(contents)
}
}
diff --git a/_examples/file-server/embedding-files-into-app-bindata/main_test.go b/_examples/file-server/embedding-files-into-app-bindata/main_test.go
index c8dcf3fd08..fc546e557f 100644
--- a/_examples/file-server/embedding-files-into-app-bindata/main_test.go
+++ b/_examples/file-server/embedding-files-into-app-bindata/main_test.go
@@ -89,6 +89,6 @@ func TestEmbeddingFilesIntoApp(t *testing.T) {
e.GET(url).Expect().
Status(httptest.StatusOK).
ContentType(u.contentType()).
- Body().Equal(contents)
+ Body().IsEqual(contents)
}
}
diff --git a/_examples/file-server/embedding-files-into-app/main_test.go b/_examples/file-server/embedding-files-into-app/main_test.go
index ee3f628345..ee3978906f 100644
--- a/_examples/file-server/embedding-files-into-app/main_test.go
+++ b/_examples/file-server/embedding-files-into-app/main_test.go
@@ -84,6 +84,6 @@ func TestEmbeddingFilesIntoApp(t *testing.T) {
e.GET(url).Expect().
Status(httptest.StatusOK).
ContentType(u.contentType()).
- Body().Equal(contents)
+ Body().IsEqual(contents)
}
}
diff --git a/_examples/file-server/single-page-application/embedded-single-page-application/main_test.go b/_examples/file-server/single-page-application/embedded-single-page-application/main_test.go
index d1b641472d..c1302d1e23 100644
--- a/_examples/file-server/single-page-application/embedded-single-page-application/main_test.go
+++ b/_examples/file-server/single-page-application/embedded-single-page-application/main_test.go
@@ -77,7 +77,7 @@ func TestSPAEmbedded(t *testing.T) {
e.GET(url).Expect().
Status(httptest.StatusOK).
ContentType(u.contentType(), app.ConfigurationReadOnly().GetCharset()).
- Body().Equal(contents)
+ Body().IsEqual(contents)
}
e.GET("/index.html").Expect().Status(httptest.StatusNotFound) // only root is served.
diff --git a/_examples/file-server/subdomain/main_test.go b/_examples/file-server/subdomain/main_test.go
index 8674dd39b4..ea0504ccf1 100644
--- a/_examples/file-server/subdomain/main_test.go
+++ b/_examples/file-server/subdomain/main_test.go
@@ -76,6 +76,6 @@ func TestFileServerSubdomainBasic(t *testing.T) {
e.GET(url).WithURL(host).Expect().
Status(httptest.StatusOK).
ContentType(u.contentType(), app.ConfigurationReadOnly().GetCharset()).
- Body().Equal(contents)
+ Body().IsEqual(contents)
}
}
diff --git a/_examples/i18n/basic/main_test.go b/_examples/i18n/basic/main_test.go
index 73f86d1d2e..f25c4e2ceb 100644
--- a/_examples/i18n/basic/main_test.go
+++ b/_examples/i18n/basic/main_test.go
@@ -40,49 +40,49 @@ func TestI18n(t *testing.T) {
e := httptest.New(t, app)
// default should be en-US.
- e.GET("/").Expect().Status(httptest.StatusOK).Body().Equal(tests["en-US"])
+ e.GET("/").Expect().Status(httptest.StatusOK).Body().IsEqual(tests["en-US"])
for lang, body := range tests {
e.GET("/").WithQueryString("lang=" + lang).Expect().Status(httptest.StatusOK).
- Body().Equal(body)
+ Body().IsEqual(body)
// test lowercase.
e.GET("/").WithQueryString("lang=" + strings.ToLower(lang)).Expect().Status(httptest.StatusOK).
- Body().Equal(body)
+ Body().IsEqual(body)
// test first part (e.g. en instead of en-US).
langFirstPart := strings.Split(lang, "-")[0]
e.GET("/").WithQueryString("lang=" + langFirstPart).Expect().Status(httptest.StatusOK).
- Body().Equal(body)
+ Body().IsEqual(body)
// test accept-language header prefix (i18n wrapper).
e.GET("/"+lang).WithHeader("Accept-Language", lang).Expect().Status(httptest.StatusOK).
- Body().Equal(body)
+ Body().IsEqual(body)
// test path prefix (i18n router wrapper).
e.GET("/" + lang).Expect().Status(httptest.StatusOK).
- Body().Equal(body)
+ Body().IsEqual(body)
// test path prefix with first part.
e.GET("/" + langFirstPart).Expect().Status(httptest.StatusOK).
- Body().Equal(body)
+ Body().IsEqual(body)
}
e.GET("/other").WithQueryString("lang=el-GR").Expect().Status(httptest.StatusOK).
- Body().Equal(elgrMulti)
+ Body().IsEqual(elgrMulti)
e.GET("/other").WithQueryString("lang=en-US").Expect().Status(httptest.StatusOK).
- Body().Equal(enusMulti)
+ Body().IsEqual(enusMulti)
// test path prefix (i18n router wrapper).
e.GET("/el-gr/other").Expect().Status(httptest.StatusOK).
- Body().Equal(elgrMulti)
+ Body().IsEqual(elgrMulti)
e.GET("/en/other").Expect().Status(httptest.StatusOK).
- Body().Equal(enusMulti)
+ Body().IsEqual(enusMulti)
e.GET("/el-GRtemplates").Expect().Status(httptest.StatusNotFound)
e.GET("/el-templates").Expect().Status(httptest.StatusNotFound)
e.GET("/el/templates").Expect().Status(httptest.StatusOK).Body().Contains(elGR).Contains(zhCN)
- e.GET("/not-matched").WithQuery("lang", "en-gb").Expect().Status(httptest.StatusOK).Body().Equal("user language input: en-gb: matched as: en-US: not found key: not_found_key: args: [some values 42]")
+ e.GET("/not-matched").WithQuery("lang", "en-gb").Expect().Status(httptest.StatusOK).Body().IsEqual("user language input: en-gb: matched as: en-US: not found key: not_found_key: args: [some values 42]")
}
diff --git a/_examples/i18n/template-embedded/main_test.go b/_examples/i18n/template-embedded/main_test.go
index 3aa2788bec..b23e24799d 100644
--- a/_examples/i18n/template-embedded/main_test.go
+++ b/_examples/i18n/template-embedded/main_test.go
@@ -11,11 +11,11 @@ func TestI18nLoaderFuncMap(t *testing.T) {
e := httptest.New(t, app)
e.GET("/").Expect().Status(httptest.StatusOK).
- Body().Equal("Become a MEMBER")
+ Body().IsEqual("Become a MEMBER")
e.GET("/title").Expect().Status(httptest.StatusOK).
- Body().Equal("Account Connections")
+ Body().IsEqual("Account Connections")
e.GET("/").WithHeader("Accept-Language", "el").Expect().Status(httptest.StatusOK).
- Body().Equal("Γίνε ΜΈΛΟΣ")
+ Body().IsEqual("Γίνε ΜΈΛΟΣ")
e.GET("/title").WithHeader("Accept-Language", "el").Expect().Status(httptest.StatusOK).
- Body().Equal("Λογαριασμός Συνδέσεις")
+ Body().IsEqual("Λογαριασμός Συνδέσεις")
}
diff --git a/_examples/i18n/template/main_test.go b/_examples/i18n/template/main_test.go
index 3aa2788bec..b23e24799d 100644
--- a/_examples/i18n/template/main_test.go
+++ b/_examples/i18n/template/main_test.go
@@ -11,11 +11,11 @@ func TestI18nLoaderFuncMap(t *testing.T) {
e := httptest.New(t, app)
e.GET("/").Expect().Status(httptest.StatusOK).
- Body().Equal("Become a MEMBER")
+ Body().IsEqual("Become a MEMBER")
e.GET("/title").Expect().Status(httptest.StatusOK).
- Body().Equal("Account Connections")
+ Body().IsEqual("Account Connections")
e.GET("/").WithHeader("Accept-Language", "el").Expect().Status(httptest.StatusOK).
- Body().Equal("Γίνε ΜΈΛΟΣ")
+ Body().IsEqual("Γίνε ΜΈΛΟΣ")
e.GET("/title").WithHeader("Accept-Language", "el").Expect().Status(httptest.StatusOK).
- Body().Equal("Λογαριασμός Συνδέσεις")
+ Body().IsEqual("Λογαριασμός Συνδέσεις")
}
diff --git a/_examples/logging/json-logger/main_test.go b/_examples/logging/json-logger/main_test.go
index 7997fcf98f..74c66cb382 100644
--- a/_examples/logging/json-logger/main_test.go
+++ b/_examples/logging/json-logger/main_test.go
@@ -36,7 +36,7 @@ func TestJSONLogger(t *testing.T) {
wg.Add(iters)
for i := 0; i < iters; i++ {
go func() {
- e.GET("/ping").Expect().Status(httptest.StatusOK).Body().Equal("pong")
+ e.GET("/ping").Expect().Status(httptest.StatusOK).Body().IsEqual("pong")
wg.Done()
}()
}
diff --git a/_examples/mvc/authenticated-controller/main_test.go b/_examples/mvc/authenticated-controller/main_test.go
index df47e18ec1..a65a9956cd 100644
--- a/_examples/mvc/authenticated-controller/main_test.go
+++ b/_examples/mvc/authenticated-controller/main_test.go
@@ -11,14 +11,14 @@ func TestMVCOverlapping(t *testing.T) {
e := httptest.New(t, app, httptest.URL("http://example.com"))
// unauthenticated.
- e.GET("/user").Expect().Status(httptest.StatusOK).Body().Equal("custom action to redirect on authentication page")
+ e.GET("/user").Expect().Status(httptest.StatusOK).Body().IsEqual("custom action to redirect on authentication page")
// login.
e.POST("/user/login").Expect().Status(httptest.StatusOK)
// authenticated.
- e.GET("/user").Expect().Status(httptest.StatusOK).Body().Equal(`UserController.Get: The Authenticated type
+ e.GET("/user").Expect().Status(httptest.StatusOK).Body().IsEqual(`UserController.Get: The Authenticated type
can be used to secure a controller's method too.`)
// logout.
e.POST("/user/logout").Expect().Status(httptest.StatusOK)
// unauthenticated.
- e.GET("/user").Expect().Status(httptest.StatusOK).Body().Equal("custom action to redirect on authentication page")
+ e.GET("/user").Expect().Status(httptest.StatusOK).Body().IsEqual("custom action to redirect on authentication page")
}
diff --git a/_examples/mvc/error-handler-http/main_test.go b/_examples/mvc/error-handler-http/main_test.go
index 7a10109132..f1cd4fe27b 100644
--- a/_examples/mvc/error-handler-http/main_test.go
+++ b/_examples/mvc/error-handler-http/main_test.go
@@ -15,6 +15,6 @@ func TestControllerHandleHTTPError(t *testing.T) {
app := newApp()
e := httptest.New(t, app)
- e.GET("/").Expect().Status(httptest.StatusOK).Body().Equal(expectedIndex)
- e.GET("/a_notefound").Expect().Status(httptest.StatusNotFound).ContentType("text/html").Body().Equal(expectedNotFound)
+ e.GET("/").Expect().Status(httptest.StatusOK).Body().IsEqual(expectedIndex)
+ e.GET("/a_notefound").Expect().Status(httptest.StatusNotFound).ContentType("text/html").Body().IsEqual(expectedNotFound)
}
diff --git a/_examples/mvc/grpc-compatible/main_test.go b/_examples/mvc/grpc-compatible/main_test.go
index f937b9d997..e525519b77 100644
--- a/_examples/mvc/grpc-compatible/main_test.go
+++ b/_examples/mvc/grpc-compatible/main_test.go
@@ -12,5 +12,5 @@ func TestGRPCCompatible(t *testing.T) {
e := httptest.New(t, app)
e.POST("/helloworld.Greeter/SayHello").WithJSON(map[string]string{"name": "makis"}).Expect().
Status(httptest.StatusOK).
- JSON().Equal(map[string]string{"message": "Hello makis"})
+ JSON().IsEqual(map[string]string{"message": "Hello makis"})
}
diff --git a/_examples/mvc/hello-world/main_test.go b/_examples/mvc/hello-world/main_test.go
index 5fe2d36805..22c1df91be 100644
--- a/_examples/mvc/hello-world/main_test.go
+++ b/_examples/mvc/hello-world/main_test.go
@@ -10,14 +10,14 @@ func TestMVCHelloWorld(t *testing.T) {
e := httptest.New(t, newApp())
e.GET("/").Expect().Status(httptest.StatusOK).
- ContentType("text/html", "utf-8").Body().Equal("
Welcome
")
+ ContentType("text/html", "utf-8").Body().IsEqual("Welcome
")
e.GET("/ping").Expect().Status(httptest.StatusOK).
- Body().Equal("pong")
+ Body().IsEqual("pong")
e.GET("/hello").Expect().Status(httptest.StatusOK).
JSON().Object().Value("message").Equal("Hello Iris!")
e.GET("/custom_path").Expect().Status(httptest.StatusOK).
- Body().Equal("hello from the custom handler without following the naming guide")
+ Body().IsEqual("hello from the custom handler without following the naming guide")
}
diff --git a/_examples/mvc/versioned-controller/main_test.go b/_examples/mvc/versioned-controller/main_test.go
index 33cedd42d0..a790610409 100644
--- a/_examples/mvc/versioned-controller/main_test.go
+++ b/_examples/mvc/versioned-controller/main_test.go
@@ -13,21 +13,21 @@ func TestVersionedController(t *testing.T) {
e := httptest.New(t, app)
e.GET("/data").WithHeader(versioning.AcceptVersionHeaderKey, "1.0.0").Expect().
- Status(iris.StatusOK).Body().Equal("data (v1.x)")
+ Status(iris.StatusOK).Body().IsEqual("data (v1.x)")
e.GET("/data").WithHeader(versioning.AcceptVersionHeaderKey, "2.3.0").Expect().
- Status(iris.StatusOK).Body().Equal("data (v2.x)")
+ Status(iris.StatusOK).Body().IsEqual("data (v2.x)")
e.GET("/data").WithHeader(versioning.AcceptVersionHeaderKey, "3.1.0").Expect().
- Status(iris.StatusOK).Body().Equal("data (v3.x)")
+ Status(iris.StatusOK).Body().IsEqual("data (v3.x)")
// Test invalid version or no version at all.
e.GET("/data").WithHeader(versioning.AcceptVersionHeaderKey, "4.0.0").Expect().
- Status(iris.StatusOK).Body().Equal("data")
+ Status(iris.StatusOK).Body().IsEqual("data")
e.GET("/data").Expect().
- Status(iris.StatusOK).Body().Equal("data")
+ Status(iris.StatusOK).Body().IsEqual("data")
// Test Deprecated (v1)
ex := e.GET("/data").WithHeader(versioning.AcceptVersionHeaderKey, "1.0.0").Expect()
- ex.Status(iris.StatusOK).Body().Equal("data (v1.x)")
+ ex.Status(iris.StatusOK).Body().IsEqual("data (v1.x)")
ex.Header("X-API-Warn").Equal(opts.WarnMessage)
expectedDateStr := opts.DeprecationDate.Format(app.ConfigurationReadOnly().GetTimeFormat())
ex.Header("X-API-Deprecation-Date").Equal(expectedDateStr)
diff --git a/_examples/request-body/read-body/main_test.go b/_examples/request-body/read-body/main_test.go
index 25101b6de2..6ab790657d 100644
--- a/_examples/request-body/read-body/main_test.go
+++ b/_examples/request-body/read-body/main_test.go
@@ -20,31 +20,31 @@ func TestReadBodyAndNegotiate(t *testing.T) {
// Test send JSON and receive JSON.
e.POST("/").WithJSON(expectedPayload).Expect().Status(httptest.StatusOK).
- JSON().Equal(expectedPayload)
+ JSON().IsEqual(expectedPayload)
// Test send Form and receive XML.
e.POST("/").WithForm(expectedPayload).
WithHeader("Accept", "application/xml").
Expect().Status(httptest.StatusOK).
- Body().Equal(expectedXMLPayload)
+ Body().IsEqual(expectedXMLPayload)
// Test send URL Query and receive MessagePack.
e.POST("/").WithQuery("message", expectedPayload.Message).
WithHeader("Accept", "application/msgpack").
Expect().Status(httptest.StatusOK).ContentType("application/msgpack").
- Body().Equal(expectedMsgPackPayload)
+ Body().IsEqual(expectedMsgPackPayload)
// Test send MessagePack and receive MessagePack.
e.POST("/").WithBytes([]byte(expectedMsgPackPayload)).
WithHeader("Content-Type", "application/msgpack").
WithHeader("Accept", "application/msgpack").
Expect().Status(httptest.StatusOK).
- ContentType("application/msgpack").Body().Equal(expectedMsgPackPayload)
+ ContentType("application/msgpack").Body().IsEqual(expectedMsgPackPayload)
// Test send YAML and receive YAML.
e.POST("/").WithBytes([]byte(expectedYAMLPayload)).
WithHeader("Content-Type", "application/x-yaml").
WithHeader("Accept", "application/x-yaml").
Expect().Status(httptest.StatusOK).
- ContentType("application/x-yaml").Body().Equal(expectedYAMLPayload)
+ ContentType("application/x-yaml").Body().IsEqual(expectedYAMLPayload)
}
diff --git a/_examples/request-body/read-custom-per-type/main_test.go b/_examples/request-body/read-custom-per-type/main_test.go
index 70b96c04ad..448367cdfb 100644
--- a/_examples/request-body/read-custom-per-type/main_test.go
+++ b/_examples/request-body/read-custom-per-type/main_test.go
@@ -13,5 +13,5 @@ func TestReadCustomPerType(t *testing.T) {
expectedResponse := `Received: main.config{Addr:"localhost:8080", ServerName:"Iris"}`
e.POST("/").WithText("addr: localhost:8080\nserverName: Iris").Expect().
- Status(httptest.StatusOK).Body().Equal(expectedResponse)
+ Status(httptest.StatusOK).Body().IsEqual(expectedResponse)
}
diff --git a/_examples/request-body/read-custom-via-unmarshaler/main_test.go b/_examples/request-body/read-custom-via-unmarshaler/main_test.go
index 75efdd768a..9359f042b3 100644
--- a/_examples/request-body/read-custom-via-unmarshaler/main_test.go
+++ b/_examples/request-body/read-custom-via-unmarshaler/main_test.go
@@ -13,5 +13,5 @@ func TestReadCustomViaUnmarshaler(t *testing.T) {
expectedResponse := `Received: main.config{Addr:"localhost:8080", ServerName:"Iris"}`
e.POST("/").WithText("addr: localhost:8080\nserverName: Iris").Expect().
- Status(httptest.StatusOK).Body().Equal(expectedResponse)
+ Status(httptest.StatusOK).Body().IsEqual(expectedResponse)
}
diff --git a/_examples/request-body/read-params/main_test.go b/_examples/request-body/read-params/main_test.go
index 23293423b7..debfee5806 100644
--- a/_examples/request-body/read-params/main_test.go
+++ b/_examples/request-body/read-params/main_test.go
@@ -12,5 +12,5 @@ func TestReadParams(t *testing.T) {
e := httptest.New(t, app)
expectedBody := `myParams: main.myParams{Name:"kataras", Age:27, Tail:[]string{"iris", "web", "framework"}}`
- e.GET("/kataras/27/iris/web/framework").Expect().Status(httptest.StatusOK).Body().Equal(expectedBody)
+ e.GET("/kataras/27/iris/web/framework").Expect().Status(httptest.StatusOK).Body().IsEqual(expectedBody)
}
diff --git a/_examples/request-body/read-url/main_test.go b/_examples/request-body/read-url/main_test.go
index 211069004b..ffb6232fb5 100644
--- a/_examples/request-body/read-url/main_test.go
+++ b/_examples/request-body/read-url/main_test.go
@@ -12,5 +12,5 @@ func TestReadURL(t *testing.T) {
e := httptest.New(t, app)
expectedBody := `myURL: main.myURL{Name:"kataras", Age:27, Tail:[]string{"iris", "web", "framework"}}`
- e.GET("/iris/web/framework").WithQuery("name", "kataras").WithQuery("age", 27).Expect().Status(httptest.StatusOK).Body().Equal(expectedBody)
+ e.GET("/iris/web/framework").WithQuery("name", "kataras").WithQuery("age", 27).Expect().Status(httptest.StatusOK).Body().IsEqual(expectedBody)
}
diff --git a/_examples/request-body/read-xml/main_test.go b/_examples/request-body/read-xml/main_test.go
index 3fa36b315d..1cce03e2b0 100644
--- a/_examples/request-body/read-xml/main_test.go
+++ b/_examples/request-body/read-xml/main_test.go
@@ -14,5 +14,5 @@ func TestReadXML(t *testing.T) {
send := `Description of this person, the body of this inner element.`
e.POST("/").WithText(send).Expect().
- Status(httptest.StatusOK).Body().Equal(expectedResponse)
+ Status(httptest.StatusOK).Body().IsEqual(expectedResponse)
}
diff --git a/_examples/request-body/read-yaml/main_test.go b/_examples/request-body/read-yaml/main_test.go
index 644ba55897..971e4e5d4e 100644
--- a/_examples/request-body/read-yaml/main_test.go
+++ b/_examples/request-body/read-yaml/main_test.go
@@ -20,5 +20,5 @@ comments: >
Billsmer @ 338-4338.`
e.POST("/").WithHeader("Content-Type", "application/x-yaml").WithBytes([]byte(send)).Expect().
- Status(httptest.StatusOK).Body().Equal(expectedResponse)
+ Status(httptest.StatusOK).Body().IsEqual(expectedResponse)
}
diff --git a/_examples/response-writer/content-negotiation/main_test.go b/_examples/response-writer/content-negotiation/main_test.go
index acb5bf9d6b..c4794e5e8f 100644
--- a/_examples/response-writer/content-negotiation/main_test.go
+++ b/_examples/response-writer/content-negotiation/main_test.go
@@ -28,33 +28,33 @@ func TestContentNegotiation(t *testing.T) {
e.GET("/resource").WithHeader("Accept", "application/json").
Expect().Status(httptest.StatusOK).
ContentType("application/json", "utf-8").
- JSON().Equal(expectedJSONResponse)
+ JSON().IsEqual(expectedJSONResponse)
e.GET("/resource").WithHeader("Accept", "application/xml").WithHeader("Accept-Charset", "iso-8859-7").
Expect().Status(httptest.StatusOK).
ContentType("application/xml", "iso-8859-7").
- Body().Equal(string(expectedXMLResponse))
+ Body().IsEqual(string(expectedXMLResponse))
e.GET("/resource2").WithHeader("Accept", "application/json").
Expect().Status(httptest.StatusOK).
ContentType("application/json", "utf-8").
- JSON().Equal(expectedJSONResponse)
+ JSON().IsEqual(expectedJSONResponse)
e.GET("/resource2").WithHeader("Accept", "application/xml").
Expect().Status(httptest.StatusOK).
ContentType("application/xml", "utf-8").
- Body().Equal(string(expectedXMLResponse))
+ Body().IsEqual(string(expectedXMLResponse))
e.GET("/resource2").WithHeader("Accept", "text/html").
Expect().Status(httptest.StatusOK).
ContentType("text/html", "utf-8").
- Body().Equal(expectedHTMLResponse)
+ Body().IsEqual(expectedHTMLResponse)
e.GET("/resource3").WithHeader("Accept", "application/json").
Expect().Status(httptest.StatusOK).
ContentType("application/json", "utf-8").
- JSON().Equal(expectedJSONResponse)
+ JSON().IsEqual(expectedJSONResponse)
e.GET("/resource3").WithHeader("Accept", "application/xml").
Expect().Status(httptest.StatusOK).
ContentType("application/xml", "utf-8").
- Body().Equal(string(expectedXMLResponse))
+ Body().IsEqual(string(expectedXMLResponse))
// test html with "gzip" encoding algorithm.
rawGzipResponse := e.GET("/resource3").WithHeader("Accept", "text/html").
diff --git a/_examples/routing/basic/main_test.go b/_examples/routing/basic/main_test.go
index 5756fb3d64..577c4ab843 100644
--- a/_examples/routing/basic/main_test.go
+++ b/_examples/routing/basic/main_test.go
@@ -50,39 +50,39 @@ func TestRoutingBasic(t *testing.T) {
e := httptest.New(t, app)
e.GET("/anotfound").Expect().Status(httptest.StatusNotFound).
- Body().Equal(expectedNotFoundResponse)
+ Body().IsEqual(expectedNotFoundResponse)
e.GET("/").Expect().Status(httptest.StatusOK).
- Body().Equal(expectedIndexResponse)
+ Body().IsEqual(expectedIndexResponse)
e.GET("/home").Expect().Status(httptest.StatusOK).
- Body().Equal(expectedHomeResponse)
+ Body().IsEqual(expectedHomeResponse)
e.GET("/u/some/path/here").Expect().Status(httptest.StatusOK).
- Body().Equal(expectedUpathResponse)
+ Body().IsEqual(expectedUpathResponse)
e.GET("/u/abcd123").Expect().Status(httptest.StatusOK).
- Body().Equal(expectedUStringResponse)
+ Body().IsEqual(expectedUStringResponse)
e.GET("/u/-1").Expect().Status(httptest.StatusOK).
- Body().Equal(expectedUIntResponse)
+ Body().IsEqual(expectedUIntResponse)
e.GET("/u/42").Expect().Status(httptest.StatusOK).
- Body().Equal(expectedUUintResponse)
+ Body().IsEqual(expectedUUintResponse)
e.GET("/u/abcd").Expect().Status(httptest.StatusOK).
- Body().Equal(expectedUAlphabeticalResponse)
+ Body().IsEqual(expectedUAlphabeticalResponse)
e.GET("/api/users/42").Expect().Status(httptest.StatusOK).
- JSON().Equal(expectedAPIUsersIndexResponse)
+ JSON().IsEqual(expectedAPIUsersIndexResponse)
e.GET("/admin").Expect().Status(httptest.StatusOK).
- Body().Equal(expectedAdminIndexResponse)
+ Body().IsEqual(expectedAdminIndexResponse)
e.Request("GET", "/").WithURL("http://v1.example.com").Expect().Status(httptest.StatusOK).
- Body().Equal(expectedSubdomainV1IndexResponse)
+ Body().IsEqual(expectedSubdomainV1IndexResponse)
e.Request("GET", "/api/users").WithURL("http://v1.example.com").Expect().Status(httptest.StatusOK).
- Body().Equal(expectedSubdomainV1APIUsersIndexResponse)
+ Body().IsEqual(expectedSubdomainV1APIUsersIndexResponse)
e.Request("GET", "/api/users/42").WithURL("http://v1.example.com").Expect().Status(httptest.StatusOK).
- Body().Equal(expectedSubdomainV1APIUsersIndexWithParamResponse)
+ Body().IsEqual(expectedSubdomainV1APIUsersIndexWithParamResponse)
e.Request("GET", "/").WithURL("http://any-subdomain-here.example.com").Expect().Status(httptest.StatusOK).
- Body().Equal(expectedSubdomainWildcardIndexResponse)
+ Body().IsEqual(expectedSubdomainWildcardIndexResponse)
}
diff --git a/_examples/routing/conditional-chain/main_test.go b/_examples/routing/conditional-chain/main_test.go
index ca0bb139f0..0d2a054249 100644
--- a/_examples/routing/conditional-chain/main_test.go
+++ b/_examples/routing/conditional-chain/main_test.go
@@ -11,7 +11,7 @@ func TestNewConditionalHandler(t *testing.T) {
e := httptest.New(t, app)
e.GET("/api/v1/users").Expect().Status(httptest.StatusOK).
- Body().Equal("requested: /api/v1/users")
+ Body().IsEqual("requested: /api/v1/users")
e.GET("/api/v1/users").WithQuery("admin", "true").Expect().Status(httptest.StatusOK).
- Body().Equal("Admin\nHello Admin
requested: /api/v1/users")
+ Body().IsEqual("Admin\nHello Admin
requested: /api/v1/users")
}
diff --git a/_examples/routing/custom-wrapper/main_test.go b/_examples/routing/custom-wrapper/main_test.go
index 638cab5b34..40de3fdf1d 100644
--- a/_examples/routing/custom-wrapper/main_test.go
+++ b/_examples/routing/custom-wrapper/main_test.go
@@ -54,7 +54,7 @@ func TestCustomWrapper(t *testing.T) {
e.GET(url).Expect().
Status(httptest.StatusOK).
- Body().Equal(contents)
+ Body().IsEqual(contents)
}
e.GET("/other/something").Expect().Status(httptest.StatusOK)
diff --git a/_examples/routing/dynamic-path/same-pattern-different-func/main_test.go b/_examples/routing/dynamic-path/same-pattern-different-func/main_test.go
index 1e99dd6c2b..c98a93d56a 100644
--- a/_examples/routing/dynamic-path/same-pattern-different-func/main_test.go
+++ b/_examples/routing/dynamic-path/same-pattern-different-func/main_test.go
@@ -35,7 +35,7 @@ func TestSameParameterTypeDifferentMacroFunctions(t *testing.T) {
}
)
- e.GET("/").Expect().Status(httptest.StatusOK).JSON().Equal(expectedIndex)
- e.GET("/api/random.html").Expect().Status(httptest.StatusOK).JSON().Equal(expectedHTMLPage)
- e.GET("/api/random.zip").Expect().Status(httptest.StatusOK).JSON().Equal(expectedZipName)
+ e.GET("/").Expect().Status(httptest.StatusOK).JSON().IsEqual(expectedIndex)
+ e.GET("/api/random.html").Expect().Status(httptest.StatusOK).JSON().IsEqual(expectedHTMLPage)
+ e.GET("/api/random.zip").Expect().Status(httptest.StatusOK).JSON().IsEqual(expectedZipName)
}
diff --git a/_examples/routing/dynamic-path/same-pattern-different-func/use-global/main_test.go b/_examples/routing/dynamic-path/same-pattern-different-func/use-global/main_test.go
index 6cc2cc58e0..835765a83b 100644
--- a/_examples/routing/dynamic-path/same-pattern-different-func/use-global/main_test.go
+++ b/_examples/routing/dynamic-path/same-pattern-different-func/use-global/main_test.go
@@ -20,6 +20,6 @@ func TestSamePatternDifferentFuncUseGlobal(t *testing.T) {
for path, mainBody := range tests {
result := fmt.Sprintf(expectedResultFmt, mainBody, path[1:])
- e.GET(path).Expect().Status(httptest.StatusOK).Body().Equal(result)
+ e.GET(path).Expect().Status(httptest.StatusOK).Body().IsEqual(result)
}
}
diff --git a/_examples/routing/http-errors/reset-body/main_test.go b/_examples/routing/http-errors/reset-body/main_test.go
index 3218213e15..6add7c12e3 100644
--- a/_examples/routing/http-errors/reset-body/main_test.go
+++ b/_examples/routing/http-errors/reset-body/main_test.go
@@ -10,5 +10,5 @@ func TestResetCompressionAndFireError(t *testing.T) { // #1569
app := newApp()
e := httptest.New(t, app)
- e.GET("/").Expect().Status(httptest.StatusBadRequest).Body().Equal("custom error")
+ e.GET("/").Expect().Status(httptest.StatusBadRequest).Body().IsEqual("custom error")
}
diff --git a/_examples/routing/main_test.go b/_examples/routing/main_test.go
index 93db302d02..cf12c9fef4 100644
--- a/_examples/routing/main_test.go
+++ b/_examples/routing/main_test.go
@@ -116,26 +116,26 @@ func TestRouting(t *testing.T) {
if tt.subdomain != "" {
et.WithURL("http://" + tt.subdomain + ".localhost:8080")
}
- et.Expect().Status(tt.status).Body().Equal(tt.expectedBody)
+ et.Expect().Status(tt.status).Body().IsEqual(tt.expectedBody)
}
// test POST "/" limit data and post data return
// test with small body
- e.POST("/").WithBytes([]byte("ok")).Expect().Status(httptest.StatusOK).Body().Equal("ok")
+ e.POST("/").WithBytes([]byte("ok")).Expect().Status(httptest.StatusOK).Body().IsEqual("ok")
// test with equal to max body size limit
bsent := make([]byte, maxBodySize, maxBodySize)
e.POST("/").WithBytes(bsent).Expect().Status(httptest.StatusOK).Body().Length().Equal(len(bsent))
// test with larger body sent and wait for the custom response
largerBSent := make([]byte, maxBodySize+1, maxBodySize+1)
- e.POST("/").WithBytes(largerBSent).Expect().Status(httptest.StatusBadRequest).Body().Equal("http: request body too large")
+ e.POST("/").WithBytes(largerBSent).Expect().Status(httptest.StatusBadRequest).Body().IsEqual("http: request body too large")
// test the post value (both post and put) and headers.
e.PUT("/postvalue").WithFormField("name", "test_put").
WithHeader("headername", "headervalue_put").Expect().
- Status(httptest.StatusOK).Body().Equal("Hello test_put | headervalue_put")
+ Status(httptest.StatusOK).Body().IsEqual("Hello test_put | headervalue_put")
e.POST("/postvalue").WithFormField("name", "test_post").
WithHeader("headername", "headervalue_post").Expect().
- Status(httptest.StatusOK).Body().Equal("Hello test_post | headervalue_post")
+ Status(httptest.StatusOK).Body().IsEqual("Hello test_post | headervalue_post")
}
diff --git a/_examples/routing/remove-handler/main_test.go b/_examples/routing/remove-handler/main_test.go
index fa80d17712..b9978345d5 100644
--- a/_examples/routing/remove-handler/main_test.go
+++ b/_examples/routing/remove-handler/main_test.go
@@ -10,5 +10,5 @@ func TestSimpleRouteRemoveHandler(t *testing.T) {
app := newApp()
e := httptest.New(t, app)
- e.GET("/api/users").Expect().Status(httptest.StatusOK).Body().Equal("OK")
+ e.GET("/api/users").Expect().Status(httptest.StatusOK).Body().IsEqual("OK")
}
diff --git a/_examples/routing/sitemap/main_test.go b/_examples/routing/sitemap/main_test.go
index 432fc9a5b5..9ec53af1e0 100644
--- a/_examples/routing/sitemap/main_test.go
+++ b/_examples/routing/sitemap/main_test.go
@@ -14,5 +14,5 @@ func TestSitemap(t *testing.T) {
app.Configure(iris.WithSitemap(startURL))
e := httptest.New(t, app)
- e.GET("/sitemap.xml").Expect().Status(httptest.StatusOK).Body().Equal(expectedFullSitemapXML)
+ e.GET("/sitemap.xml").Expect().Status(httptest.StatusOK).Body().IsEqual(expectedFullSitemapXML)
}
diff --git a/_examples/routing/subdomains/www/main_test.go b/_examples/routing/subdomains/www/main_test.go
index 10686065f5..7fd4c95da2 100644
--- a/_examples/routing/subdomains/www/main_test.go
+++ b/_examples/routing/subdomains/www/main_test.go
@@ -52,6 +52,6 @@ func TestSubdomainWWW(t *testing.T) {
req.Expect().
Status(httptest.StatusOK).
- Body().Equal(test.response())
+ Body().IsEqual(test.response())
}
}
diff --git a/_examples/routing/writing-a-middleware/share-funcs/main_test.go b/_examples/routing/writing-a-middleware/share-funcs/main_test.go
index a6057d9358..2dbc261d33 100644
--- a/_examples/routing/writing-a-middleware/share-funcs/main_test.go
+++ b/_examples/routing/writing-a-middleware/share-funcs/main_test.go
@@ -10,7 +10,7 @@ func TestShareFuncs(t *testing.T) {
app := newApp()
e := httptest.New(t, app)
- e.GET("/").Expect().Status(httptest.StatusOK).Body().Equal("Hello, Gophers!")
- e.GET("/2").Expect().Status(httptest.StatusOK).Body().Equal("Hello, Gophers [2]!")
- e.GET("/3").Expect().Status(httptest.StatusOK).Body().Equal("OK, job was executed.\nSee the command prompt.")
+ e.GET("/").Expect().Status(httptest.StatusOK).Body().IsEqual("Hello, Gophers!")
+ e.GET("/2").Expect().Status(httptest.StatusOK).Body().IsEqual("Hello, Gophers [2]!")
+ e.GET("/3").Expect().Status(httptest.StatusOK).Body().IsEqual("OK, job was executed.\nSee the command prompt.")
}
diff --git a/_examples/routing/writing-a-middleware/share-services/main_test.go b/_examples/routing/writing-a-middleware/share-services/main_test.go
index a5b5e137d8..e4024c314c 100644
--- a/_examples/routing/writing-a-middleware/share-services/main_test.go
+++ b/_examples/routing/writing-a-middleware/share-services/main_test.go
@@ -10,5 +10,5 @@ func TestShareServices(t *testing.T) {
app := newApp()
e := httptest.New(t, app)
- e.GET("/").Expect().Status(httptest.StatusOK).Body().Equal("Hello, Gophers!")
+ e.GET("/").Expect().Status(httptest.StatusOK).Body().IsEqual("Hello, Gophers!")
}
diff --git a/_examples/sessions/securecookie/main_test.go b/_examples/sessions/securecookie/main_test.go
index 6b0304b187..43af58db65 100644
--- a/_examples/sessions/securecookie/main_test.go
+++ b/_examples/sessions/securecookie/main_test.go
@@ -14,14 +14,14 @@ func TestSessionsEncodeDecode(t *testing.T) {
es := e.GET("/set").Expect()
es.Status(iris.StatusOK)
es.Cookies().NotEmpty()
- es.Body().Equal("All ok session set to: iris [isNew=true]")
+ es.Body().IsEqual("All ok session set to: iris [isNew=true]")
- e.GET("/get").Expect().Status(iris.StatusOK).Body().Equal("The username on the /set was: iris")
+ e.GET("/get").Expect().Status(iris.StatusOK).Body().IsEqual("The username on the /set was: iris")
// delete and re-get
e.GET("/delete").Expect().Status(iris.StatusOK)
- e.GET("/get").Expect().Status(iris.StatusOK).Body().Equal("The username on the /set was: ")
+ e.GET("/get").Expect().Status(iris.StatusOK).Body().IsEqual("The username on the /set was: ")
// set, clear and re-get
- e.GET("/set").Expect().Body().Equal("All ok session set to: iris [isNew=false]")
+ e.GET("/set").Expect().Body().IsEqual("All ok session set to: iris [isNew=false]")
e.GET("/clear").Expect().Status(iris.StatusOK)
- e.GET("/get").Expect().Status(iris.StatusOK).Body().Equal("The username on the /set was: ")
+ e.GET("/get").Expect().Status(iris.StatusOK).Body().IsEqual("The username on the /set was: ")
}
diff --git a/_examples/testing/httptest/main_test.go b/_examples/testing/httptest/main_test.go
index 1846541d6f..bc39a0dd89 100644
--- a/_examples/testing/httptest/main_test.go
+++ b/_examples/testing/httptest/main_test.go
@@ -19,11 +19,11 @@ func TestNewApp(t *testing.T) {
// with valid basic auth
e.GET("/admin").WithBasicAuth("myusername", "mypassword").Expect().
- Status(httptest.StatusOK).Body().Equal("/admin myusername:mypassword")
+ Status(httptest.StatusOK).Body().IsEqual("/admin myusername:mypassword")
e.GET("/admin/profile").WithBasicAuth("myusername", "mypassword").Expect().
- Status(httptest.StatusOK).Body().Equal("/admin/profile myusername:mypassword")
+ Status(httptest.StatusOK).Body().IsEqual("/admin/profile myusername:mypassword")
e.GET("/admin/settings").WithBasicAuth("myusername", "mypassword").Expect().
- Status(httptest.StatusOK).Body().Equal("/admin/settings myusername:mypassword")
+ Status(httptest.StatusOK).Body().IsEqual("/admin/settings myusername:mypassword")
// with invalid basic auth
e.GET("/admin/settings").WithBasicAuth("invalidusername", "invalidpassword").
diff --git a/_examples/view/quicktemplate/main_test.go b/_examples/view/quicktemplate/main_test.go
index 5fcf941187..147db84bfe 100644
--- a/_examples/view/quicktemplate/main_test.go
+++ b/_examples/view/quicktemplate/main_test.go
@@ -42,6 +42,6 @@ func TestResponseWriterQuicktemplate(t *testing.T) {
e := httptest.New(t, app)
- e.GET("/").Expect().Status(httptest.StatusOK).Body().Equal(expectedIndexRawBody)
- e.GET("/" + name).Expect().Status(httptest.StatusOK).Body().Equal(expectedHelloRawBody)
+ e.GET("/").Expect().Status(httptest.StatusOK).Body().IsEqual(expectedIndexRawBody)
+ e.GET("/" + name).Expect().Status(httptest.StatusOK).Body().IsEqual(expectedHelloRawBody)
}
diff --git a/apps/switch_hosts_test.go b/apps/switch_hosts_test.go
index da9cc1f7db..92f16509cc 100644
--- a/apps/switch_hosts_test.go
+++ b/apps/switch_hosts_test.go
@@ -108,7 +108,7 @@ func TestSwitchHosts(t *testing.T) {
body = "Switcher: Bad Gateway"
}
- e.GET(requestPath).WithURL(URL).Expect().Status(statusCode).Body().Equal(body)
+ e.GET(requestPath).WithURL(URL).Expect().Status(statusCode).Body().IsEqual(body)
}
}
}
@@ -204,7 +204,7 @@ func TestSwitchHostsRedirect(t *testing.T) {
}
}
- e.GET(requestPath).WithURL(requestURL).Expect().Status(statusCode).Body().Equal(body)
+ e.GET(requestPath).WithURL(requestURL).Expect().Status(statusCode).Body().IsEqual(body)
}
}
}
diff --git a/apps/switch_options_test.go b/apps/switch_options_test.go
index d398a2a698..e9b86edabe 100644
--- a/apps/switch_options_test.go
+++ b/apps/switch_options_test.go
@@ -33,6 +33,6 @@ func TestSetHost(t *testing.T) {
for _, tt := range tests {
ex := tt.Expect().Status(iris.StatusOK)
ex.Header("Server").Equal(rootApp.String())
- ex.Body().Equal(forceHost)
+ ex.Body().IsEqual(forceHost)
}
}
diff --git a/cache/browser_test.go b/cache/browser_test.go
index 7b0eac2e81..2be243809a 100644
--- a/cache/browser_test.go
+++ b/cache/browser_test.go
@@ -22,7 +22,7 @@ func TestNoCache(t *testing.T) {
e := httptest.New(t, app)
r := e.GET("/").Expect().Status(httptest.StatusOK)
- r.Body().Equal("no_cache")
+ r.Body().IsEqual("no_cache")
r.Header(context.CacheControlHeaderKey).Equal(cache.CacheControlHeaderValue)
r.Header(cache.PragmaHeaderKey).Equal(cache.PragmaNoCacheHeaderValue)
r.Header(cache.ExpiresHeaderKey).Equal(cache.ExpiresNeverHeaderValue)
@@ -42,7 +42,7 @@ func TestStaticCache(t *testing.T) {
// tests
e := httptest.New(t, app)
r := e.GET("/").Expect().Status(httptest.StatusOK)
- r.Body().Equal("static_cache")
+ r.Body().IsEqual("static_cache")
r.Header(cache.ExpiresHeaderKey).Equal(expectedTime.Add(cacheDur).Format(app.ConfigurationReadOnly().GetTimeFormat()))
cacheControlHeaderValue := "public, max-age=" + strconv.Itoa(int(cacheDur.Seconds()))
@@ -64,15 +64,15 @@ func TestCache304(t *testing.T) {
insideCacheTimef := time.Now().Add(-expiresEvery).UTC().Format(app.ConfigurationReadOnly().GetTimeFormat())
r := e.GET("/").WithHeader(context.IfModifiedSinceHeaderKey, insideCacheTimef).Expect().Status(httptest.StatusNotModified)
r.Headers().NotContainsKey(context.ContentTypeHeaderKey).NotContainsKey(context.ContentLengthHeaderKey).NotContainsKey("ETag")
- r.Body().Equal("")
+ r.Body().IsEqual("")
// continue to the handler itself.
cacheInvalidatedTimef := time.Now().Add(expiresEvery).UTC().Format(app.ConfigurationReadOnly().GetTimeFormat()) // after ~5seconds.
r = e.GET("/").WithHeader(context.LastModifiedHeaderKey, cacheInvalidatedTimef).Expect().Status(httptest.StatusOK)
- r.Body().Equal("send")
+ r.Body().IsEqual("send")
// now without header, it should continue to the handler itself as well.
r = e.GET("/").Expect().Status(httptest.StatusOK)
- r.Body().Equal("send")
+ r.Body().IsEqual("send")
}
func TestETag(t *testing.T) {
@@ -91,12 +91,12 @@ func TestETag(t *testing.T) {
r := e.GET("/").Expect().Status(httptest.StatusOK)
r.Header("ETag").Equal("/") // test if header set.
- r.Body().Equal("_")
+ r.Body().IsEqual("_")
e.GET("/").WithHeader("ETag", "/").WithHeader("If-None-Match", "/").Expect().
- Status(httptest.StatusNotModified).Body().Equal("") // browser is responsible, no the test engine.
+ Status(httptest.StatusNotModified).Body().IsEqual("") // browser is responsible, no the test engine.
r = e.GET("/").Expect().Status(httptest.StatusOK)
r.Header("ETag").Equal("/") // test if header set.
- r.Body().Equal("__")
+ r.Body().IsEqual("__")
}
diff --git a/cache/cache_test.go b/cache/cache_test.go
index f80f15b3dc..619ad5982c 100644
--- a/cache/cache_test.go
+++ b/cache/cache_test.go
@@ -33,9 +33,9 @@ func (h *testError) Error() string {
}
func runTest(e *httpexpect.Expect, path string, counterPtr *uint32, expectedBodyStr string, nocache string) error {
- e.GET(path).Expect().Status(http.StatusOK).Body().Equal(expectedBodyStr)
+ e.GET(path).Expect().Status(http.StatusOK).Body().IsEqual(expectedBodyStr)
time.Sleep(cacheDuration / 5) // lets wait for a while, cache should be saved and ready
- e.GET(path).Expect().Status(http.StatusOK).Body().Equal(expectedBodyStr)
+ e.GET(path).Expect().Status(http.StatusOK).Body().IsEqual(expectedBodyStr)
counter := atomic.LoadUint32(counterPtr)
if counter > 1 {
// n should be 1 because it doesn't changed after the first call
@@ -44,10 +44,10 @@ func runTest(e *httpexpect.Expect, path string, counterPtr *uint32, expectedBody
time.Sleep(cacheDuration)
// cache should be cleared now
- e.GET(path).Expect().Status(http.StatusOK).Body().Equal(expectedBodyStr)
+ e.GET(path).Expect().Status(http.StatusOK).Body().IsEqual(expectedBodyStr)
time.Sleep(cacheDuration / 5)
// let's call again , the cache should be saved
- e.GET(path).Expect().Status(http.StatusOK).Body().Equal(expectedBodyStr)
+ e.GET(path).Expect().Status(http.StatusOK).Body().IsEqual(expectedBodyStr)
counter = atomic.LoadUint32(counterPtr)
if counter != 2 {
return &testError{2, counter}
@@ -55,8 +55,8 @@ func runTest(e *httpexpect.Expect, path string, counterPtr *uint32, expectedBody
// we have cache response saved for the path, we have some time more here, but here
// we will make the requestS with some of the deniers options
- e.GET(path).WithHeader("max-age", "0").Expect().Status(http.StatusOK).Body().Equal(expectedBodyStr)
- e.GET(path).WithHeader("Authorization", "basic or anything").Expect().Status(http.StatusOK).Body().Equal(expectedBodyStr)
+ e.GET(path).WithHeader("max-age", "0").Expect().Status(http.StatusOK).Body().IsEqual(expectedBodyStr)
+ e.GET(path).WithHeader("Authorization", "basic or anything").Expect().Status(http.StatusOK).Body().IsEqual(expectedBodyStr)
counter = atomic.LoadUint32(counterPtr)
if counter != 4 {
return &testError{4, counter}
@@ -69,19 +69,19 @@ func runTest(e *httpexpect.Expect, path string, counterPtr *uint32, expectedBody
time.Sleep(cacheDuration)
// cache should be cleared now, this should work because we are not in the "nocache" path
- e.GET("/").Expect().Status(http.StatusOK).Body().Equal(expectedBodyStr) // counter = 5
+ e.GET("/").Expect().Status(http.StatusOK).Body().IsEqual(expectedBodyStr) // counter = 5
time.Sleep(cacheDuration / 5)
// let's call the "nocache", the expiration is not passed so but the "nocache"
// route's path has the cache.NoCache so it should be not cached and the counter should be ++
- e.GET(nocache).Expect().Status(http.StatusOK).Body().Equal(expectedBodyStr) // counter should be 6
+ e.GET(nocache).Expect().Status(http.StatusOK).Body().IsEqual(expectedBodyStr) // counter should be 6
counter = atomic.LoadUint32(counterPtr)
if counter != 6 { // 4 before, 5 with the first call to store the cache, and six with the no cache, again original handler executation
return &testError{6, counter}
}
// let's call again the path the expiration is not passed so it should be cached
- e.GET(path).Expect().Status(http.StatusOK).Body().Equal(expectedBodyStr)
+ e.GET(path).Expect().Status(http.StatusOK).Body().IsEqual(expectedBodyStr)
counter = atomic.LoadUint32(counterPtr)
if counter != 6 {
return &testError{6, counter}
@@ -195,17 +195,17 @@ func TestCacheValidator(t *testing.T) {
e := httptest.New(t, app)
// execute from cache the next time
- e.GET("/valid").Expect().Status(http.StatusOK).Body().Equal(expectedBodyStr)
+ e.GET("/valid").Expect().Status(http.StatusOK).Body().IsEqual(expectedBodyStr)
time.Sleep(cacheDuration / 5) // lets wait for a while, cache should be saved and ready
- e.GET("/valid").Expect().Status(http.StatusOK).Body().Equal(expectedBodyStr)
+ e.GET("/valid").Expect().Status(http.StatusOK).Body().IsEqual(expectedBodyStr)
counter := atomic.LoadUint32(&n)
if counter > 1 {
// n should be 1 because it doesn't changed after the first call
t.Fatalf("%s: %v", t.Name(), &testError{1, counter})
}
// don't execute from cache, execute the original, counter should ++ here
- e.GET("/invalid").Expect().Status(http.StatusOK).Body().Equal(expectedBodyStr) // counter = 2
- e.GET("/invalid2").Expect().Status(http.StatusOK).Body().Equal(expectedBodyStr) // counter = 3
+ e.GET("/invalid").Expect().Status(http.StatusOK).Body().IsEqual(expectedBodyStr) // counter = 2
+ e.GET("/invalid2").Expect().Status(http.StatusOK).Body().IsEqual(expectedBodyStr) // counter = 3
counter = atomic.LoadUint32(&n)
if counter != 3 {
diff --git a/core/handlerconv/from_std_test.go b/core/handlerconv/from_std_test.go
index c024f244fd..8f739744b6 100644
--- a/core/handlerconv/from_std_test.go
+++ b/core/handlerconv/from_std_test.go
@@ -32,10 +32,10 @@ func TestFromStd(t *testing.T) {
e := httptest.New(t, app)
e.GET("/handler").
- Expect().Status(iris.StatusOK).Body().Equal(expected)
+ Expect().Status(iris.StatusOK).Body().IsEqual(expected)
e.GET("/func").
- Expect().Status(iris.StatusOK).Body().Equal(expected)
+ Expect().Status(iris.StatusOK).Body().IsEqual(expected)
}
func TestFromStdWithNext(t *testing.T) {
@@ -67,5 +67,5 @@ func TestFromStdWithNext(t *testing.T) {
Expect().Status(iris.StatusForbidden)
e.GET("/handlerwithnext").WithBasicAuth(basicauth, basicauth).
- Expect().Status(iris.StatusOK).Body().Equal(passed)
+ Expect().Status(iris.StatusOK).Body().IsEqual(passed)
}
diff --git a/core/host/proxy_test.go b/core/host/proxy_test.go
index f1659bcf31..4b8ba34fb5 100644
--- a/core/host/proxy_test.go
+++ b/core/host/proxy_test.go
@@ -68,7 +68,7 @@ func TestProxy(t *testing.T) {
go app.Run(iris.Listener(httptest.NewLocalTLSListener(l)), iris.WithoutStartupLog) // nolint:errcheck
e := httptest.NewInsecure(t, httptest.URL("http://"+listener.Addr().String()))
- e.GET("/").Expect().Status(iris.StatusOK).Body().Equal(expectedIndex)
- e.GET("/about").Expect().Status(iris.StatusOK).Body().Equal(expectedAbout)
- e.GET("/notfound").Expect().Status(iris.StatusNotFound).Body().Equal(unexpectedRoute)
+ e.GET("/").Expect().Status(iris.StatusOK).Body().IsEqual(expectedIndex)
+ e.GET("/about").Expect().Status(iris.StatusOK).Body().IsEqual(expectedAbout)
+ e.GET("/notfound").Expect().Status(iris.StatusNotFound).Body().IsEqual(unexpectedRoute)
}
diff --git a/core/host/supervisor_test.go b/core/host/supervisor_test.go
index f683060da8..c8b3f82b2c 100644
--- a/core/host/supervisor_test.go
+++ b/core/host/supervisor_test.go
@@ -93,7 +93,7 @@ func testSupervisor(t *testing.T, creator func(*http.Server, []func(TaskHost)) *
// http testsing and various calls
// no need for time sleep because the following will take some time by theirselves
tester := newTester(t, "http://"+addr, mux)
- tester.Request("GET", "/").Expect().Status(http.StatusOK).Body().Equal(expectedBody)
+ tester.Request("GET", "/").Expect().Status(http.StatusOK).Body().IsEqual(expectedBody)
// WARNING: Data Race here because we try to read the logs
// but it's "safe" here.
diff --git a/core/router/api_builder.go b/core/router/api_builder.go
index 5ceac69bbd..5b306abb83 100644
--- a/core/router/api_builder.go
+++ b/core/router/api_builder.go
@@ -6,9 +6,7 @@ import (
"net/http"
"os"
"path"
- "path/filepath"
"reflect"
- "runtime"
"strings"
"time"
@@ -722,7 +720,7 @@ func (api *APIBuilder) createRoutes(errorCode int, methods []string, relativePat
}
}
- filename, line := getCaller()
+ filename, line := hero.GetCaller()
fullpath := api.relativePath + relativePath // for now, keep the last "/" if any, "/xyz/"
if len(handlers) == 0 {
@@ -1706,50 +1704,3 @@ func (api *APIBuilder) Layout(tmplLayoutFile string) Party {
return api
}
-
-// https://golang.org/doc/go1.9#callersframes
-func getCaller() (string, int) {
- var pcs [32]uintptr
- n := runtime.Callers(1, pcs[:])
- frames := runtime.CallersFrames(pcs[:n])
- wd, _ := os.Getwd()
-
- var (
- frame runtime.Frame
- more = true
- )
-
- for {
- if !more {
- break
- }
-
- frame, more = frames.Next()
- file := filepath.ToSlash(frame.File)
- // fmt.Printf("%s:%d | %s\n", file, frame.Line, frame.Function)
-
- if strings.Contains(file, "go/src/runtime/") {
- continue
- }
-
- if !strings.Contains(file, "_test.go") {
- if strings.Contains(file, "/kataras/iris") &&
- !strings.Contains(file, "kataras/iris/_examples") &&
- !strings.Contains(file, "kataras/iris/middleware") &&
- !strings.Contains(file, "iris-contrib/examples") {
- continue
- }
- }
-
- if relFile, err := filepath.Rel(wd, file); err == nil {
- if !strings.HasPrefix(relFile, "..") {
- // Only if it's relative to this path, not parent.
- file = "./" + filepath.ToSlash(relFile)
- }
- }
-
- return file, frame.Line
- }
-
- return "???", 0
-}
diff --git a/core/router/api_builder_benchmark_test.go b/core/router/api_builder_benchmark_test.go
index d9b8015add..ce2f94f737 100644
--- a/core/router/api_builder_benchmark_test.go
+++ b/core/router/api_builder_benchmark_test.go
@@ -72,7 +72,7 @@ func genPaths(routesLength, minCharLength, maxCharLength int) []string {
//
// GOCACHE=off && go test -run=XXX -bench=BenchmarkAPIBuilder$ -benchtime=10s
func BenchmarkAPIBuilder(b *testing.B) {
- rand.Seed(time.Now().Unix())
+ rand.New(rand.NewSource(time.Now().Unix()))
noOpHandler := func(ctx *context.Context) {}
handlersPerRoute := make(context.Handlers, 12)
diff --git a/core/router/handler_execution_rules_test.go b/core/router/handler_execution_rules_test.go
index ae65a80053..7f43a49f88 100644
--- a/core/router/handler_execution_rules_test.go
+++ b/core/router/handler_execution_rules_test.go
@@ -14,7 +14,7 @@ var (
testExecutionResponse = func(t *testing.T, app *iris.Application, path string) {
e := httptest.New(t, app)
- e.GET(path).Expect().Status(httptest.StatusOK).Body().Equal(finalExecutionRulesResponse)
+ e.GET(path).Expect().Status(httptest.StatusOK).Body().IsEqual(finalExecutionRulesResponse)
}
)
@@ -87,5 +87,5 @@ func TestRouterExecutionRulesShouldNotModifyTheCallersHandlerAndChildrenCanReset
testExecutionResponse(t, app, "/")
e := httptest.New(t, app)
- e.GET("/c").Expect().Status(httptest.StatusOK).Body().Equal("4") // the "should not" should not be written.
+ e.GET("/c").Expect().Status(httptest.StatusOK).Body().IsEqual("4") // the "should not" should not be written.
}
diff --git a/core/router/route_register_rule_test.go b/core/router/route_register_rule_test.go
index 8beb27cb4f..9fd8ce1aae 100644
--- a/core/router/route_register_rule_test.go
+++ b/core/router/route_register_rule_test.go
@@ -57,9 +57,9 @@ func testRegisterRule(e *httptest.Expect, expectedGetBody string) {
for _, method := range router.AllMethods {
tt := e.Request(method, "/v1").Expect().Status(httptest.StatusOK).Body()
if method == iris.MethodGet {
- tt.Equal(expectedGetBody)
+ tt.IsEqual(expectedGetBody)
} else {
- tt.Equal("[any] " + method)
+ tt.IsEqual("[any] " + method)
}
}
}
@@ -111,8 +111,8 @@ func TestRegisterRuleOverlap(t *testing.T) {
e := httptest.New(t, app)
- e.GET("/users").Expect().Status(httptest.StatusOK).Body().Equal("data")
- e.GET("/users/p1").Expect().Status(httptest.StatusUnauthorized).Body().Equal("Unauthorized")
- e.GET("/users/p2").Expect().Status(httptest.StatusUnauthorized).Body().Equal("no access")
- e.GET("/users/p3").Expect().Status(httptest.StatusOK).Body().Equal("p3 data")
+ e.GET("/users").Expect().Status(httptest.StatusOK).Body().IsEqual("data")
+ e.GET("/users/p1").Expect().Status(httptest.StatusUnauthorized).Body().IsEqual("Unauthorized")
+ e.GET("/users/p2").Expect().Status(httptest.StatusUnauthorized).Body().IsEqual("no access")
+ e.GET("/users/p3").Expect().Status(httptest.StatusOK).Body().IsEqual("p3 data")
}
diff --git a/core/router/router_handlers_order_test.go b/core/router/router_handlers_order_test.go
index 0c9c96ffb7..9d1bbc0894 100644
--- a/core/router/router_handlers_order_test.go
+++ b/core/router/router_handlers_order_test.go
@@ -68,7 +68,7 @@ var (
t.Helper()
e := httptest.New(t, app)
- e.GET(path).Expect().Status(httptest.StatusOK).Body().Equal(finalResponse)
+ e.GET(path).Expect().Status(httptest.StatusOK).Body().IsEqual(finalResponse)
}
)
@@ -169,7 +169,7 @@ func TestUseRouterStopExecution(t *testing.T) {
app.Get("/", writeHandler("index"))
e := httptest.New(t, app)
- e.GET("/").Expect().Status(iris.StatusOK).Body().Equal("stop")
+ e.GET("/").Expect().Status(iris.StatusOK).Body().IsEqual("stop")
app = iris.New()
app.OnErrorCode(iris.StatusForbidden, func(ctx iris.Context) {
@@ -183,7 +183,7 @@ func TestUseRouterStopExecution(t *testing.T) {
app.Get("/", writeHandler("index"))
e = httptest.New(t, app)
- e.GET("/").Expect().Status(iris.StatusForbidden).Body().Equal("err: custom error")
+ e.GET("/").Expect().Status(iris.StatusForbidden).Body().IsEqual("err: custom error")
}
func TestUseRouterParentDisallow(t *testing.T) {
@@ -226,9 +226,9 @@ func TestUseRouterParentDisallow(t *testing.T) {
})
e := httptest.New(t, app)
- e.GET("/index").Expect().Status(iris.StatusOK).Body().Equal(expectedResponse)
- e.GET("/").Expect().Status(iris.StatusOK).Body().Equal(expectedResponse)
- e.GET("/user").Expect().Status(iris.StatusOK).Body().Equal(expectedResponse)
+ e.GET("/index").Expect().Status(iris.StatusOK).Body().IsEqual(expectedResponse)
+ e.GET("/").Expect().Status(iris.StatusOK).Body().IsEqual(expectedResponse)
+ e.GET("/user").Expect().Status(iris.StatusOK).Body().IsEqual(expectedResponse)
}
func TestUseRouterSubdomains(t *testing.T) {
@@ -270,21 +270,21 @@ func TestUseRouterSubdomains(t *testing.T) {
})
e := httptest.New(t, app, httptest.URL("http://example.com"))
- e.GET("/notfound").Expect().Status(iris.StatusOK).Body().Equal("always_")
+ e.GET("/notfound").Expect().Status(iris.StatusOK).Body().IsEqual("always_")
e.GET("/").WithURL("http://admin.example.com").Expect().Status(iris.StatusOK).Body().
- Equal("always_admin always_admin")
+ IsEqual("always_admin always_admin")
e.GET("/").WithURL("http://control.admin.example.com").Expect().Status(iris.StatusOK).Body().
- Equal("always_admin always_control admin always_control admin")
+ IsEqual("always_admin always_control admin always_control admin")
// It has a route, and use router just proceeds to the router.
e.GET("/").WithURL("http://old.example.com").Expect().Status(iris.StatusOK).Body().
- Equal("chat")
+ IsEqual("chat")
// this is not a registered path, should fire 404, the UseRouter does not write
// anything to the response writer, so the router has control over it.
e.GET("/notfound").WithURL("http://old.example.com").Expect().Status(iris.StatusNotFound).Body().
- Equal("Not Found")
+ IsEqual("Not Found")
}
func TestUseWrapOrder(t *testing.T) {
@@ -359,8 +359,8 @@ func TestUseWrapOrder(t *testing.T) {
app.Get("/", handler)
e := httptest.New(t, app)
- e.GET("/NotFound").Expect().Status(iris.StatusNotFound).Body().Equal(expectedNotFoundBody)
- e.GET("/").Expect().Status(iris.StatusOK).Body().Equal(expectedBody)
+ e.GET("/NotFound").Expect().Status(iris.StatusNotFound).Body().IsEqual(expectedNotFoundBody)
+ e.GET("/").Expect().Status(iris.StatusOK).Body().IsEqual(expectedBody)
}
func TestResumeExecution(t *testing.T) {
@@ -414,5 +414,5 @@ func TestResumeExecution(t *testing.T) {
app.Get("/", before, handler, after)
e := httptest.New(t, app)
- e.GET("/").Expect().Status(iris.StatusOK).Body().Equal(expectedBody)
+ e.GET("/").Expect().Status(iris.StatusOK).Body().IsEqual(expectedBody)
}
diff --git a/core/router/router_test.go b/core/router/router_test.go
index 73008385ef..d1d43ceb48 100644
--- a/core/router/router_test.go
+++ b/core/router/router_test.go
@@ -69,9 +69,9 @@ func TestLowercaseRouting(t *testing.T) {
e := httptest.New(t, app)
for _, tt := range tests {
s := strings.ToLower(tt)
- e.GET(tt).Expect().Status(httptest.StatusOK).Body().Equal(s)
- e.GET(s).Expect().Status(httptest.StatusOK).Body().Equal(s)
- e.GET(strings.ToUpper(tt)).Expect().Status(httptest.StatusOK).Body().Equal(s)
+ e.GET(tt).Expect().Status(httptest.StatusOK).Body().IsEqual(s)
+ e.GET(s).Expect().Status(httptest.StatusOK).Body().IsEqual(s)
+ e.GET(strings.ToUpper(tt)).Expect().Status(httptest.StatusOK).Body().IsEqual(s)
}
}
@@ -156,7 +156,7 @@ func TestRouterWrapperOrder(t *testing.T) {
app.Get("/", func(ctx iris.Context) {}) // to not append the not found one.
e := httptest.New(t, app)
- e.GET("/").Expect().Status(iris.StatusOK).Body().Equal(expectedOrderStr)
+ e.GET("/").Expect().Status(iris.StatusOK).Body().IsEqual(expectedOrderStr)
}
}
@@ -190,9 +190,9 @@ func TestNewSubdomainPartyRedirectHandler(t *testing.T) {
}
e := httptest.New(t, app)
- e.GET("/").WithURL("http://mydomain.com").Expect().Status(iris.StatusOK).Body().Equal("root index")
- e.GET("/").WithURL("http://test.mydomain.com").Expect().Status(iris.StatusOK).Body().Equal("test index")
- e.GET("/").WithURL("http://testold.mydomain.com").Expect().Status(iris.StatusOK).Body().Equal("test index")
- e.GET("/").WithURL("http://testold.mydomain.com/notfound").Expect().Status(iris.StatusNotFound).Body().Equal("test 404")
- e.GET("/").WithURL("http://leveled.testold.mydomain.com").Expect().Status(iris.StatusOK).Body().Equal("leveled.testold this can be fired")
+ e.GET("/").WithURL("http://mydomain.com").Expect().Status(iris.StatusOK).Body().IsEqual("root index")
+ e.GET("/").WithURL("http://test.mydomain.com").Expect().Status(iris.StatusOK).Body().IsEqual("test index")
+ e.GET("/").WithURL("http://testold.mydomain.com").Expect().Status(iris.StatusOK).Body().IsEqual("test index")
+ e.GET("/").WithURL("http://testold.mydomain.com/notfound").Expect().Status(iris.StatusNotFound).Body().IsEqual("test 404")
+ e.GET("/").WithURL("http://leveled.testold.mydomain.com").Expect().Status(iris.StatusOK).Body().IsEqual("leveled.testold this can be fired")
}
diff --git a/core/router/router_wildcard_root_test.go b/core/router/router_wildcard_root_test.go
index c6f943053a..07642d0529 100644
--- a/core/router/router_wildcard_root_test.go
+++ b/core/router/router_wildcard_root_test.go
@@ -192,7 +192,7 @@ func testTheRoutes(t *testing.T, tests []testRoute, debug bool) {
expectedBody = staticPathPrefixBody + req.path
}
- ex.Expect().Status(req.expectedStatusCode).Body().Equal(expectedBody)
+ ex.Expect().Status(req.expectedStatusCode).Body().IsEqual(expectedBody)
}
}
}
diff --git a/core/router/status_test.go b/core/router/status_test.go
index 8a4a109fe8..78eb050dd3 100644
--- a/core/router/status_test.go
+++ b/core/router/status_test.go
@@ -45,20 +45,20 @@ func TestOnAnyErrorCode(t *testing.T) {
e := httptest.New(t, app)
e.GET("/found").Expect().Status(iris.StatusOK).
- Body().Equal(expectedFoundResponse)
+ Body().IsEqual(expectedFoundResponse)
e.GET("/notfound").Expect().Status(iris.StatusNotFound).
- Body().Equal(http.StatusText(iris.StatusNotFound))
+ Body().IsEqual(http.StatusText(iris.StatusNotFound))
checkAndClearBuf(t, buff, expectedPrintBeforeExecuteErr)
e.POST("/found").Expect().Status(iris.StatusMethodNotAllowed).
- Body().Equal(http.StatusText(iris.StatusMethodNotAllowed))
+ Body().IsEqual(http.StatusText(iris.StatusMethodNotAllowed))
checkAndClearBuf(t, buff, expectedPrintBeforeExecuteErr)
e.GET("/407").Expect().Status(iris.StatusProxyAuthRequired).
- Body().Equal(expected407)
+ Body().IsEqual(expected407)
// Test Configuration.ResetOnFireErrorCode.
app2 := iris.New()
@@ -77,7 +77,7 @@ func TestOnAnyErrorCode(t *testing.T) {
})
httptest.New(t, app2).GET("/406").Expect().Status(iris.StatusNotAcceptable).
- Body().Equal(http.StatusText(iris.StatusNotAcceptable))
+ Body().IsEqual(http.StatusText(iris.StatusNotAcceptable))
checkAndClearBuf(t, buff, expectedPrintBeforeExecuteErr)
}
@@ -135,26 +135,26 @@ func TestPartyOnErrorCode(t *testing.T) {
e := httptest.New(t, app)
- e.GET("/notfound").Expect().Status(iris.StatusNotFound).Body().Equal(globalNotFoundResponse)
- e.POST("/path").Expect().Status(iris.StatusMethodNotAllowed).Body().Equal(globalMethodNotAllowedResponse)
- e.GET("/path").Expect().Status(iris.StatusOK).Body().Equal("/path")
+ e.GET("/notfound").Expect().Status(iris.StatusNotFound).Body().IsEqual(globalNotFoundResponse)
+ e.POST("/path").Expect().Status(iris.StatusMethodNotAllowed).Body().IsEqual(globalMethodNotAllowedResponse)
+ e.GET("/path").Expect().Status(iris.StatusOK).Body().IsEqual("/path")
e.POST("/users").Expect().Status(iris.StatusMethodNotAllowed).
- Body().Equal(usersResponse)
+ Body().IsEqual(usersResponse)
e.POST("/users/42").Expect().Status(iris.StatusMethodNotAllowed).
- Body().Equal(usersuserResponse)
+ Body().IsEqual(usersuserResponse)
e.GET("/users/42").Expect().Status(iris.StatusOK).
- Body().Equal("/users/42")
- e.GET("/users/ab").Expect().Status(iris.StatusNotFound).Body().Equal(usersuserNotFoundResponse)
+ Body().IsEqual("/users/42")
+ e.GET("/users/ab").Expect().Status(iris.StatusNotFound).Body().IsEqual(usersuserNotFoundResponse)
// inherit the parent.
- e.GET("/users/42/friends/dsa").Expect().Status(iris.StatusNotFound).Body().Equal(usersuserNotFoundResponse)
+ e.GET("/users/42/friends/dsa").Expect().Status(iris.StatusNotFound).Body().IsEqual(usersuserNotFoundResponse)
// if not registered to the party, then the root is taking action.
- e.GET("/users/42/ab/badrequest").Expect().Status(iris.StatusBadRequest).Body().Equal(http.StatusText(iris.StatusBadRequest))
+ e.GET("/users/42/ab/badrequest").Expect().Status(iris.StatusBadRequest).Body().IsEqual(http.StatusText(iris.StatusBadRequest))
// if not registered to the party, and not in root, then just write the status text (fallback behavior)
e.GET("/users/badrequest").Expect().Status(iris.StatusBadRequest).
- Body().Equal(http.StatusText(iris.StatusBadRequest))
+ Body().IsEqual(http.StatusText(iris.StatusBadRequest))
}
diff --git a/hero/binding.go b/hero/binding.go
index de1af4c1d5..07fe12975f 100644
--- a/hero/binding.go
+++ b/hero/binding.go
@@ -253,7 +253,7 @@ func isPayloadType(in reflect.Type) bool {
func getBindingsForFunc(fn reflect.Value, dependencies []*Dependency, disablePayloadAutoBinding bool, paramsCount int) []*binding {
fnTyp := fn.Type()
if !isFunc(fnTyp) {
- panic("bindings: unresolved: not a func type")
+ panic(fmt.Sprintf("bindings: unresolved: no a func type: %#+v", fn))
}
n := fnTyp.NumIn()
@@ -294,7 +294,7 @@ func getBindingsForFunc(fn reflect.Value, dependencies []*Dependency, disablePay
func getBindingsForStruct(v reflect.Value, dependencies []*Dependency, markExportedFieldsAsRequired bool, disablePayloadAutoBinding bool, matchDependency DependencyMatcher, paramsCount int, sorter Sorter) (bindings []*binding) {
typ := indirectType(v.Type())
if typ.Kind() != reflect.Struct {
- panic("bindings: unresolved: no struct type")
+ panic(fmt.Sprintf("bindings: unresolved: not a struct type: %#+v", v))
}
// get bindings from any struct's non zero values first, including unexported.
diff --git a/hero/container_test.go b/hero/container_test.go
index 8399ebcf73..f0e35098b2 100644
--- a/hero/container_test.go
+++ b/hero/container_test.go
@@ -55,7 +55,7 @@ func TestContainerHandler(t *testing.T) {
e := httptest.New(t, app)
path := fmt.Sprintf("/%d", expectedOutput.ID)
- e.POST(path).WithJSON(input).Expect().Status(httptest.StatusOK).JSON().Equal(expectedOutput)
+ e.POST(path).WithJSON(input).Expect().Status(httptest.StatusOK).JSON().IsEqual(expectedOutput)
}
func TestContainerInject(t *testing.T) {
@@ -127,5 +127,5 @@ func TestContainerUseResultHandler(t *testing.T) {
app.Get("/{id:int}", handler)
e := httptest.New(t, app)
- e.GET("/42").Expect().Status(httptest.StatusOK).JSON().Equal(expectedResponse)
+ e.GET("/42").Expect().Status(httptest.StatusOK).JSON().IsEqual(expectedResponse)
}
diff --git a/hero/dependency.go b/hero/dependency.go
index d6f4f6d44b..711ef28e0d 100644
--- a/hero/dependency.go
+++ b/hero/dependency.go
@@ -2,6 +2,7 @@ package hero
import (
"fmt"
+ "strings"
"reflect"
@@ -71,7 +72,7 @@ func newDependency(dependency interface{}, disablePayloadAutoBinding bool, match
}
if d, ok := dependency.(*Dependency); ok {
- // already a *Dependency.
+ // already a *Dependency, do not continue (and most importatly do not call resolveDependency) .
return d
}
@@ -100,11 +101,12 @@ func newDependency(dependency interface{}, disablePayloadAutoBinding bool, match
// DependencyResolver func(v reflect.Value, dest *Dependency) bool
// Resolver DependencyResolver
-func resolveDependency(v reflect.Value, disablePayloadAutoBinding bool, dest *Dependency, funcDependencies ...*Dependency) bool {
+func resolveDependency(v reflect.Value, disablePayloadAutoBinding bool, dest *Dependency, prevDependencies ...*Dependency) bool {
return fromDependencyHandler(v, dest) ||
- fromStructValue(v, dest) ||
+ fromBuiltinValue(v, dest) ||
+ fromStructValueOrDependentStructValue(v, disablePayloadAutoBinding, dest, prevDependencies) ||
fromFunc(v, dest) ||
- len(funcDependencies) > 0 && fromDependentFunc(v, disablePayloadAutoBinding, dest, funcDependencies)
+ len(prevDependencies) > 0 && fromDependentFunc(v, disablePayloadAutoBinding, dest, prevDependencies)
}
func fromDependencyHandler(_ reflect.Value, dest *Dependency) bool {
@@ -131,20 +133,114 @@ func fromDependencyHandler(_ reflect.Value, dest *Dependency) bool {
return true
}
+func fromBuiltinValue(v reflect.Value, dest *Dependency) bool {
+ if !isBuiltinValue(v) {
+ return false
+ }
+
+ // It's just a static builtin value.
+ handler := func(*context.Context, *Input) (reflect.Value, error) {
+ return v, nil
+ }
+
+ dest.DestType = v.Type()
+ dest.Static = true
+ dest.Handle = handler
+ return true
+}
+
func fromStructValue(v reflect.Value, dest *Dependency) bool {
- if !isFunc(v) {
- // It's just a static value.
- handler := func(*context.Context, *Input) (reflect.Value, error) {
+ if !isStructValue(v) {
+ return false
+ }
+
+ // It's just a static struct value.
+ handler := func(*context.Context, *Input) (reflect.Value, error) {
+ return v, nil
+ }
+
+ dest.DestType = v.Type()
+ dest.Static = true
+ dest.Handle = handler
+ return true
+}
+
+func fromStructValueOrDependentStructValue(v reflect.Value, disablePayloadAutoBinding bool, dest *Dependency, prevDependencies []*Dependency) bool {
+ if !isStructValue(v) {
+ // It's not just a static struct value.
+ return false
+ }
+
+ if len(prevDependencies) == 0 { // As a non depedent struct.
+ // We must make this check so we can avoid the auto-filling of
+ // the dependencies from Iris builtin dependencies.
+ return fromStructValue(v, dest)
+ }
+
+ // Check if it's a builtin dependency (e.g an MVC Application (see mvc.go#newApp)),
+ // if it's and registered without a Dependency wrapper, like the rest builtin dependencies,
+ // then do NOT try to resolve its fields.
+ if strings.HasPrefix(indirectType(v.Type()).PkgPath(), "github.com/kataras/iris/v12") {
+ return fromStructValue(v, dest)
+ }
+
+ bindings := getBindingsForStruct(v, prevDependencies, false, disablePayloadAutoBinding, DefaultDependencyMatcher, -1, nil)
+ if len(bindings) == 0 {
+ return fromStructValue(v, dest) // same as above.
+ }
+
+ // As a depedent struct, however we may need to resolve its dependencies first
+ // so we can decide if it's really a depedent struct or not.
+ var (
+ handler = func(*context.Context, *Input) (reflect.Value, error) {
return v, nil
}
+ isStatic = true
+ )
- dest.DestType = v.Type()
- dest.Static = true
- dest.Handle = handler
- return true
+ for _, binding := range bindings {
+ if !binding.Dependency.Static {
+ isStatic = false
+ break
+ }
}
- return false
+ handler = func(ctx *context.Context, _ *Input) (reflect.Value, error) { // Called once per dependency on build-time if the dependency is static.
+ elem := v
+ if elem.Kind() == reflect.Ptr {
+ elem = elem.Elem()
+ }
+
+ for _, binding := range bindings {
+ field := elem.FieldByIndex(binding.Input.StructFieldIndex)
+ if !field.CanSet() || !field.IsZero() {
+ continue // already set.
+ }
+ // if !binding.Dependency.Match(field.Type()) { A check already happen in getBindingsForStruct.
+ // continue
+ // }
+
+ input, err := binding.Dependency.Handle(ctx, binding.Input)
+ if err != nil {
+ if err == ErrSeeOther {
+ continue
+ }
+
+ return emptyValue, err
+ }
+
+ // fmt.Printf("binding %s to %#+v\n", field.String(), input)
+
+ field.Set(input)
+ }
+
+ return v, nil
+ }
+
+ dest.DestType = v.Type()
+ dest.Static = isStatic
+ dest.Handle = handler
+ return true
}
func fromFunc(v reflect.Value, dest *Dependency) bool {
diff --git a/hero/dependency_source.go b/hero/dependency_source.go
index 66b25f7c03..a1506cffca 100644
--- a/hero/dependency_source.go
+++ b/hero/dependency_source.go
@@ -35,7 +35,7 @@ func newSource(fn reflect.Value) Source {
fallthrough
default:
if callerFileName == "" {
- callerFileName, callerLineNumber = getCaller()
+ callerFileName, callerLineNumber = GetCaller()
}
}
@@ -55,7 +55,7 @@ func newSource(fn reflect.Value) Source {
}
func getSource() Source {
- filename, line := getCaller()
+ filename, line := GetCaller()
return Source{
File: filename,
Line: line,
@@ -67,7 +67,7 @@ func (s Source) String() string {
}
// https://golang.org/doc/go1.9#callersframes
-func getCaller() (string, int) {
+func GetCaller() (string, int) {
var pcs [32]uintptr
n := runtime.Callers(4, pcs[:])
frames := runtime.CallersFrames(pcs[:n])
@@ -76,11 +76,13 @@ func getCaller() (string, int) {
frame, more := frames.Next()
file := frame.File
- if strings.HasSuffix(file, "_test.go") {
- return file, frame.Line
+ if strings.Contains(file, "go/src/runtime/") {
+ continue
}
- if !strings.Contains(file, "/kataras/iris") || strings.Contains(file, "/kataras/iris/_examples") || strings.Contains(file, "iris-contrib/examples") {
+ // funcName is something like "github.com/kataras/iris.SomeFunc"
+ funcName := frame.Function
+ if !strings.HasPrefix(funcName, "github.com/kataras/iris/v12") {
return file, frame.Line
}
diff --git a/hero/func_result_test.go b/hero/func_result_test.go
index 09c7592c66..39798a2f31 100644
--- a/hero/func_result_test.go
+++ b/hero/func_result_test.go
@@ -146,65 +146,65 @@ func TestFuncResult(t *testing.T) {
e := httptest.New(t, app)
e.GET("/text").Expect().Status(iris.StatusOK).
- Body().Equal("text")
+ Body().IsEqual("text")
e.GET("/status").Expect().Status(iris.StatusBadGateway)
e.GET("/text/with/status/ok").Expect().Status(iris.StatusOK).
- Body().Equal("OK")
+ Body().IsEqual("OK")
e.GET("/status/with/text/not/ok/first/second").Expect().Status(iris.StatusForbidden).
- Body().Equal("NOT_OK_firstsecond")
+ Body().IsEqual("NOT_OK_firstsecond")
// Author's note: <-- if that fails means that the last binder called for both input args,
// see path_param_binder.go
e.GET("/text/and/content/type").Expect().Status(iris.StatusOK).
ContentType("text/html", "utf-8").
- Body().Equal("text")
+ Body().IsEqual("text")
e.GET("/custom/response").Expect().Status(iris.StatusOK).
ContentType("text/html", "utf-8").
- Body().Equal("text")
+ Body().IsEqual("text")
e.GET("/custom/response/with/status/ok").Expect().Status(iris.StatusOK).
ContentType("text/html", "utf-8").
- Body().Equal("OK")
+ Body().IsEqual("OK")
e.GET("/custom/response/with/status/not/ok").Expect().Status(iris.StatusInternalServerError).
ContentType("text/html", "utf-8").
- Body().Equal("internal server error")
+ Body().IsEqual("internal server error")
expectedResultFromCustomStruct := map[string]interface{}{
"name": "Iris",
"age": 2,
}
e.GET("/custom/struct").Expect().Status(iris.StatusOK).
- JSON().Equal(expectedResultFromCustomStruct)
+ JSON().IsEqual(expectedResultFromCustomStruct)
e.GET("/custom/struct/with/status/not/ok").Expect().Status(iris.StatusInternalServerError).
- JSON().Equal(expectedResultFromCustomStruct)
+ JSON().IsEqual(expectedResultFromCustomStruct)
e.GET("/custom/struct/with/content/type").Expect().Status(iris.StatusOK).
ContentType("text/xml", "utf-8")
e.GET("/custom/struct/with/error").Expect().Status(iris.StatusOK).
- JSON().Equal(expectedResultFromCustomStruct)
+ JSON().IsEqual(expectedResultFromCustomStruct)
e.GET("/custom/struct/with/error").WithQuery("err", true).Expect().
Status(iris.StatusBadRequest). // the default status code if error is not nil
// the content should be not JSON it should be the status code's text
// it will fire the error's text
- Body().Equal("omit return of testCustomStruct and fire error")
+ Body().IsEqual("omit return of testCustomStruct and fire error")
e.GET("/custom/error/as/dispatcher").Expect().
Status(iris.StatusBadRequest). // the default status code if error is not nil
// the content should be not JSON it should be the status code's text
// it will fire the error's text
- JSON().Equal(err{iris.StatusBadRequest, "this is my error as json"})
+ JSON().IsEqual(err{iris.StatusBadRequest, "this is my error as json"})
// its result is nil should give an empty response but content-type is set correctly.
e.GET("/custom/nil/typed").Expect().
- Status(iris.StatusOK).ContentType(context.ContentJSONHeaderValue).Body().Empty()
+ Status(iris.StatusOK).ContentType(context.ContentJSONHeaderValue).Body().IsEmpty()
e.GET("/custom/nil/typed/ptr").Expect().
- Status(iris.StatusOK).ContentType(context.ContentJSONHeaderValue).Body().Empty()
+ Status(iris.StatusOK).ContentType(context.ContentJSONHeaderValue).Body().IsEmpty()
e.GET("/custom/nil/map").Expect().
- Status(iris.StatusOK).ContentType(context.ContentJSONHeaderValue).Body().Empty()
+ Status(iris.StatusOK).ContentType(context.ContentJSONHeaderValue).Body().IsEmpty()
e.GET("/custom/nil/struct").Expect().
- Status(iris.StatusOK).ContentType(context.ContentJSONHeaderValue).Body().Empty()
+ Status(iris.StatusOK).ContentType(context.ContentJSONHeaderValue).Body().IsEmpty()
}
type (
@@ -246,20 +246,20 @@ func TestPreflightResult(t *testing.T) {
expected1 := testPreflightResponse{Code: httptest.StatusOK, Message: "OK"}
e.POST("/").WithJSON(testPreflightRequest{FailCode: expected1.Code}).
- Expect().Status(httptest.StatusOK).JSON().Equal(expected1)
+ Expect().Status(httptest.StatusOK).JSON().IsEqual(expected1)
expected2 := testPreflightResponse{Code: httptest.StatusBadRequest, Message: "Bad Request"}
e.POST("/").WithJSON(testPreflightRequest{FailCode: expected2.Code}).
- Expect().Status(httptest.StatusBadRequest).JSON().Equal(expected2)
+ Expect().Status(httptest.StatusBadRequest).JSON().IsEqual(expected2)
// Test error returned from Preflight.
e.POST("/").WithJSON(testPreflightRequest{FailCode: httptest.StatusInternalServerError}).
- Expect().Status(httptest.StatusBadRequest).Body().Equal("custom error")
+ Expect().Status(httptest.StatusBadRequest).Body().IsEqual("custom error")
// Can be done without Preflight as the second output argument can be a status code.
expected4 := testOutput{Name: "my_name"}
e.POST("/alternative").WithJSON(testInput{expected4.Name}).
- Expect().Status(httptest.StatusAccepted).JSON().Equal(expected4)
+ Expect().Status(httptest.StatusAccepted).JSON().IsEqual(expected4)
}
func TestResponseErr(t *testing.T) {
@@ -280,5 +280,5 @@ func TestResponseErr(t *testing.T) {
})
e := httptest.New(t, app)
- e.GET("/").Expect().Status(iris.StatusBadGateway).Body().Equal("response error")
+ e.GET("/").Expect().Status(iris.StatusBadGateway).Body().IsEqual("response error")
}
diff --git a/hero/handler_test.go b/hero/handler_test.go
index cfc28bccbf..9a232acf28 100644
--- a/hero/handler_test.go
+++ b/hero/handler_test.go
@@ -93,13 +93,13 @@ func testAppWithHeroHandlers(t *testing.T, h1, h2, h3 iris.Handler) {
e := httptest.New(t, app)
// 1
e.GET(fmt.Sprintf("/%d/%s", expectedUser.ID, expectedUser.Username)).Expect().Status(httptest.StatusOK).
- JSON().Equal(expectedUser)
+ JSON().IsEqual(expectedUser)
// 2
e.GET("/service").Expect().Status(httptest.StatusOK).
- Body().Equal("say something")
+ Body().IsEqual("say something")
// 3
e.GET("/param/the_param_value").Expect().Status(httptest.StatusOK).
- Body().Equal("param is: the_param_value")
+ Body().IsEqual("param is: the_param_value")
}
// TestBindFunctionAsFunctionInputArgument tests to bind
@@ -123,7 +123,7 @@ func TestBindFunctionAsFunctionInputArgument(t *testing.T) {
expectedUsername := "kataras"
e.POST("/").WithFormField("username", expectedUsername).
- Expect().Status(iris.StatusOK).Body().Equal(expectedUsername)
+ Expect().Status(iris.StatusOK).Body().IsEqual(expectedUsername)
}
func TestPayloadBinding(t *testing.T) {
@@ -155,21 +155,21 @@ func TestPayloadBinding(t *testing.T) {
e := httptest.New(t, app)
// JSON
- e.POST("/").WithJSON(iris.Map{"username": "makis"}).Expect().Status(httptest.StatusOK).Body().Equal("makis")
- e.POST("/2").WithJSON(iris.Map{"username": "kataras"}).Expect().Status(httptest.StatusOK).Body().Equal("kataras")
+ e.POST("/").WithJSON(iris.Map{"username": "makis"}).Expect().Status(httptest.StatusOK).Body().IsEqual("makis")
+ e.POST("/2").WithJSON(iris.Map{"username": "kataras"}).Expect().Status(httptest.StatusOK).Body().IsEqual("kataras")
// FORM (url-encoded)
- e.POST("/").WithFormField("username", "makis").Expect().Status(httptest.StatusOK).Body().Equal("makis")
+ e.POST("/").WithFormField("username", "makis").Expect().Status(httptest.StatusOK).Body().IsEqual("makis")
// FORM (multipart)
- e.POST("/").WithMultipart().WithFormField("username", "makis").Expect().Status(httptest.StatusOK).Body().Equal("makis")
+ e.POST("/").WithMultipart().WithFormField("username", "makis").Expect().Status(httptest.StatusOK).Body().IsEqual("makis")
// FORM: test ErrorHandler skip the ErrPath.
e.POST("/").WithMultipart().WithFormField("username", "makis").WithFormField("unknown", "continue").
- Expect().Status(httptest.StatusOK).Body().Equal("makis")
+ Expect().Status(httptest.StatusOK).Body().IsEqual("makis")
// POST URL query.
- e.POST("/").WithQuery("username", "makis").Expect().Status(httptest.StatusOK).Body().Equal("makis")
+ e.POST("/").WithQuery("username", "makis").Expect().Status(httptest.StatusOK).Body().IsEqual("makis")
// GET URL query.
- e.GET("/").WithQuery("username", "makis").Expect().Status(httptest.StatusOK).Body().Equal("makis")
+ e.GET("/").WithQuery("username", "makis").Expect().Status(httptest.StatusOK).Body().IsEqual("makis")
}
/* Author's notes:
@@ -231,9 +231,9 @@ func TestDependentDependencies(t *testing.T) {
app.Get("/h3", h3)
e := httptest.New(t, app)
- e.GET("/h1").Expect().Status(httptest.StatusOK).Body().Equal("prefix: it is a deep dependency")
- e.GET("/h2").Expect().Status(httptest.StatusOK).Body().Equal("prefix: message")
- e.GET("/h3").Expect().Status(httptest.StatusOK).Body().Equal("value")
+ e.GET("/h1").Expect().Status(httptest.StatusOK).Body().IsEqual("prefix: it is a deep dependency")
+ e.GET("/h2").Expect().Status(httptest.StatusOK).Body().IsEqual("prefix: message")
+ e.GET("/h3").Expect().Status(httptest.StatusOK).Body().IsEqual("value")
}
func TestHandlerPathParams(t *testing.T) {
@@ -262,7 +262,7 @@ func TestHandlerPathParams(t *testing.T) {
e.GET("/editors/42"),
e.GET("/1/book/42"),
} {
- testReq.Expect().Status(httptest.StatusOK).Body().Equal("42")
+ testReq.Expect().Status(httptest.StatusOK).Body().IsEqual("42")
}
}
@@ -301,8 +301,8 @@ func TestRegisterDependenciesFromContext(t *testing.T) {
e := httptest.New(t, app)
- e.GET("/").Expect().Status(httptest.StatusOK).Body().Equal("kataras")
- e.GET("/service").Expect().Status(httptest.StatusOK).Body().Equal("say hello")
- e.GET("/both").Expect().Status(httptest.StatusOK).Body().Equal("say kataras")
- e.GET("/non").Expect().Status(httptest.StatusOK).Body().Equal("nothing")
+ e.GET("/").Expect().Status(httptest.StatusOK).Body().IsEqual("kataras")
+ e.GET("/service").Expect().Status(httptest.StatusOK).Body().IsEqual("say hello")
+ e.GET("/both").Expect().Status(httptest.StatusOK).Body().IsEqual("say kataras")
+ e.GET("/non").Expect().Status(httptest.StatusOK).Body().IsEqual("nothing")
}
diff --git a/hero/reflect.go b/hero/reflect.go
index b81a36522c..e3881cbbc6 100644
--- a/hero/reflect.go
+++ b/hero/reflect.go
@@ -42,6 +42,39 @@ func isFunc(kindable interface{ Kind() reflect.Kind }) bool {
return kindable.Kind() == reflect.Func
}
+func isStructValue(v reflect.Value) bool {
+ return indirectType(v.Type()).Kind() == reflect.Struct
+}
+
+// isBuiltin reports whether a reflect.Value is a builtin type
+func isBuiltinValue(v reflect.Value) bool {
+ switch v.Type().Kind() {
+ case reflect.Bool,
+ reflect.Int,
+ reflect.Int8,
+ reflect.Int16,
+ reflect.Int32,
+ reflect.Int64,
+ reflect.Uint,
+ reflect.Uint8,
+ reflect.Uint16,
+ reflect.Uint32,
+ reflect.Uint64,
+ reflect.Float32,
+ reflect.Float64,
+ reflect.Complex64,
+ reflect.Complex128,
+ reflect.Array,
+ reflect.Chan,
+ reflect.Map,
+ reflect.Slice,
+ reflect.String:
+ return true
+ default:
+ return false
+ }
+}
+
var (
inputTyp = reflect.TypeOf((*Input)(nil))
errTyp = reflect.TypeOf((*error)(nil)).Elem()
diff --git a/hero/struct.go b/hero/struct.go
index ea2c5d727e..536eea4028 100644
--- a/hero/struct.go
+++ b/hero/struct.go
@@ -57,6 +57,8 @@ func makeStruct(structPtr interface{}, c *Container, partyParamsCount int) *Stru
// If static then Struct.Acquire will return the same "value" instance, otherwise it will create a new one.
singleton := true
elem := v.Elem()
+
+ // fmt.Printf("makeStruct: bindings length = %d\n", len(bindings))
for _, b := range bindings {
if b.Dependency.Static {
// Fill now.
diff --git a/hero/struct_test.go b/hero/struct_test.go
index 5401f7bdd8..a1045c3ae1 100644
--- a/hero/struct_test.go
+++ b/hero/struct_test.go
@@ -46,11 +46,11 @@ func TestStruct(t *testing.T) {
app.Get("/myHandler4", getHandler)
e := httptest.New(t, app)
- e.POST("/" + input.Name).Expect().Status(httptest.StatusOK).JSON().Equal(expectedOutput)
+ e.POST("/" + input.Name).Expect().Status(httptest.StatusOK).JSON().IsEqual(expectedOutput)
path := fmt.Sprintf("/%d", expectedOutput.ID)
- e.POST(path).WithJSON(input).Expect().Status(httptest.StatusOK).JSON().Equal(expectedOutput)
- e.POST("/myHandler3").WithJSON(input).Expect().Status(httptest.StatusOK).JSON().Equal(expectedOutput)
- e.GET("/myHandler4").Expect().Status(httptest.StatusOK).Body().Equal("MyHandler4")
+ e.POST(path).WithJSON(input).Expect().Status(httptest.StatusOK).JSON().IsEqual(expectedOutput)
+ e.POST("/myHandler3").WithJSON(input).Expect().Status(httptest.StatusOK).JSON().IsEqual(expectedOutput)
+ e.GET("/myHandler4").Expect().Status(httptest.StatusOK).Body().IsEqual("MyHandler4")
}
type testStructErrorHandler struct{}
@@ -72,7 +72,7 @@ func TestStructErrorHandler(t *testing.T) {
expectedErrText := "an error"
e := httptest.New(t, app)
- e.GET("/" + expectedErrText).Expect().Status(httptest.StatusConflict).Body().Equal(expectedErrText)
+ e.GET("/" + expectedErrText).Expect().Status(httptest.StatusConflict).Body().IsEqual(expectedErrText)
}
type (
@@ -117,5 +117,5 @@ func TestStructFieldsSorter(t *testing.T) { // see https://github.com/kataras/ir
e := httptest.New(t, app)
expectedBody := `&hero_test.testServiceImpl1{inner:"parser"} | &hero_test.testServiceImpl2{tf:24}`
- e.GET("/").Expect().Status(httptest.StatusOK).Body().Equal(expectedBody)
+ e.GET("/").Expect().Status(httptest.StatusOK).Body().IsEqual(expectedBody)
}
diff --git a/middleware/basicauth/basicauth_test.go b/middleware/basicauth/basicauth_test.go
index e19147f2ab..4dca33cdb4 100644
--- a/middleware/basicauth/basicauth_test.go
+++ b/middleware/basicauth/basicauth_test.go
@@ -73,7 +73,7 @@ func TestBasicAuthUseRouter(t *testing.T) {
for username, password := range users {
// Test pass authentication and route found.
e.GET("/").WithBasicAuth(username, password).Expect().
- Status(httptest.StatusOK).Body().Equal(fmt.Sprintf("Hello, %s!", username))
+ Status(httptest.StatusOK).Body().IsEqual(fmt.Sprintf("Hello, %s!", username))
e.GET("/user_json").WithBasicAuth(username, password).Expect().
Status(httptest.StatusOK).JSON().Object().ContainsMap(iris.Map{
"username": username,
@@ -83,7 +83,7 @@ func TestBasicAuthUseRouter(t *testing.T) {
Equal(fmt.Sprintf("%s\n%s\n%s", "Basic Authentication", username, password))
// Test empty auth.
- e.GET("/").Expect().Status(httptest.StatusUnauthorized).Body().Equal("Unauthorized")
+ e.GET("/").Expect().Status(httptest.StatusUnauthorized).Body().IsEqual("Unauthorized")
// Test invalid auth.
e.GET("/").WithBasicAuth(username, "invalid_password").Expect().
Status(httptest.StatusForbidden)
@@ -93,14 +93,14 @@ func TestBasicAuthUseRouter(t *testing.T) {
// Test different method, it should pass the authentication (no stop on 401)
// but it doesn't fire the GET route, instead it gives 405.
e.POST("/").WithBasicAuth(username, password).Expect().
- Status(httptest.StatusMethodNotAllowed).Body().Equal("Method Not Allowed")
+ Status(httptest.StatusMethodNotAllowed).Body().IsEqual("Method Not Allowed")
// Test pass the authentication but route not found.
e.GET("/notfound").WithBasicAuth(username, password).Expect().
- Status(httptest.StatusNotFound).Body().Equal("Not Found")
+ Status(httptest.StatusNotFound).Body().IsEqual("Not Found")
// Test empty auth.
- e.GET("/notfound").Expect().Status(httptest.StatusUnauthorized).Body().Equal("Unauthorized")
+ e.GET("/notfound").Expect().Status(httptest.StatusUnauthorized).Body().IsEqual("Unauthorized")
// Test invalid auth.
e.GET("/notfound").WithBasicAuth(username, "invalid_password").Expect().
Status(httptest.StatusForbidden)
@@ -114,7 +114,7 @@ func TestBasicAuthUseRouter(t *testing.T) {
// Test pass and route found.
sub.GET("/").WithBasicAuth(username, password).Expect().
- Status(httptest.StatusOK).Body().Equal(fmt.Sprintf("Static, %s", username))
+ Status(httptest.StatusOK).Body().IsEqual(fmt.Sprintf("Static, %s", username))
// Test empty auth.
sub.GET("/").Expect().Status(httptest.StatusUnauthorized)
@@ -126,10 +126,10 @@ func TestBasicAuthUseRouter(t *testing.T) {
// Test pass the authentication but route not found.
sub.GET("/notfound").WithBasicAuth(username, password).Expect().
- Status(httptest.StatusNotFound).Body().Equal("Not Found")
+ Status(httptest.StatusNotFound).Body().IsEqual("Not Found")
// Test empty auth.
- sub.GET("/notfound").Expect().Status(httptest.StatusUnauthorized).Body().Equal("Unauthorized")
+ sub.GET("/notfound").Expect().Status(httptest.StatusUnauthorized).Body().IsEqual("Unauthorized")
// Test invalid auth.
sub.GET("/notfound").WithBasicAuth(username, "invalid_password").Expect().
Status(httptest.StatusForbidden)
@@ -142,16 +142,16 @@ func TestBasicAuthUseRouter(t *testing.T) {
sub = e.Builder(func(req *httptest.Request) {
req.WithURL("http://reset_with_use_router.mydomain.com")
})
- sub.GET("/").Expect().Status(httptest.StatusOK).Body().Equal("with use router\n")
- sub.POST("/").Expect().Status(httptest.StatusMethodNotAllowed).Body().Equal("Method Not Allowed")
- sub.GET("/notfound").Expect().Status(httptest.StatusNotFound).Body().Equal("Not Found")
+ sub.GET("/").Expect().Status(httptest.StatusOK).Body().IsEqual("with use router\n")
+ sub.POST("/").Expect().Status(httptest.StatusMethodNotAllowed).Body().IsEqual("Method Not Allowed")
+ sub.GET("/notfound").Expect().Status(httptest.StatusNotFound).Body().IsEqual("Not Found")
// Test a reset-ed Party (all should pass without auth).
sub = e.Builder(func(req *httptest.Request) {
req.WithURL("http://reset.mydomain.com")
})
- sub.GET("/").Expect().Status(httptest.StatusOK).Body().Empty()
- sub.POST("/").Expect().Status(httptest.StatusMethodNotAllowed).Body().Equal("Method Not Allowed")
- sub.GET("/notfound").Expect().Status(httptest.StatusNotFound).Body().Equal("Not Found")
+ sub.GET("/").Expect().Status(httptest.StatusOK).Body().IsEmpty()
+ sub.POST("/").Expect().Status(httptest.StatusMethodNotAllowed).Body().IsEqual("Method Not Allowed")
+ sub.GET("/notfound").Expect().Status(httptest.StatusNotFound).Body().IsEqual("Not Found")
}
}
diff --git a/middleware/jwt/jwt_test.go b/middleware/jwt/jwt_test.go
index 6b9d75f229..8086e21d4c 100644
--- a/middleware/jwt/jwt_test.go
+++ b/middleware/jwt/jwt_test.go
@@ -49,10 +49,10 @@ func TestJWT(t *testing.T) {
// Test Header.
headerValue := fmt.Sprintf("Bearer %s", token)
e.GET("/protected").WithHeader("Authorization", headerValue).Expect().
- Status(iris.StatusOK).Body().Equal("bar")
+ Status(iris.StatusOK).Body().IsEqual("bar")
// Test URL query.
e.GET("/protected").WithQuery("token", token).Expect().
- Status(iris.StatusOK).Body().Equal("bar")
+ Status(iris.StatusOK).Body().IsEqual("bar")
// Test unauthorized.
e.GET("/protected").Expect().Status(iris.StatusUnauthorized)
@@ -61,5 +61,5 @@ func TestJWT(t *testing.T) {
// Test expired (note checks happen based on second round).
time.Sleep(5 * time.Second)
e.GET("/protected").WithHeader("Authorization", headerValue).Expect().
- Status(iris.StatusUnauthorized).Body().Equal("jwt: token expired")
+ Status(iris.StatusUnauthorized).Body().IsEqual("jwt: token expired")
}
diff --git a/middleware/methodoverride/methodoverride_test.go b/middleware/methodoverride/methodoverride_test.go
index fe6ec92dea..df185696bd 100644
--- a/middleware/methodoverride/methodoverride_test.go
+++ b/middleware/methodoverride/methodoverride_test.go
@@ -49,28 +49,28 @@ func TestMethodOverrideWrapper(t *testing.T) {
// Test headers.
e.POST("/path").WithHeader("X-HTTP-Method", iris.MethodDelete).Expect().
- Status(iris.StatusOK).Body().Equal(expectedDelResponse)
+ Status(iris.StatusOK).Body().IsEqual(expectedDelResponse)
e.POST("/path").WithHeader("X-HTTP-Method-Override", iris.MethodDelete).Expect().
- Status(iris.StatusOK).Body().Equal(expectedDelResponse)
+ Status(iris.StatusOK).Body().IsEqual(expectedDelResponse)
e.POST("/path").WithHeader("X-Method-Override", iris.MethodDelete).Expect().
- Status(iris.StatusOK).Body().Equal(expectedDelResponse)
+ Status(iris.StatusOK).Body().IsEqual(expectedDelResponse)
// Test form field value.
e.POST("/path").WithFormField("_method", iris.MethodDelete).Expect().
- Status(iris.StatusOK).Body().Equal(expectedDelResponse)
+ Status(iris.StatusOK).Body().IsEqual(expectedDelResponse)
// Test URL Query (although it's the same as form field in this case).
e.POST("/path").WithQuery("_method", iris.MethodDelete).Expect().
- Status(iris.StatusOK).Body().Equal(expectedDelResponse)
+ Status(iris.StatusOK).Body().IsEqual(expectedDelResponse)
// Test saved original method and
// Test without registered "POST" route.
e.POST("/path2").WithQuery("_method", iris.MethodDelete).Expect().
- Status(iris.StatusOK).Body().Equal(expectedDelResponse + iris.MethodPost)
+ Status(iris.StatusOK).Body().IsEqual(expectedDelResponse + iris.MethodPost)
// Test simple POST request without method override fields.
- e.POST("/path").Expect().Status(iris.StatusOK).Body().Equal(expectedPostResponse)
+ e.POST("/path").Expect().Status(iris.StatusOK).Body().IsEqual(expectedPostResponse)
// Test simple DELETE request.
- e.DELETE("/path").Expect().Status(iris.StatusOK).Body().Equal(expectedDelResponse)
+ e.DELETE("/path").Expect().Status(iris.StatusOK).Body().IsEqual(expectedDelResponse)
}
diff --git a/middleware/requestid/requestid_test.go b/middleware/requestid/requestid_test.go
index a5478d4b24..523363c691 100644
--- a/middleware/requestid/requestid_test.go
+++ b/middleware/requestid/requestid_test.go
@@ -57,7 +57,7 @@ func TestRequestID(t *testing.T) {
e := httptest.New(t, app)
e.GET("/default").Expect().Status(httptest.StatusOK).Body().NotEmpty()
- e.GET("/custom").Expect().Status(httptest.StatusOK).Body().Equal(expectedCustomID)
- e.GET("/custom_err").Expect().Status(httptest.StatusUnauthorized).Body().Equal(expectedErrMsg)
- e.GET("/custom_change_id").Expect().Status(httptest.StatusOK).Body().Equal(expectedCustomIDFromOtherMiddleware)
+ e.GET("/custom").Expect().Status(httptest.StatusOK).Body().IsEqual(expectedCustomID)
+ e.GET("/custom_err").Expect().Status(httptest.StatusUnauthorized).Body().IsEqual(expectedErrMsg)
+ e.GET("/custom_change_id").Expect().Status(httptest.StatusOK).Body().IsEqual(expectedCustomIDFromOtherMiddleware)
}
diff --git a/mvc/controller_handle_test.go b/mvc/controller_handle_test.go
index 59038b4239..cb88eb6059 100644
--- a/mvc/controller_handle_test.go
+++ b/mvc/controller_handle_test.go
@@ -124,7 +124,7 @@ func TestControllerHandle(t *testing.T) {
e := httptest.New(t, app)
// test the index, is not part of the current package's implementation but do it.
- e.GET("/").Expect().Status(httptest.StatusOK).Body().Equal("index")
+ e.GET("/").Expect().Status(httptest.StatusOK).Body().IsEqual("index")
// the important things now.
@@ -133,30 +133,30 @@ func TestControllerHandle(t *testing.T) {
// (which is the function's receiver, if any, in this case the *testController in go).
expectedReqField := "this is a request field filled by this url param"
e.GET("/histatic").WithQuery("reqfield", expectedReqField).Expect().Status(httptest.StatusOK).
- Body().Equal(expectedReqField)
+ Body().IsEqual(expectedReqField)
// this test makes sure that the binded values of the controller is handled correctly
// and can be used in a user-defined, dynamic "mvc handler".
e.GET("/hiservice").Expect().Status(httptest.StatusOK).
- Body().Equal("service: hi")
+ Body().IsEqual("service: hi")
e.GET("/hiservice/value").Expect().Status(httptest.StatusOK).
- Body().Equal("service: hi with param: value")
+ Body().IsEqual("service: hi with param: value")
// this worked with a temporary variadic on the resolvemethodfunc which is not
// correct design, I should split the path and params with the rest of implementation
// in order a simple template.Src can be given.
e.GET("/hiparam/value").Expect().Status(httptest.StatusOK).
- Body().Equal("value")
+ Body().IsEqual("value")
e.GET("/hiparamempyinput/value").Expect().Status(httptest.StatusOK).
- Body().Equal("empty in but served with ctx.Params.Get('ps')=value")
+ Body().IsEqual("empty in but served with ctx.Params.Get('ps')=value")
e.GET("/custom/value1").Expect().Status(httptest.StatusOK).
- Body().Equal("value1")
+ Body().IsEqual("value1")
e.GET("/custom2/value2").Expect().Status(httptest.StatusOK).
- Body().Equal("value2")
+ Body().IsEqual("value2")
e.GET("/custom3/value1/value2").Expect().Status(httptest.StatusOK).
- Body().Equal("value1value2")
+ Body().IsEqual("value1value2")
e.GET("/custom3/value1").Expect().Status(httptest.StatusNotFound)
e.GET("/hi/param/empty/input/with/ctx/value").Expect().Status(httptest.StatusOK).
- Body().Equal("empty in but served with ctx.Params.Get('param2')= value == id == value")
+ Body().IsEqual("empty in but served with ctx.Params.Get('param2')= value == id == value")
}
type testControllerHandleWithDynamicPathPrefix struct {
@@ -173,7 +173,7 @@ func TestControllerHandleWithDynamicPathPrefix(t *testing.T) {
New(app.Party("/api/data/{model:string}/{action:string}")).Handle(new(testControllerHandleWithDynamicPathPrefix))
e := httptest.New(t, app)
e.GET("/api/data/mymodel/myaction/myid").Expect().Status(httptest.StatusOK).
- Body().Equal("mymodelmyactionmyid")
+ Body().IsEqual("mymodelmyactionmyid")
}
type testControllerGetBy struct{}
@@ -195,7 +195,7 @@ func TestControllerGetByWithAllowMethods(t *testing.T) {
e := httptest.New(t, app)
e.GET("/project/42").Expect().Status(httptest.StatusOK).
- JSON().Equal(&testCustomStruct{Age: 42, Name: "name"})
+ JSON().IsEqual(&testCustomStruct{Age: 42, Name: "name"})
e.POST("/project/42").Expect().Status(httptest.StatusOK)
e.PUT("/project/42").Expect().Status(httptest.StatusMethodNotAllowed)
}
diff --git a/mvc/controller_method_result_test.go b/mvc/controller_method_result_test.go
index 163bf1b11e..0168826c1a 100644
--- a/mvc/controller_method_result_test.go
+++ b/mvc/controller_method_result_test.go
@@ -74,32 +74,32 @@ func TestControllerMethodResult(t *testing.T) {
e := httptest.New(t, app)
e.GET("/").Expect().Status(iris.StatusOK).
- Body().Equal("Hello World!")
+ Body().IsEqual("Hello World!")
e.GET("/with/status").Expect().Status(iris.StatusNotFound).
- Body().Equal("This page doesn't exist")
+ Body().IsEqual("This page doesn't exist")
e.GET("/json").Expect().Status(iris.StatusOK).
- JSON().Equal(iris.Map{
+ JSON().IsEqual(iris.Map{
"name": "Iris",
"age": 2,
})
e.GET("/json").WithQuery("err", true).Expect().
Status(iris.StatusBadRequest).
- Body().Equal("error here")
+ Body().IsEqual("error here")
e.GET("/thing/with/try/1").Expect().
Status(iris.StatusOK).
- Body().Equal("thing 1")
+ Body().IsEqual("thing 1")
// failure because of index exceed the slice
e.GET("/thing/with/try/3").Expect().
Status(iris.StatusNotFound).
- Body().Equal("thing does not exist")
+ Body().IsEqual("thing does not exist")
e.GET("/thing/with/try/default/3").Expect().
Status(iris.StatusBadRequest).
- Body().Equal("Bad Request")
+ Body().IsEqual("Bad Request")
}
type testControllerMethodResultTypes struct {
@@ -178,49 +178,49 @@ func TestControllerMethodResultTypes(t *testing.T) {
e := httptest.New(t, app)
e.GET("/text").Expect().Status(iris.StatusOK).
- Body().Equal("text")
+ Body().IsEqual("text")
e.GET("/status").Expect().Status(iris.StatusBadGateway)
e.GET("/text/with/status/ok").Expect().Status(iris.StatusOK).
- Body().Equal("OK")
+ Body().IsEqual("OK")
e.GET("/status/with/text/not/ok/first/second").Expect().Status(iris.StatusForbidden).
- Body().Equal("NOT_OK_firstsecond")
+ Body().IsEqual("NOT_OK_firstsecond")
// Author's note: <-- if that fails means that the last binder called for both input args,
// see path_param_binder.go
e.GET("/text/and/content/type").Expect().Status(iris.StatusOK).
ContentType("text/html", "utf-8").
- Body().Equal("text")
+ Body().IsEqual("text")
e.GET("/custom/response").Expect().Status(iris.StatusOK).
ContentType("text/html", "utf-8").
- Body().Equal("text")
+ Body().IsEqual("text")
e.GET("/custom/response/with/status/ok").Expect().Status(iris.StatusOK).
ContentType("text/html", "utf-8").
- Body().Equal("OK")
+ Body().IsEqual("OK")
e.GET("/custom/response/with/status/not/ok").Expect().Status(iris.StatusInternalServerError).
ContentType("text/html", "utf-8").
- Body().Equal("internal server error")
+ Body().IsEqual("internal server error")
expectedResultFromCustomStruct := map[string]interface{}{
"name": "Iris",
"age": 2,
}
e.GET("/custom/struct").Expect().Status(iris.StatusOK).
- JSON().Equal(expectedResultFromCustomStruct)
+ JSON().IsEqual(expectedResultFromCustomStruct)
e.GET("/custom/struct/with/status/not/ok").Expect().Status(iris.StatusInternalServerError).
- JSON().Equal(expectedResultFromCustomStruct)
+ JSON().IsEqual(expectedResultFromCustomStruct)
e.GET("/custom/struct/with/content/type").Expect().Status(iris.StatusOK).
ContentType("text/xml", "utf-8")
e.GET("/custom/struct/with/error").Expect().Status(iris.StatusOK).
- JSON().Equal(expectedResultFromCustomStruct)
+ JSON().IsEqual(expectedResultFromCustomStruct)
e.GET("/custom/struct/with/error").WithQuery("err", true).Expect().
Status(iris.StatusBadRequest). // the default status code if error is not nil
// the content should be not JSON it should be the status code's text
// it will fire the error's text
- Body().Equal("omit return of testCustomStruct and fire error")
+ Body().IsEqual("omit return of testCustomStruct and fire error")
}
type testControllerViewResultRespectCtxViewData struct {
diff --git a/mvc/controller_overlap_test.go b/mvc/controller_overlap_test.go
index d7897fc454..768418278d 100644
--- a/mvc/controller_overlap_test.go
+++ b/mvc/controller_overlap_test.go
@@ -28,23 +28,23 @@ func TestControllerOverlap(t *testing.T) {
}
e := httptest.New(t, app)
- e.GET("/user").Expect().Status(httptest.StatusUnauthorized).Body().Equal("unauth")
+ e.GET("/user").Expect().Status(httptest.StatusUnauthorized).Body().IsEqual("unauth")
// Test raw stop execution with a status code sent on the controller's method.
- e.GET("/user/with/status/on/method").Expect().Status(httptest.StatusBadRequest).Body().Equal("unauth")
+ e.GET("/user/with/status/on/method").Expect().Status(httptest.StatusBadRequest).Body().IsEqual("unauth")
// Test stop execution with status but last code sent through the controller's method.
- e.GET("/user/with/status/on/method/too").Expect().Status(httptest.StatusInternalServerError).Body().Equal("unauth")
+ e.GET("/user/with/status/on/method/too").Expect().Status(httptest.StatusInternalServerError).Body().IsEqual("unauth")
// Test raw stop execution and no status code sent on controller's method (should be OK).
- e.GET("/user/with/no/status").Expect().Status(httptest.StatusOK).Body().Equal("unauth")
+ e.GET("/user/with/no/status").Expect().Status(httptest.StatusOK).Body().IsEqual("unauth")
// Test authenticated request.
- e.GET("/user").WithQuery("id", 42).Expect().Status(httptest.StatusOK).Body().Equal("auth: 42")
+ e.GET("/user").WithQuery("id", 42).Expect().Status(httptest.StatusOK).Body().IsEqual("auth: 42")
// Test HandleHTTPError method accepts a not found and returns a 404
// from a shared controller and overlapped, the url parameter matters because this method was overlapped.
e.GET("/user/notfound").Expect().Status(httptest.StatusBadRequest).
- Body().Equal("error: *mvc_test.UnauthenticatedUserController: from: 404 to: 400")
+ Body().IsEqual("error: *mvc_test.UnauthenticatedUserController: from: 404 to: 400")
e.GET("/user/notfound").WithQuery("id", 42).Expect().Status(httptest.StatusBadRequest).
- Body().Equal("error: *mvc_test.AuthenticatedUserController: from: 404 to: 400")
+ Body().IsEqual("error: *mvc_test.AuthenticatedUserController: from: 404 to: 400")
}
type AuthenticatedTest uint64
diff --git a/mvc/controller_test.go b/mvc/controller_test.go
index a4dd961b65..6d20701173 100644
--- a/mvc/controller_test.go
+++ b/mvc/controller_test.go
@@ -82,13 +82,13 @@ func TestControllerMethodFuncs(t *testing.T) {
for _, method := range router.AllMethods {
e.Request(method, "/").Expect().Status(iris.StatusOK).
- Body().Equal(method)
+ Body().IsEqual(method)
e.Request(method, "/all").Expect().Status(iris.StatusOK).
- Body().Equal(method)
+ Body().IsEqual(method)
e.Request(method, "/any").Expect().Status(iris.StatusOK).
- Body().Equal(method)
+ Body().IsEqual(method)
}
}
@@ -137,9 +137,9 @@ func TestControllerBeginAndEndRequestFunc(t *testing.T) {
for _, username := range usernames {
e.GET("/profile/" + username).Expect().Status(iris.StatusOK).
- Body().Equal(username + doneResponse)
+ Body().IsEqual(username + doneResponse)
e.POST("/profile/" + username).Expect().Status(iris.StatusOK).
- Body().Equal(username + doneResponse)
+ Body().IsEqual(username + doneResponse)
}
}
@@ -178,17 +178,17 @@ func TestControllerBeginAndEndRequestFuncBindMiddleware(t *testing.T) {
getEx := e.GET("/profile/" + username).Expect()
if allow {
getEx.Status(iris.StatusOK).
- Body().Equal(username + doneResponse)
+ Body().IsEqual(username + doneResponse)
} else {
- getEx.Status(iris.StatusForbidden).Body().Equal("forbidden")
+ getEx.Status(iris.StatusForbidden).Body().IsEqual("forbidden")
}
postEx := e.POST("/profile/" + username).Expect()
if allow {
postEx.Status(iris.StatusOK).
- Body().Equal(username + doneResponse)
+ Body().IsEqual(username + doneResponse)
} else {
- postEx.Status(iris.StatusForbidden).Body().Equal("forbidden")
+ postEx.Status(iris.StatusForbidden).Body().IsEqual("forbidden")
}
}
}
@@ -251,7 +251,7 @@ func TestControllerEndRequestAwareness(t *testing.T) {
for _, username := range usernames {
e.GET("/era/" + username).Expect().Status(iris.StatusOK).
- Body().Equal(username + username + "2")
+ Body().IsEqual(username + username + "2")
}
}
@@ -315,17 +315,17 @@ func TestControllerDependencies(t *testing.T) {
e := httptest.New(t, app)
expected := t1 + t2
e.GET("/").Expect().Status(iris.StatusOK).
- Body().Equal(expected)
+ Body().IsEqual(expected)
e.GET("/ctx").Expect().Status(iris.StatusContinue)
e.GET("/deep").Expect().Status(iris.StatusOK).
- Body().Equal(expected)
+ Body().IsEqual(expected)
e.POST("/deep").WithJSON(iris.Map{"name": "kataras"}).Expect().Status(iris.StatusOK).
- Body().Equal("kataras")
+ Body().IsEqual("kataras")
e.POST("/deep").Expect().Status(iris.StatusBadRequest).
- Body().Equal("EOF")
+ Body().IsEqual("EOF")
}
type testCtrl0 struct {
@@ -381,7 +381,7 @@ func TestControllerInsideControllerRecursively(t *testing.T) {
e := httptest.New(t, app)
e.GET("/user/" + username).Expect().
- Status(iris.StatusOK).Body().Equal(expected)
+ Status(iris.StatusOK).Body().IsEqual(expected)
}
type testControllerRelPathFromFunc struct{}
@@ -421,47 +421,47 @@ func TestControllerRelPathFromFunc(t *testing.T) {
e := httptest.New(t, app)
e.GET("/").Expect().Status(iris.StatusOK).
- Body().Equal("GET:/")
+ Body().IsEqual("GET:/")
e.GET("/18446744073709551615").Expect().Status(iris.StatusOK).
- Body().Equal("GET:/18446744073709551615")
+ Body().IsEqual("GET:/18446744073709551615")
e.GET("/uint8/ratio/255").Expect().Status(iris.StatusOK).
- Body().Equal("GET:/uint8/ratio/255")
+ Body().IsEqual("GET:/uint8/ratio/255")
e.GET("/uint8/ratio/256").Expect().Status(iris.StatusNotFound)
e.GET("/int64/ratio/-42").Expect().Status(iris.StatusOK).
- Body().Equal("GET:/int64/ratio/-42")
+ Body().IsEqual("GET:/int64/ratio/-42")
e.GET("/something/true").Expect().Status(iris.StatusOK).
- Body().Equal("GET:/something/true")
+ Body().IsEqual("GET:/something/true")
e.GET("/something/false").Expect().Status(iris.StatusOK).
- Body().Equal("GET:/something/false")
+ Body().IsEqual("GET:/something/false")
e.GET("/something/truee").Expect().Status(iris.StatusNotFound)
e.GET("/something/falsee").Expect().Status(iris.StatusNotFound)
e.GET("/something/kataras/42").Expect().Status(iris.StatusOK).
- Body().Equal("GET:/something/kataras/42")
+ Body().IsEqual("GET:/something/kataras/42")
e.GET("/something/new/kataras/42").Expect().Status(iris.StatusOK).
- Body().Equal("GET:/something/new/kataras/42")
+ Body().IsEqual("GET:/something/new/kataras/42")
e.GET("/something/true/else/this/42").Expect().Status(iris.StatusOK).
- Body().Equal("GET:/something/true/else/this/42")
+ Body().IsEqual("GET:/something/true/else/this/42")
e.GET("/login").Expect().Status(iris.StatusOK).
- Body().Equal("GET:/login")
+ Body().IsEqual("GET:/login")
e.POST("/login").Expect().Status(iris.StatusOK).
- Body().Equal("POST:/login")
+ Body().IsEqual("POST:/login")
e.GET("/admin/login").Expect().Status(iris.StatusOK).
- Body().Equal("GET:/admin/login")
+ Body().IsEqual("GET:/admin/login")
e.PUT("/something/into/this").Expect().Status(iris.StatusOK).
- Body().Equal("PUT:/something/into/this")
+ Body().IsEqual("PUT:/something/into/this")
e.GET("/42").Expect().Status(iris.StatusOK).
- Body().Equal("GET:/42")
+ Body().IsEqual("GET:/42")
e.GET("/anything/here").Expect().Status(iris.StatusOK).
- Body().Equal("GET:/anything/here")
+ Body().IsEqual("GET:/anything/here")
e.GET("/location/x").Expect().Status(iris.StatusOK).
- Body().Equal("GET:/location/x")
+ Body().IsEqual("GET:/location/x")
e.GET("/location/x/y").Expect().Status(iris.StatusOK).
- Body().Equal("GET:/location/x/y")
+ Body().IsEqual("GET:/location/x/y")
e.GET("/location/z/42").Expect().Status(iris.StatusOK).
- Body().Equal("GET:/location/z/42")
+ Body().IsEqual("GET:/location/z/42")
}
type testControllerActivateListener struct {
@@ -502,16 +502,16 @@ func TestControllerActivateListener(t *testing.T) {
e := httptest.New(t, app)
e.GET("/").Expect().Status(iris.StatusOK).
- Body().Equal("overrides the dependency but not the field")
+ Body().IsEqual("overrides the dependency but not the field")
e.GET("/me/tos-read").Expect().Status(iris.StatusOK).
- Body().Equal("MeTOSRead")
+ Body().IsEqual("MeTOSRead")
e.POST("/me/tos-read").Expect().Status(iris.StatusOK).
- Body().Equal("MeTOSRead")
+ Body().IsEqual("MeTOSRead")
e.GET("/manual").Expect().Status(iris.StatusOK).
- Body().Equal("overrides the dependency but not the field")
+ Body().IsEqual("overrides the dependency but not the field")
e.GET("/manual2").Expect().Status(iris.StatusOK).
- Body().Equal("my manual title")
+ Body().IsEqual("my manual title")
}
type testControllerNotCreateNewDueManuallySettingAllFields struct {
@@ -550,7 +550,7 @@ func TestControllerNotCreateNewDueManuallySettingAllFields(t *testing.T) {
e := httptest.New(t, app)
e.GET("/").Expect().Status(iris.StatusOK).
- Body().Equal("my title")
+ Body().IsEqual("my title")
}
type testControllerRequestScopedDependencies struct {
@@ -594,11 +594,11 @@ func TestControllerRequestScopedDependencies(t *testing.T) {
e := httptest.New(t, app)
e.GET("/").WithQuery("name", "kataras").WithQuery("age", 27).
- Expect().Status(httptest.StatusOK).JSON().Equal(&testCustomStruct{
+ Expect().Status(httptest.StatusOK).JSON().IsEqual(&testCustomStruct{
Name: "kataras",
Age: 27,
})
- e.GET("/custom/context").Expect().Status(httptest.StatusOK).Body().Equal("test")
+ e.GET("/custom/context").Expect().Status(httptest.StatusOK).Body().IsEqual("test")
}
type (
@@ -637,7 +637,7 @@ func TestControllersInsideControllerDeep(t *testing.T) {
m.Handle(new(FinalController))
e := httptest.New(t, app)
- e.GET("/something").Expect().Status(httptest.StatusOK).Body().Equal("foo bar")
+ e.GET("/something").Expect().Status(httptest.StatusOK).Body().IsEqual("foo bar")
}
type testApplicationDependency struct {
@@ -657,8 +657,8 @@ func TestApplicationDependency(t *testing.T) {
m2.Handle(new(testApplicationDependency))
e := httptest.New(t, app)
- e.GET("/").Expect().Status(httptest.StatusOK).Body().Equal("app1")
- e.GET("/other").Expect().Status(httptest.StatusOK).Body().Equal("app2")
+ e.GET("/").Expect().Status(httptest.StatusOK).Body().IsEqual("app1")
+ e.GET("/other").Expect().Status(httptest.StatusOK).Body().IsEqual("app2")
}
type testControllerMethodHandlerBindStruct struct{}
@@ -701,11 +701,11 @@ func TestControllerMethodHandlerBindStruct(t *testing.T) {
manyData := []bindStructData{data, {"john doe"}}
e := httptest.New(t, app)
- e.GET("/data").WithQueryObject(data).Expect().Status(httptest.StatusOK).JSON().Equal(data)
- e.PATCH("/data").WithJSON(data).Expect().Status(httptest.StatusOK).JSON().Equal(data)
- e.POST("/data/42/slice").WithJSON(manyData).Expect().Status(httptest.StatusOK).JSON().Equal(manyData)
- e.POST("/data/42/slicetype").WithJSON(manyData).Expect().Status(httptest.StatusOK).JSON().Equal(manyData)
- e.POST("/data/42/slicetypeptr").WithJSON(manyData).Expect().Status(httptest.StatusOK).JSON().Equal(manyData)
+ e.GET("/data").WithQueryObject(data).Expect().Status(httptest.StatusOK).JSON().IsEqual(data)
+ e.PATCH("/data").WithJSON(data).Expect().Status(httptest.StatusOK).JSON().IsEqual(data)
+ e.POST("/data/42/slice").WithJSON(manyData).Expect().Status(httptest.StatusOK).JSON().IsEqual(manyData)
+ e.POST("/data/42/slicetype").WithJSON(manyData).Expect().Status(httptest.StatusOK).JSON().IsEqual(manyData)
+ e.POST("/data/42/slicetypeptr").WithJSON(manyData).Expect().Status(httptest.StatusOK).JSON().IsEqual(manyData)
// more tests inside the hero package itself.
}
@@ -721,7 +721,7 @@ func TestErrorHandlerContinue(t *testing.T) {
WithFormField("username", "makis").
WithFormField("age", "27").
WithFormField("unknown", "continue").
- Expect().Status(httptest.StatusOK).Body().Equal("makis is 27 years old\n")
+ Expect().Status(httptest.StatusOK).Body().IsEqual("makis is 27 years old\n")
}
}
diff --git a/sessions/sessions_test.go b/sessions/sessions_test.go
index 414c8f1163..0ee2bd06a0 100644
--- a/sessions/sessions_test.go
+++ b/sessions/sessions_test.go
@@ -114,7 +114,7 @@ func testSessions(t *testing.T, app *iris.Application) {
d.JSON().Object().Empty()
d = e.GET("/after_destroy_renew").Expect().Status(iris.StatusOK)
- d.Body().Equal("true")
+ d.Body().IsEqual("true")
d.Cookies().NotEmpty()
// set and clear again
@@ -123,7 +123,7 @@ func testSessions(t *testing.T, app *iris.Application) {
// test start on the same request but more than one times
- e.GET("/multi_start_set_get").Expect().Status(iris.StatusOK).Body().Equal("value")
+ e.GET("/multi_start_set_get").Expect().Status(iris.StatusOK).Body().IsEqual("value")
}
func TestFlashMessages(t *testing.T) {
@@ -211,7 +211,7 @@ func TestFlashMessages(t *testing.T) {
// set again in order to take the single one ( we don't test Cookies.NotEmpty because httpexpect default conf reads that from the request-only)
e.POST("/set").WithJSON(values).Expect().Status(iris.StatusOK)
- e.GET("/get_single").Expect().Status(iris.StatusOK).Body().Equal(valueSingleValue)
+ e.GET("/get_single").Expect().Status(iris.StatusOK).Body().IsEqual(valueSingleValue)
}
func TestSessionsUpdateExpiration(t *testing.T) {
@@ -268,11 +268,11 @@ func TestSessionsUpdateExpiration(t *testing.T) {
expectedResponse := response{SessionID: sessionID, Logged: true}
e.GET("/get").Expect().Status(httptest.StatusOK).
- JSON().Equal(expectedResponse)
+ JSON().IsEqual(expectedResponse)
tt = e.POST("/remember_me").Expect().Status(httptest.StatusOK)
tt.Cookie(cookieName).MaxAge().InRange(23*time.Hour, 24*time.Hour)
- tt.JSON().Equal(expectedResponse)
+ tt.JSON().IsEqual(expectedResponse)
// Test call `UpdateExpiration` when cookie is firstly created.
e.GET("/destroy").Expect().Status(httptest.StatusOK)
@@ -312,7 +312,7 @@ func TestSessionsUpdateExpirationConcurrently(t *testing.T) {
for i < 1000 {
go func() {
tt := e.GET("/get").Expect().Status(httptest.StatusOK)
- tt.Body().Equal(id)
+ tt.Body().IsEqual(id)
tt.Cookie(cookieName).MaxAge().InRange(29*time.Minute, 30*time.Minute)
wg.Done()
}()
@@ -320,6 +320,6 @@ func TestSessionsUpdateExpirationConcurrently(t *testing.T) {
}
wg.Wait()
tt := e.GET("/get").Expect()
- tt.Status(httptest.StatusOK).Body().Equal(id)
+ tt.Status(httptest.StatusOK).Body().IsEqual(id)
tt.Cookie(cookieName).MaxAge().InRange(29*time.Minute, 30*time.Minute)
}
diff --git a/versioning/deprecation_test.go b/versioning/deprecation_test.go
index 3dfd77b587..1755b2a82e 100644
--- a/versioning/deprecation_test.go
+++ b/versioning/deprecation_test.go
@@ -26,7 +26,7 @@ func TestDeprecated(t *testing.T) {
e := httptest.New(t, app)
ex := e.GET("/").WithHeader(versioning.AcceptVersionHeaderKey, "1.0").Expect()
- ex.Status(iris.StatusOK).Body().Equal("1.0")
+ ex.Status(iris.StatusOK).Body().IsEqual("1.0")
ex.Header("X-API-Warn").Equal(opts.WarnMessage)
expectedDateStr := opts.DeprecationDate.Format(app.ConfigurationReadOnly().GetTimeFormat())
ex.Header("X-API-Deprecation-Date").Equal(expectedDateStr)
diff --git a/versioning/group_test.go b/versioning/group_test.go
index 8512bc16f8..e0d1603355 100644
--- a/versioning/group_test.go
+++ b/versioning/group_test.go
@@ -37,20 +37,20 @@ func TestNewGroup(t *testing.T) {
e := httptest.New(t, app)
ex := e.GET("/api/user").WithHeader(versioning.AcceptVersionHeaderKey, "1.0.0").Expect()
- ex.Status(iris.StatusOK).Body().Equal(v10Response)
+ ex.Status(iris.StatusOK).Body().IsEqual(v10Response)
ex.Header("X-API-Warn").Equal(versioning.DefaultDeprecationOptions.WarnMessage)
e.GET("/api/user").WithHeader(versioning.AcceptVersionHeaderKey, "2.0.0").Expect().
- Status(iris.StatusOK).Body().Equal(v2Response)
+ Status(iris.StatusOK).Body().IsEqual(v2Response)
e.GET("/api/user").WithHeader(versioning.AcceptVersionHeaderKey, "2.1.0").Expect().
- Status(iris.StatusOK).Body().Equal(v2Response)
+ Status(iris.StatusOK).Body().IsEqual(v2Response)
e.GET("/api/user").WithHeader(versioning.AcceptVersionHeaderKey, "2.9.9").Expect().
- Status(iris.StatusOK).Body().Equal(v2Response)
+ Status(iris.StatusOK).Body().IsEqual(v2Response)
e.POST("/api/user").WithHeader(versioning.AcceptVersionHeaderKey, "2.0.0").Expect().
- Status(iris.StatusOK).Body().Equal(v2Response)
+ Status(iris.StatusOK).Body().IsEqual(v2Response)
e.PUT("/api/user/other").WithHeader(versioning.AcceptVersionHeaderKey, "2.9.0").Expect().
- Status(iris.StatusOK).Body().Equal(v2Response)
+ Status(iris.StatusOK).Body().IsEqual(v2Response)
e.GET("/api/user").WithHeader(versioning.AcceptVersionHeaderKey, "3.0").Expect().
- Status(iris.StatusNotImplemented).Body().Equal("version not found")
+ Status(iris.StatusNotImplemented).Body().IsEqual("version not found")
}
diff --git a/versioning/version_test.go b/versioning/version_test.go
index f403fae2bf..c190d4d80a 100644
--- a/versioning/version_test.go
+++ b/versioning/version_test.go
@@ -33,27 +33,27 @@ func TestGetVersion(t *testing.T) {
e := httptest.New(t, app)
e.GET("/").WithHeader(versioning.AcceptVersionHeaderKey, "1.0.0").Expect().
- Status(iris.StatusOK).Body().Equal("1.0.0")
+ Status(iris.StatusOK).Body().IsEqual("1.0.0")
e.GET("/").WithHeader(versioning.AcceptHeaderKey, "application/vnd.api+json; version=2.1.0").Expect().
- Status(iris.StatusOK).Body().Equal("2.1.0")
+ Status(iris.StatusOK).Body().IsEqual("2.1.0")
e.GET("/").WithHeader(versioning.AcceptHeaderKey, "application/vnd.api+json; version=2.1.0 ;other=dsa").Expect().
- Status(iris.StatusOK).Body().Equal("2.1.0")
+ Status(iris.StatusOK).Body().IsEqual("2.1.0")
e.GET("/").WithHeader(versioning.AcceptHeaderKey, "version=2.1.0").Expect().
- Status(iris.StatusOK).Body().Equal("2.1.0")
+ Status(iris.StatusOK).Body().IsEqual("2.1.0")
e.GET("/").WithHeader(versioning.AcceptHeaderKey, "version=1.0.0").Expect().
- Status(iris.StatusOK).Body().Equal("1.0.0")
+ Status(iris.StatusOK).Body().IsEqual("1.0.0")
// unknown versions.
e.GET("/").WithHeader(versioning.AcceptVersionHeaderKey, "").Expect().
- Status(iris.StatusOK).Body().Equal("")
+ Status(iris.StatusOK).Body().IsEqual("")
e.GET("/").WithHeader(versioning.AcceptHeaderKey, "application/vnd.api+json; version=").Expect().
- Status(iris.StatusOK).Body().Equal("")
+ Status(iris.StatusOK).Body().IsEqual("")
e.GET("/").WithHeader(versioning.AcceptHeaderKey, "application/vnd.api+json; version= ;other=dsa").Expect().
- Status(iris.StatusOK).Body().Equal("")
+ Status(iris.StatusOK).Body().IsEqual("")
e.GET("/").WithHeader(versioning.AcceptHeaderKey, "version=").Expect().
- Status(iris.StatusOK).Body().Equal("")
+ Status(iris.StatusOK).Body().IsEqual("")
- e.GET("/manual").Expect().Status(iris.StatusOK).Body().Equal("11.0.5")
+ e.GET("/manual").Expect().Status(iris.StatusOK).Body().IsEqual("11.0.5")
}
func TestVersionAliases(t *testing.T) {
@@ -87,21 +87,21 @@ func TestVersionAliases(t *testing.T) {
e := httptest.New(t, app)
// Make sure the SetVersion still works.
- e.GET("/api/manual").Expect().Status(iris.StatusOK).Body().Equal("12.0.0")
+ e.GET("/api/manual").Expect().Status(iris.StatusOK).Body().IsEqual("12.0.0")
// Test Empty default.
e.GET("/api").WithHeader(versioning.AcceptVersionHeaderKey, "").Expect().
- Status(iris.StatusOK).Body().Equal("1.0.0")
+ Status(iris.StatusOK).Body().IsEqual("1.0.0")
// Test NotFound error, aliases are not responsible for that.
e.GET("/api").WithHeader(versioning.AcceptVersionHeaderKey, "4.0.0").Expect().
- Status(iris.StatusNotImplemented).Body().Equal("version not found")
+ Status(iris.StatusNotImplemented).Body().IsEqual("version not found")
// Test "stage" alias.
e.GET("/api").WithHeader(versioning.AcceptVersionHeaderKey, "stage").Expect().
- Status(iris.StatusOK).Body().Equal("2.0.0")
+ Status(iris.StatusOK).Body().IsEqual("2.0.0")
// Test version 2.
e.GET("/api").WithHeader(versioning.AcceptVersionHeaderKey, "2.0.0").Expect().
- Status(iris.StatusOK).Body().Equal("2.0.0")
+ Status(iris.StatusOK).Body().IsEqual("2.0.0")
// Test version 3 (registered first).
e.GET("/api").WithHeader(versioning.AcceptVersionHeaderKey, "3.1.0").Expect().
- Status(iris.StatusOK).Body().Equal("3.1.0")
+ Status(iris.StatusOK).Body().IsEqual("3.1.0")
}