You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
64 lines
2.3 KiB
64 lines
2.3 KiB
package handlers
|
|
|
|
import (
|
|
"net/http"
|
|
"net/http/httptest"
|
|
"os"
|
|
"path/filepath"
|
|
"strings"
|
|
"testing"
|
|
|
|
"teraclone/internal/service"
|
|
)
|
|
|
|
func TestSystemImprovementPagesAndRemovedNavigation(t *testing.T) {
|
|
handler, err := NewDeviceHandler(service.NewStatelessAppService(), "http://127.0.0.1:1")
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
mux := http.NewServeMux()
|
|
handler.RegisterRoutes(mux)
|
|
handler.sessions["qa-admin"] = browserSession{Username: "admin", BackendToken: "test-token", Role: "administrator", WorkspaceID: "local-ui-qa"}
|
|
for _, path := range []string{"/", "/port-status", "/ports/1/parameters", "/ports/26/parameters", "/ports/20/parameters", "/ports/20/operation-1", "/ports/20/operation-2", "/ports/20/data-log", "/port-debug", "/tools/nettest/ping", "/logs/ports", "/device/factory-reset"} {
|
|
req := httptest.NewRequest(http.MethodGet, path, nil)
|
|
req.AddCookie(&http.Cookie{Name: sessionCookieName, Value: "qa-admin"})
|
|
response := httptest.NewRecorder()
|
|
mux.ServeHTTP(response, req)
|
|
if response.Code != 200 {
|
|
t.Fatalf("%s: %d", path, response.Code)
|
|
}
|
|
html := response.Body.String()
|
|
for _, removed := range []string{`href="/tools/alias"`, `href="/password"`, `href="/ports/20/advanced"`} {
|
|
if strings.Contains(html, removed) {
|
|
t.Errorf("%s still contains %s", path, removed)
|
|
}
|
|
}
|
|
if path == "/port-status" && (!strings.Contains(html, "세션 4 IP") || !strings.Contains(html, "포트 별칭")) {
|
|
t.Fatal("port alias/session controls missing")
|
|
}
|
|
if strings.Contains(path, "operation-") && !strings.Contains(html, `value="10020"`) {
|
|
t.Fatal("channel listen port is not fixed")
|
|
}
|
|
if directory := os.Getenv("TERA_UI_QA_OUTPUT"); directory != "" {
|
|
if err := os.MkdirAll(directory, 0755); err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
name := strings.ReplaceAll(strings.Trim(path, "/"), "/", "-")
|
|
if name == "" {
|
|
name = "dashboard"
|
|
}
|
|
if err := os.WriteFile(filepath.Join(directory, name+".html"), response.Body.Bytes(), 0644); err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
}
|
|
}
|
|
for _, path := range []string{"/ports/20/advanced", "/tools/alias"} {
|
|
req := httptest.NewRequest(http.MethodGet, path, nil)
|
|
req.AddCookie(&http.Cookie{Name: sessionCookieName, Value: "qa-admin"})
|
|
response := httptest.NewRecorder()
|
|
mux.ServeHTTP(response, req)
|
|
if response.Code != 404 {
|
|
t.Fatalf("removed page %s returned %d", path, response.Code)
|
|
}
|
|
}
|
|
}
|
|
|