summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xinstall-pixelated.sh7
-rw-r--r--service/pixelated/adapter/mail.py10
-rw-r--r--service/test/unit/adapter/mail_test.py14
-rw-r--r--web-ui/config/package.sh1
-rw-r--r--web-ui/package.json2
5 files changed, 26 insertions, 8 deletions
diff --git a/install-pixelated.sh b/install-pixelated.sh
index b6442bfb..3ab8c422 100755
--- a/install-pixelated.sh
+++ b/install-pixelated.sh
@@ -61,7 +61,10 @@ cat <<EOF
## Rename the certificate based on your provider domain name like this 'your.leapprovider.org.crt'
## Put it in services/pixelated/certificates/
-## Once you are done, just run:
-## pixelated-user-agent
+## Once you are done, activate your virtual environment by running:
+## source service/.virtualenv/bin/activate
+
+## The User agent will be available on localhost:3333 after running
+## pixelated-user-agent
EOF
diff --git a/service/pixelated/adapter/mail.py b/service/pixelated/adapter/mail.py
index 946b921d..847773b7 100644
--- a/service/pixelated/adapter/mail.py
+++ b/service/pixelated/adapter/mail.py
@@ -25,6 +25,7 @@ import pixelated.support.date
from email.MIMEMultipart import MIMEMultipart
from pycryptopp.hash import sha256
import re
+import base64
class Mail(object):
@@ -71,7 +72,7 @@ class Mail(object):
if 'content_type' in self.headers and 'charset' in self.headers['content_type']:
return re.compile('.*charset=(.*)').match(self.headers['content_type']).group(1)
else:
- return 'us-ascii'
+ return 'utf-8'
@property
def raw(self):
@@ -157,7 +158,7 @@ class InputMail(Mail):
for part in self.body:
mime_multipart.attach(MIMEText(part['raw'], part['content-type']))
else:
- mime_multipart.attach(MIMEText(self.body, 'plain'))
+ mime_multipart.attach(MIMEText(self.body, 'plain', 'utf-8'))
return mime_multipart
def to_smtp_format(self):
@@ -210,7 +211,10 @@ class PixelatedMail(Mail):
body += '--' + self.boundary + '--'
return body
else:
- return self.bdoc.content['raw']
+ if self.parts and self.parts['alternatives'][0]['headers']['Content-Transfer-Encoding'] == 'base64':
+ return base64.b64decode(self.parts['alternatives'][0]['content'])
+ else:
+ return self.bdoc.content['raw']
@property
def headers(self):
diff --git a/service/test/unit/adapter/mail_test.py b/service/test/unit/adapter/mail_test.py
index 10886a27..5c83bd03 100644
--- a/service/test/unit/adapter/mail_test.py
+++ b/service/test/unit/adapter/mail_test.py
@@ -20,6 +20,7 @@ from pixelated.adapter.mail import PixelatedMail, InputMail
from mockito import *
from test.support import test_helper
import dateutil.parser as dateparser
+import base64
class TestPixelatedMail(unittest.TestCase):
@@ -169,6 +170,17 @@ class TestPixelatedMail(unittest.TestCase):
mail.raw
+ def test_that_body_understands_base64(self):
+ body = "bl\xe1"
+ encoded_body = base64.b64encode(body)
+
+ fdoc, hdoc, bdoc = test_helper.leap_mail()
+ parts = {'alternatives': []}
+ parts['alternatives'].append({'content': encoded_body, 'headers': {'Content-Transfer-Encoding': 'base64'}})
+ mail = PixelatedMail.from_soledad(fdoc, hdoc, bdoc, soledad_querier=self.querier, parts=parts)
+
+ self.assertEquals(body, mail.body)
+
class InputMailTest(unittest.TestCase):
mail_dict = lambda x: {
@@ -222,7 +234,7 @@ class InputMailTest(unittest.TestCase):
self.assertRegexpMatches(mime_multipart.as_string(), "\nBcc: bcc@pixelated.org, anotherbcc@pixelated.org\n")
self.assertRegexpMatches(mime_multipart.as_string(), "\nDate: date now\n")
self.assertRegexpMatches(mime_multipart.as_string(), "\nSubject: Oi\n")
- self.assertRegexpMatches(mime_multipart.as_string(), "\nEste \xe9 o corpo")
+ self.assertRegexpMatches(mime_multipart.as_string(), base64.b64encode(self.mail_dict()['body']))
def test_smtp_format(self):
InputMail.FROM_EMAIL_ADDRESS = 'pixelated@org'
diff --git a/web-ui/config/package.sh b/web-ui/config/package.sh
index d376113c..f7d7f3aa 100644
--- a/web-ui/config/package.sh
+++ b/web-ui/config/package.sh
@@ -41,7 +41,6 @@ cat \
app/bower_components/modernizr/modernizr.js \
app/bower_components/lodash/dist/lodash.js \
app/bower_components/jquery/dist/jquery.js \
-app/bower_components/utf8/utf8.js
app/js/lib/highlightRegex.js \
app/bower_components/handlebars/handlebars.min.js \
app/bower_components/typeahead.js/dist/typeahead.bundle.min.js \
diff --git a/web-ui/package.json b/web-ui/package.json
index 878e3103..4f18251f 100644
--- a/web-ui/package.json
+++ b/web-ui/package.json
@@ -3,7 +3,7 @@
"version": "0.0.0",
"devDependencies": {
"bower": "1.3.12",
- "minify": "1.4.0",
+ "minify": "1.4.1",
"handlebars": "2.0.0",
"html-minifier": "^0.6.9",
"imagemin": "3.1.0",