From cc207536d1f8618385d9807906818180cd596777 Mon Sep 17 00:00:00 2001 From: Horus3 Date: Sun, 17 May 2015 03:32:03 +0200 Subject: Improve tests. Fix (major) typos. Include Piwik and it tracks the language. --- Makefile | 2 +- domain_test.go | 2 +- handler.go | 2 +- handler_test.go | 29 ++++++++++++++++++++--------- server.go | 4 ++++ server_test.go | 7 ++++++- statistics/mailgraph.cgi | 16 +++++++++++++--- struct.go | 5 +++-- utilities.go | 4 ++-- utilities_test.go | 4 ++-- views/about.html | 2 +- views/about_de.html | 2 +- views/footer.html | 20 +++++++++++++++++++- views/howto.html | 2 +- views/howto_de.html | 2 +- views/index.html | 2 +- views/index_de.html | 4 ++-- views/navbar_de.html | 2 +- views/password.html | 2 +- views/password_de.html | 2 +- views/register.html | 2 +- views/register_de.html | 2 +- views/server.html | 4 ++-- views/server_de.html | 6 +++--- views/user.html | 16 ++++++++-------- views/user_de.html | 18 +++++++++--------- 26 files changed, 106 insertions(+), 57 deletions(-) diff --git a/Makefile b/Makefile index f6aa928..95cb3b5 100644 --- a/Makefile +++ b/Makefile @@ -118,7 +118,7 @@ _run_test: $(_TEST_FILES) touch $@ test_all: import - @FREEMAIL_SMTP_MAILER_MX=localhost FREEMAIL_DB_CREDENTIALS=':memory:' go test $(RACE) $(VERBOSE) $(EXTERNAL) + @FREEMAIL_SMTP_MAILER_MX=localhost.iamfabulous.de FREEMAIL_DB_CREDENTIALS=':memory:' go test $(RACE) $(VERBOSE) $(EXTERNAL) benchmark: import DB_FREEMAIL_LOG=false FREEMAIL_DB_CREDENTIALS=":memory:" go test $(VERBOSE) -bench=".*" diff --git a/domain_test.go b/domain_test.go index af80d0d..1d3dde6 100644 --- a/domain_test.go +++ b/domain_test.go @@ -54,7 +54,7 @@ func TestValidateDomainMX(t *testing.T) { if d.ValidateDomainMX(os.Getenv("FREEMAIL_SMTP_MAILER_MX")) { t.Fatal("google.cm MX record doesn't point to this server.") } - d.Name = "iamfabulous.de" + d.Name = os.Getenv("FREEMAIL_SMTP_MAILER_MX") if !d.ValidateDomainMX(os.Getenv("FREEMAIL_SMTP_MAILER_MX")) { t.Fatal(os.Getenv("FREEMAIL_SMTP_MAILER_MX") + " MX should point to this server.") } diff --git a/handler.go b/handler.go index 021a852..e372052 100644 --- a/handler.go +++ b/handler.go @@ -260,7 +260,7 @@ func ChangeLocaleHandler(w http.ResponseWriter, r *http.Request) { locale := r.URL.Query().Get("to") var page string - if session.Values["page"] == "" { + if session.Values["page"] == "" || session.Values["page"] == nil { page = "/" } else { page = session.Values["page"].(string) diff --git a/handler_test.go b/handler_test.go index 2ea7494..8bbf36a 100644 --- a/handler_test.go +++ b/handler_test.go @@ -4,6 +4,7 @@ import ( "net/http" "net/http/httptest" "net/url" + "os" "strings" "testing" ) @@ -92,10 +93,15 @@ func BenchmarkRegisterHandler(b *testing.B) { } func TestCreateNewEntryHandler(t *testing.T) { + if testing.Short() || !*testExternal { + t.Skip("Skipping test to avoid external network.") + } + + domain := os.Getenv("FREEMAIL_SMTP_MAILER_MX") form := url.Values{} - form.Set("Email", "createNewEntry@localhost") - form.Set("ConfirmEmail", "createNewEntry@localhost") + form.Set("Email", "createNewEntry@"+domain) + form.Set("ConfirmEmail", "createNewEntry@"+domain) form.Set("Password", "Password") form.Set("ConfirmPassword", "Password") @@ -342,15 +348,20 @@ func BenchmarkPasswordHandler(b *testing.B) { func TestChangePasswordHandler(t *testing.T) { + if testing.Short() || !*testExternal { + t.Skip("Skipping test to avoid external network.") + } + // Test with the correct form form := url.Values{} - if err := CreateNewEntry("test@localhost", Md5Hash("Password")); err != nil { + domain := os.Getenv("FREEMAIL_SMTP_MAILER_MX") + if err := CreateNewEntry("test@"+domain, Md5Hash("Password")); err != nil { t.Fatal(err) } - form.Set("Email", "test@localhost") + form.Set("Email", "test@"+domain) form.Set("Password", "Password") form.Set("ConfirmPassword", "password") form.Set("NewPassword", "password") @@ -395,11 +406,11 @@ func TestChangePasswordHandler(t *testing.T) { form = url.Values{} - if err = CreateNewEntry("test1@localhost", Md5Hash("Password")); err != nil { + if err = CreateNewEntry("test1@"+domain, Md5Hash("Password")); err != nil { t.Fatal(err) } - form.Set("Email", "test1@localhost") + form.Set("Email", "test1@"+domain) form.Set("Password", "Password") form.Set("ConfirmPassword", "Password") form.Set("NewPassword", "password") @@ -439,11 +450,11 @@ func TestChangePasswordHandler(t *testing.T) { form = url.Values{} - if err = CreateNewEntry("test2@localhost", Md5Hash("Password")); err != nil { + if err = CreateNewEntry("test2@"+domain, Md5Hash("Password")); err != nil { t.Fatal(err) } - form.Set("Email", "test2@localhost") + form.Set("Email", "test2@"+domain) form.Set("Password", "password") form.Set("ConfirmPassword", "Password") form.Set("NewPassword", "Password") @@ -483,7 +494,7 @@ func TestChangePasswordHandler(t *testing.T) { form = url.Values{} - form.Set("Email", "nonexistent@localhost") + form.Set("Email", "nonexistent@"+domain) form.Set("Password", "password") form.Set("ConfirmPassword", "Password") form.Set("NewPassword", "Password") diff --git a/server.go b/server.go index 975b549..e5e5d56 100644 --- a/server.go +++ b/server.go @@ -53,6 +53,10 @@ func CreateNewEntry(email, password string) error { func ExecTemplate(template string, w http.ResponseWriter, r *http.Request, flash Flash) error { l := GetLanguage(r) + flash.Language = l + if l != "" { + l = "_" + l + } template = template + l + ".html" index := mainTempl.Lookup(template) diff --git a/server_test.go b/server_test.go index ba84bc7..8ad3151 100644 --- a/server_test.go +++ b/server_test.go @@ -1,11 +1,16 @@ package main import ( + "os" "testing" ) func TestCreateNewEntry(t *testing.T) { - err := CreateNewEntry("foobar@localhost", "password") + if testing.Short() || !*testExternal { + t.Skip("Skipping test to avoid external network.") + } + domain := os.Getenv("FREEMAIL_SMTP_MAILER_MX") + err := CreateNewEntry("foobar@"+domain, "password") if err != nil { t.Fatal(err) } diff --git a/statistics/mailgraph.cgi b/statistics/mailgraph.cgi index 69d539a..60c81a2 100644 --- a/statistics/mailgraph.cgi +++ b/statistics/mailgraph.cgi @@ -193,7 +193,7 @@ sub print_html() -Mail statistics for Libremail +Mail Statistics for Libremail @@ -276,7 +276,7 @@ a:hover { text-decoration: underline; }
-

Mail statistics for Libremail

+

Mail Statistics for Libremail

HEADER @@ -319,7 +319,17 @@ HEADER FOOTER diff --git a/struct.go b/struct.go index bcc94c8..a59b766 100644 --- a/struct.go +++ b/struct.go @@ -49,8 +49,9 @@ type Request struct { } type Flash struct { - Success []interface{} - Error []interface{} + Success []interface{} + Error []interface{} + Language string } type ChangePasswordReq struct { diff --git a/utilities.go b/utilities.go index 602d4fe..f3b0ece 100644 --- a/utilities.go +++ b/utilities.go @@ -38,7 +38,7 @@ func GetLanguage(r *http.Request) string { } else { if c.Value != "" { if c.Value == "de" { - return "_" + c.Value + return c.Value } else { return "" } @@ -50,7 +50,7 @@ func GetLanguage(r *http.Request) string { lang := r.Header["Accept-Language"][0] l := strings.TrimSpace(strings.Split(lang, ",")[0]) if l == "de" { - return "_" + l + return l } return "" } diff --git a/utilities_test.go b/utilities_test.go index 4431241..d69c530 100644 --- a/utilities_test.go +++ b/utilities_test.go @@ -43,9 +43,9 @@ func TestGetLanguage(t *testing.T) { } request.AddCookie(&cookie) lang = GetLanguage(request) - if lang != "_de" { + if lang != "de" { t.Log(lang) - t.Fatal("Expected '_de' as lang.") + t.Fatal("Expected 'de' as lang.") } // Test language with lang=en diff --git a/views/about.html b/views/about.html index 0e75f60..364bc28 100644 --- a/views/about.html +++ b/views/about.html @@ -62,4 +62,4 @@
-{{template "footer.html"}} +{{template "footer.html" .Language}} diff --git a/views/about_de.html b/views/about_de.html index 0f46fed..7cee528 100644 --- a/views/about_de.html +++ b/views/about_de.html @@ -63,4 +63,4 @@
-{{template "footer.html"}} +{{template "footer.html" .Language}} diff --git a/views/footer.html b/views/footer.html index 19c589b..007474b 100644 --- a/views/footer.html +++ b/views/footer.html @@ -19,7 +19,25 @@ diff --git a/views/howto.html b/views/howto.html index 03bb4f7..72a4e3f 100644 --- a/views/howto.html +++ b/views/howto.html @@ -49,4 +49,4 @@ -{{template "footer.html"}} +{{template "footer.html" .Language}} diff --git a/views/howto_de.html b/views/howto_de.html index b573a09..76ce646 100644 --- a/views/howto_de.html +++ b/views/howto_de.html @@ -46,4 +46,4 @@ -{{template "footer.html"}} +{{template "footer.html" .Language}} diff --git a/views/index.html b/views/index.html index 423f176..4e5b2ee 100644 --- a/views/index.html +++ b/views/index.html @@ -44,4 +44,4 @@ -{{template "footer.html"}} +{{template "footer.html" .Language}} diff --git a/views/index_de.html b/views/index_de.html index 839c5c6..f563b9e 100644 --- a/views/index_de.html +++ b/views/index_de.html @@ -8,7 +8,7 @@

Genervt from Spam? Sie brauchen nur ein E-Mail Adresse? Oder Sie besitzen eine eigene Domain und möchten darüber E-Mails versenden? Hier sind Sie genau richtig!
Komplett kostenlos und werbefrei!

-

Neue Adresse »

+

Neue Adresse »

@@ -43,4 +43,4 @@
-{{template "footer.html"}} +{{template "footer.html" .Language}} diff --git a/views/navbar_de.html b/views/navbar_de.html index 747d4b8..e5f35f7 100644 --- a/views/navbar_de.html +++ b/views/navbar_de.html @@ -22,7 +22,7 @@ en