summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--service/pixelated/adapter/services/mail_service.py3
-rw-r--r--service/pixelated/config/services.py3
-rw-r--r--service/pixelated/resources/root_resource.py7
-rw-r--r--service/test/support/integration/app_test_client.py2
-rw-r--r--service/test/unit/adapter/test_mail_service.py2
-rw-r--r--service/test/unit/resources/test_root_resource.py30
-rw-r--r--web-ui/app/index.html2
7 files changed, 43 insertions, 6 deletions
diff --git a/service/pixelated/adapter/services/mail_service.py b/service/pixelated/adapter/services/mail_service.py
index 44c4c145..53f7615e 100644
--- a/service/pixelated/adapter/services/mail_service.py
+++ b/service/pixelated/adapter/services/mail_service.py
@@ -23,10 +23,11 @@ import os
class MailService(object):
- def __init__(self, mail_sender, mail_store, search_engine):
+ def __init__(self, mail_sender, mail_store, search_engine, account_email):
self.mail_store = mail_store
self.search_engine = search_engine
self.mail_sender = mail_sender
+ self.account_email = account_email
@defer.inlineCallbacks
def all_mails(self):
diff --git a/service/pixelated/config/services.py b/service/pixelated/config/services.py
index 35429c01..b70bb3f9 100644
--- a/service/pixelated/config/services.py
+++ b/service/pixelated/config/services.py
@@ -60,7 +60,8 @@ class Services(object):
return MailService(
pixelated_mail_sender,
leap_session.mail_store,
- search_engine)
+ search_engine,
+ leap_session.account_email())
def setup_draft_service(self, mail_store):
return DraftService(mail_store)
diff --git a/service/pixelated/resources/root_resource.py b/service/pixelated/resources/root_resource.py
index e6046eae..7bb7b3ad 100644
--- a/service/pixelated/resources/root_resource.py
+++ b/service/pixelated/resources/root_resource.py
@@ -1,5 +1,6 @@
import os
import requests
+from string import Template
from pixelated.resources.attachments_resource import AttachmentsResource
from pixelated.resources.contacts_resource import ContactsResource
from pixelated.resources.features_resource import FeaturesResource
@@ -22,6 +23,7 @@ class RootResource(Resource):
Resource.__init__(self)
self._startup_assets_folder = self._get_startup_folder()
self._static_folder = self._get_static_folder()
+ self._html_template = open(os.path.join(self._static_folder, 'index.html')).read()
self._startup_mode()
def _startup_mode(self):
@@ -34,6 +36,8 @@ class RootResource(Resource):
return Resource.getChild(self, path, request)
def initialize(self, keymanager, search_engine, mail_service, draft_service, feedback_service):
+ self.account_email = mail_service.account_email
+
self.putChild('assets', File(self._static_folder))
self.putChild('keys', KeysResource(keymanager))
self.putChild('attachment', AttachmentsResource(mail_service))
@@ -67,4 +71,5 @@ class RootResource(Resource):
if self._is_starting():
return open(os.path.join(self._startup_assets_folder, 'Interstitial.html')).read()
else:
- return open(os.path.join(self._static_folder, 'index.html')).read()
+ response = Template(self._html_template).safe_substitute(account_email=self.account_email)
+ return str(response)
diff --git a/service/test/support/integration/app_test_client.py b/service/test/support/integration/app_test_client.py
index 369a393d..484bea6e 100644
--- a/service/test/support/integration/app_test_client.py
+++ b/service/test/support/integration/app_test_client.py
@@ -166,7 +166,7 @@ class AppTestClient(object):
return mail_sender
def _create_mail_service(self, mail_sender, mail_store, search_engine):
- mail_service = MailService(mail_sender, mail_store, search_engine)
+ mail_service = MailService(mail_sender, mail_store, search_engine, self.MAIL_ADDRESS)
return mail_service
def _generate_soledad_test_folder_name(self, soledad_test_folder='/tmp/soledad-test/test'):
diff --git a/service/test/unit/adapter/test_mail_service.py b/service/test/unit/adapter/test_mail_service.py
index 6faf5140..1ec3806e 100644
--- a/service/test/unit/adapter/test_mail_service.py
+++ b/service/test/unit/adapter/test_mail_service.py
@@ -37,7 +37,7 @@ class TestMailService(unittest.TestCase):
self.mail_sender = mock()
self.search_engine = mock()
- self.mail_service = MailService(self.mail_sender, self.mail_store, self.search_engine)
+ self.mail_service = MailService(self.mail_sender, self.mail_store, self.search_engine, 'acount@email')
def tearDown(self):
unstub()
diff --git a/service/test/unit/resources/test_root_resource.py b/service/test/unit/resources/test_root_resource.py
new file mode 100644
index 00000000..4cdaf97a
--- /dev/null
+++ b/service/test/unit/resources/test_root_resource.py
@@ -0,0 +1,30 @@
+import unittest
+import re
+from mockito import mock, when
+from test.unit.resources import DummySite
+from twisted.web.test.requesthelper import DummyRequest
+from pixelated.resources.root_resource import RootResource
+
+
+class TestRootResource(unittest.TestCase):
+ MAIL_ADDRESS = 'test_user@pixelated-project.org'
+
+ def setUp(self):
+ root_resource = RootResource()
+ root_resource._mode = root_resource
+ root_resource.account_email = self.MAIL_ADDRESS
+ root_resource._html_template = "<html><head><title>$account_email</title></head></html>"
+ self.web = DummySite(root_resource)
+
+ def test_render_GET_should_template_account_email(self):
+ request = DummyRequest([''])
+
+ d = self.web.get(request)
+
+ def assert_response(_):
+ expected = "<title>{0}</title>".format(self.MAIL_ADDRESS)
+ matches = re.findall(expected, request.written[0])
+ self.assertEquals(len(matches), 1)
+
+ d.addCallback(assert_response)
+ return d
diff --git a/web-ui/app/index.html b/web-ui/app/index.html
index 281d661e..1ff5a116 100644
--- a/web-ui/app/index.html
+++ b/web-ui/app/index.html
@@ -6,7 +6,7 @@
href="assets/images/Favicon.png">
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
-<title>Pixelated Mail</title>
+<title>$account_email - Pixelated Mail</title>
<meta name="description" content="">
<meta name="viewport" content="width=device-width">
<link href="assets/bower_components/font-awesome/css/font-awesome.min.css" rel="stylesheet" type="text/css">