diff options
| author | Horus3 | 2015-05-17 03:32:03 +0200 |
|---|---|---|
| committer | Horus3 | 2015-05-17 03:32:03 +0200 |
| commit | cc207536d1f8618385d9807906818180cd596777 (patch) | |
| tree | 0093a6b12994c3d75b2be0abb6a43dae1eb9bf98 | |
| parent | feb97c32649dfaa7c98283423125283a53d5dd09 (diff) | |
| download | freemail-cc207536d1f8618385d9807906818180cd596777.tar.gz | |
Improve tests. Fix (major) typos. Include Piwik and it tracks the language.
| -rw-r--r-- | Makefile | 2 | ||||
| -rw-r--r-- | domain_test.go | 2 | ||||
| -rw-r--r-- | handler.go | 2 | ||||
| -rw-r--r-- | handler_test.go | 29 | ||||
| -rw-r--r-- | server.go | 4 | ||||
| -rw-r--r-- | server_test.go | 7 | ||||
| -rw-r--r-- | statistics/mailgraph.cgi | 16 | ||||
| -rw-r--r-- | struct.go | 5 | ||||
| -rw-r--r-- | utilities.go | 4 | ||||
| -rw-r--r-- | utilities_test.go | 4 | ||||
| -rw-r--r-- | views/about.html | 2 | ||||
| -rw-r--r-- | views/about_de.html | 2 | ||||
| -rw-r--r-- | views/footer.html | 20 | ||||
| -rw-r--r-- | views/howto.html | 2 | ||||
| -rw-r--r-- | views/howto_de.html | 2 | ||||
| -rw-r--r-- | views/index.html | 2 | ||||
| -rw-r--r-- | views/index_de.html | 4 | ||||
| -rw-r--r-- | views/navbar_de.html | 2 | ||||
| -rw-r--r-- | views/password.html | 2 | ||||
| -rw-r--r-- | views/password_de.html | 2 | ||||
| -rw-r--r-- | views/register.html | 2 | ||||
| -rw-r--r-- | views/register_de.html | 2 | ||||
| -rw-r--r-- | views/server.html | 4 | ||||
| -rw-r--r-- | views/server_de.html | 6 | ||||
| -rw-r--r-- | views/user.html | 16 | ||||
| -rw-r--r-- | views/user_de.html | 18 |
26 files changed, 106 insertions, 57 deletions
@@ -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.") } @@ -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") @@ -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() <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> -<title>Mail statistics for Libremail</title> +<title>Mail Statistics for Libremail</title> <meta http-equiv="Refresh" content="300" /> <meta http-equiv="Pragma" content="no-cache" /> <meta http-equiv="X-UA-Compatible" content="IE=edge"> @@ -276,7 +276,7 @@ a:hover { text-decoration: underline; } <div class="container"> <div class="row"> <div class="cold-md-12"> - <h1>Mail statistics for Libremail</h1> + <h1>Mail Statistics for Libremail</h1> <div class="well"> HEADER @@ -319,7 +319,17 @@ HEADER <script> \$(document).ready(function(){ \$('.dropdown-toggle').dropdown(); - }) + }); + var _paq = _paq || []; + _paq.push(['trackPageView']); + _paq.push(['enableLinkTracking']); + (function() { + var u="//a.iamfabulous.de/"; + _paq.push(['setTrackerUrl', u+'piwik.php']); + _paq.push(['setSiteId', 12]); + var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0]; + g.type='text/javascript'; g.async=true; g.defer=true; g.src=u+'piwik.js'; s.parentNode.insertBefore(g,s); + })(); </script> </body></html> FOOTER @@ -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 @@ </div> </div> </div> -{{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 @@ </div> </div> </div> -{{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 @@ <script> $(document).ready(function(){ $('.dropdown-toggle').dropdown(); - }) + }); + var _paq = _paq || []; + _paq.push(['trackPageView']); + _paq.push(['enableLinkTracking']); + (function() { + var u="//a.iamfabulous.de/"; + _paq.push(['setTrackerUrl', u+'piwik.php']); + _paq.push(['setSiteId', 12]); + /* + _paq.push([function () { + if (!this.getCustomVariable(1)) { + this.setCustomVariable(1, "Language", {{.}}, "visit"); + } + }]); + */ + _paq.push(['setCustomVariable', 1, "Language",{{.}}, "visit"]); + var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0]; + g.type='text/javascript'; g.async=true; g.defer=true; g.src=u+'piwik.js'; s.parentNode.insertBefore(g,s); + })(); </script> </body> </html> 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 @@ </div> </div> </div> -{{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 @@ </div> </div> </div> -{{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 @@ </div> </div> </div> -{{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 @@ <p>Genervt from Spam? Sie brauchen nur ein E-Mail Adresse? Oder Sie besitzen eine eigene Domain und möchten darüber E-Mails versenden? <strong>Hier sind Sie genau richtig!</strong> <br>Komplett kostenlos und werbefrei!</p> - <p><a class="btn btn-primary btn-lg btn-raised" href="/about" role="button"><span class="fa fa-sign-in"></span> Neue Adresse »</a></p> + <p><a class="btn btn-primary btn-lg btn-raised" href="/register" role="button"><span class="fa fa-sign-in"></span> Neue Adresse »</a></p> </div> </div> <div class="container"> @@ -43,4 +43,4 @@ </div> </div> </div> -{{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 @@ <a class="" href="/locale?to=en" title="Change to English"><span class="fa fa-language"></span> en</a> </li> <li class="dropdown"> - <a class="" href="/register" title="Nutzer" data-target="#" data-toggle="dropdown"><span class="glyphicon glyphicon-user"></span> Mehr <span class="caret"></span></a> + <a class="" href="/register" title="Nutzer" data-target="#" data-toggle="dropdown"><span class="fa fa-plus"></span> Mehr <span class="caret"></span></a> <ul class="dropdown-menu" role="menu"> <li> <a class="" href="/about" title="Über uns"><span class="glyphicon glyphicon-file"></span> Über uns</a> diff --git a/views/password.html b/views/password.html index c5bedee..2b109d5 100644 --- a/views/password.html +++ b/views/password.html @@ -73,4 +73,4 @@ </div> </div> </div> -{{template "footer.html"}} +{{template "footer.html" .Language}} diff --git a/views/password_de.html b/views/password_de.html index 606ff4b..66792d5 100644 --- a/views/password_de.html +++ b/views/password_de.html @@ -73,4 +73,4 @@ </div> </div> </div> -{{template "footer.html"}} +{{template "footer.html" .Language}} diff --git a/views/register.html b/views/register.html index c063fa0..5971686 100644 --- a/views/register.html +++ b/views/register.html @@ -85,4 +85,4 @@ </div> </div> </div> -{{template "footer.html"}} +{{template "footer.html" .Language}} diff --git a/views/register_de.html b/views/register_de.html index a6423d4..a2c6a54 100644 --- a/views/register_de.html +++ b/views/register_de.html @@ -85,4 +85,4 @@ </div> </div> </div> -{{template "footer.html"}} +{{template "footer.html" .Language}} diff --git a/views/server.html b/views/server.html index b14fbf6..ef2929c 100644 --- a/views/server.html +++ b/views/server.html @@ -14,7 +14,7 @@ <h2>Webmail</h2> <p>You can use the webmail interface to browse your emails with your webbrowser of choice. Use <a href="https://iamfabulous.de/webmail" title="Webmail">this link <span class="fa fa-external-link-square"></a> to open roundcube now. <br> - <strong>Use your mail adress and the passwort as credentials to log in.</strong> + <strong>Use your mail address and the passwort as credentials to log in.</strong> <br> The TLS certificate is signed to 'webmail.iamfabulous.de' </p> @@ -76,4 +76,4 @@ </div> </div> </div> -{{template "footer.html"}} +{{template "footer.html" .Language}} diff --git a/views/server_de.html b/views/server_de.html index 8cdebf5..eeb26b9 100644 --- a/views/server_de.html +++ b/views/server_de.html @@ -12,9 +12,9 @@ <ul class="list-unstyled"> <li> <h2>Webmail</h2> - <p>Nutzen Sie ihren Browser, um ihre E-Mails zu lesen. Unser Webmail finden sie unter <a href="https://iamfabulous.de/webmail" title="Webmail">diesem Link <span class="fa fa-external-link-square"></a>. + <p>Nutzen Sie Ihren Browser, um Ihre E-Mails zu lesen. Unser Webmail finden Sie unter <a href="https://iamfabulous.de/webmail" title="Webmail">diesem Link <span class="fa fa-external-link-square"></a>. <br> - <strong>Loggen Sie sich mit Ihrer kompletten E-Mail Adresse und ihrem Passwort ein.</strong> + <strong>Loggen Sie sich mit Ihrer kompletten E-Mail Adresse und Ihrem Passwort ein.</strong> <br> Das TLS Zertifikat ist auf 'webmail.iamfabulous.de' signiert. </p> @@ -78,4 +78,4 @@ </div> </div> </div> -{{template "footer.html"}} +{{template "footer.html" .Language}} diff --git a/views/user.html b/views/user.html index d8a5175..58798ce 100644 --- a/views/user.html +++ b/views/user.html @@ -12,27 +12,27 @@ <p> You can change your password here. <br> - <a class="btn btn-primary btn-raised" href="/password" role="button">Change Password »</a> + <a class="btn btn-primary btn-raised" href="/password" role="button"><span class="fa fa-lock"></span> Change Password »</a> </p> <br> - <h2 id="sign_up">Create new adress</h2> + <h2 id="sign_up">Create new address</h2> <p> - Looking for a new adress? Click here. + Looking for a new mail address? Click here. <br> - <a class="btn btn-primary btn-raised" href="/register" role="button">Create New Account»</a> + <a class="btn btn-primary btn-raised" href="/register" role="button"><span class="fa fa-user-plus"></span> Create New Account»</a> </p> <br> <h2 id="login">Login</h2> <p>The easiest way is to use our webmail interface. You can find it <a href="https://iamfabulous.de/webmail" title="Webmail" target="_blank">here <span class="fa fa-external-link"></span></a>. <br> - Log in with your full mail adress and your password. + Log in with your full mail address and your password. <br> - <a class="btn btn-primary btn-raised" href="https://iamfabulous.de/webmail" role="button">Webmail »</a> + <a class="btn btn-primary btn-raised" href="https://iamfabulous.de/webmail" role="button"><span class="glyphicon glyphicon-envelope"></span> Login with your browser »</a> <br> <br> If you want to use your own client, see here for connection details. <br> - <a class="btn btn-primary btn-raised" href="/server" role="button" title="Server | Connection details">Connection details »</a> + <a class="btn btn-primary btn-raised" href="/server" role="button" title="Server | Connection details"><span class="glyphicon glyphicon-cog"></span> Connection details »</a> </p> <!--p> See <a href="/howto#login" title="How to login">here</a> for more details. @@ -43,4 +43,4 @@ </div> </div> </div> -{{template "footer.html"}} +{{template "footer.html" .Language}} diff --git a/views/user_de.html b/views/user_de.html index 454b69f..a1e67d8 100644 --- a/views/user_de.html +++ b/views/user_de.html @@ -10,34 +10,34 @@ <div class="well well-lg"> <h2 id="change_password">Ändere das Passwort</h2> <p> - Sie können hier ihr Passwort ändern. + Sie können hier Ihr Passwort ändern. <br> - <a class="btn btn-primary btn-raised" href="/password" role="button">Ändere dein Passwort »</a> + <a class="btn btn-primary btn-raised" href="/password" role="button"><span class="fa fa-lock"></span> Ändere dein Passwort »</a> </p> <br> <h2 id="sign_up">Erstelle eine neue Adresse</h2> <p> - Sie wollen eine neue E-Mail Adresse? Klicken sie hier. + Sie wollen eine neue E-Mail Adresse? Klicken Sie hier. <br> - <a class="btn btn-primary btn-raised" href="/register" role="button">Neue E-Mail Adresse »</a> + <a class="btn btn-primary btn-raised" href="/register" role="button"><span class="fa fa-user-plus"></span> Neue E-Mail Adresse »</a> </p> <br> <h2 id="login">Login</h2> <p> - Verwalten Sie ihre neue E-Mail Adresse einfach über unser intuitives webbasiertes Portal. Sie finden es <a href="https://iamfabulous.de/webmail" title="Webmail" target="_blank">hier <span class="fa fa-external-link"></span></a>. + Verwalten Sie Ihre neue E-Mail Adresse einfach über unser intuitives webbasiertes Portal. Sie finden es <a href="https://iamfabulous.de/webmail" title="Webmail" target="_blank">hier <span class="fa fa-external-link"></span></a>. <br> Loggen Sie sich mit Ihrer E-Mail Adresse und Ihrem Passwort ein. <br> - <a class="btn btn-primary btn-raised" href="https://iamfabulous.de/webmail" role="button">Logge dich in dein E-Mail Konto ein »</a> + <a class="btn btn-primary btn-raised" href="https://iamfabulous.de/webmail" role="button"><span class="glyphicon glyphicon-envelope"></span> Logge dich in dein E-Mail Konto ein »</a> <br> <br> - Wenn Sie ihren eigenen Klienten nutzen wollen, schauen Sie hier für Verbindungsdetails. + Wenn Sie Ihren eigenen Klienten nutzen wollen, schauen Sie hier für Verbindungsdetails. <br> - <a class="btn btn-primary btn-raised" href="/server" role="button" title="Server | Verbindungsdetails">Verbindungsdetails »</a> + <a class="btn btn-primary btn-raised" href="/server" role="button" title="Server | Verbindungsdetails"><span class="glyphicon glyphicon-cog"></span> Verbindungsdetails »</a> </p> </div> </div> </div> </div> -{{template "footer.html"}} +{{template "footer.html" .Language}} |
