galakei 0.11.0 → 0.11.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/lib/galakei/email.rb +4 -0
- data/lib/galakei/version.rb +1 -1
- data/spec/galakei/email_spec.rb +66 -22
- metadata +12 -12
data/lib/galakei/email.rb
CHANGED
@@ -37,6 +37,10 @@ module Galakei::Email
|
|
37
37
|
node.name = "div"
|
38
38
|
node.after("<br />")
|
39
39
|
end
|
40
|
+
#empty the <head>
|
41
|
+
doc.css("head").each do |node|
|
42
|
+
node.unlink
|
43
|
+
end
|
40
44
|
encoding = doc.meta_encoding || "UTF-8"
|
41
45
|
res = "<html><head>"
|
42
46
|
res << "<meta http-equiv=\"Content-type\" content=\"text/html;charset=#{encoding}\" />"
|
data/lib/galakei/version.rb
CHANGED
data/spec/galakei/email_spec.rb
CHANGED
@@ -1,36 +1,80 @@
|
|
1
1
|
# -*- coding: utf-8 -*-
|
2
2
|
require 'spec_helper'
|
3
3
|
|
4
|
+
MSG=<<EOT
|
5
|
+
<html>
|
6
|
+
<head>
|
7
|
+
<meta http-equiv="Content-type" content="text/html;charset=UTF-8" />
|
8
|
+
<title> This is mytitle </title>
|
9
|
+
</head>
|
10
|
+
<body bgcolor="#FFFF00">
|
11
|
+
<h1>A first level heading
|
12
|
+
</h1
|
13
|
+
<h3>A third level heading
|
14
|
+
</h3>
|
15
|
+
<blink> A BLINKING TITLE
|
16
|
+
</blink>
|
17
|
+
A table
|
18
|
+
<table>
|
19
|
+
<tr><td>Cell top left</td><td>Cell top right</td></tr>
|
20
|
+
<tr><td>Cell bot left</td><td>Cell bot right</td></tr>
|
21
|
+
</table>
|
22
|
+
<marquee behaviour="scroll"> HELLO mailworld I'm a marquee
|
23
|
+
</marquee>
|
24
|
+
<div align="left">
|
25
|
+
左側
|
26
|
+
</div>
|
27
|
+
<hr color="#0000FF">
|
28
|
+
<div align="center">
|
29
|
+
ど真ん中
|
30
|
+
</div>
|
31
|
+
<div style="text-align:center;">
|
32
|
+
</div>
|
33
|
+
<hr color="#FF0000">
|
34
|
+
<div align="right">
|
35
|
+
右側
|
36
|
+
</div>
|
37
|
+
こんにちは世界!ばあばばばあ
|
38
|
+
</body>
|
39
|
+
<br/>
|
40
|
+
<font size=4 color="#009900">
|
41
|
+
GREEEEEEN
|
42
|
+
</font>
|
43
|
+
<a href="http://dragonmobile.nuancemobiledeveloper.com/"><img src="cid:image-attachment-id" alt=""/></a>this was an image
|
44
|
+
<br/>
|
45
|
+
And now, <a href="ftp://some.ftpsite.com/">Downloadz youz warez herez!</a>
|
46
|
+
</html>
|
47
|
+
EOT
|
48
|
+
|
4
49
|
describe Galakei::Email do
|
50
|
+
let(:sanitized_mail){ Galakei::Email.to_galakei_email(MSG) }
|
5
51
|
|
6
|
-
it "should
|
7
|
-
|
8
|
-
Galakei::Email.to_galakei_email(html_email).should_not =~ /<h[0-9]>/
|
52
|
+
it "should have a html, head, meta and body" do
|
53
|
+
sanitized_mail.should =~ /html.*head.*meta.*body/m
|
9
54
|
end
|
10
55
|
|
11
|
-
it "should have
|
12
|
-
|
13
|
-
|
56
|
+
it "should have supported tags and styles" do
|
57
|
+
sanitized_mail.should =~ /<div align=/m
|
58
|
+
sanitized_mail.should =~ /<hr color=/m
|
59
|
+
sanitized_mail.should =~ /<font size=.*color=/m
|
60
|
+
sanitized_mail.should =~ /<br>/m
|
61
|
+
sanitized_mail.should =~ /<blink>/m
|
62
|
+
sanitized_mail.should =~ /<marquee behaviour=/m
|
63
|
+
sanitized_mail.should =~ /<img src=.*cid/m
|
64
|
+
sanitized_mail.should =~ /<a href=/m
|
14
65
|
end
|
15
|
-
|
16
|
-
it "should not have
|
17
|
-
|
18
|
-
|
66
|
+
|
67
|
+
it "should not have h and table tags" do
|
68
|
+
sanitized_mail.should_not =~ /<h[0-9]>/
|
69
|
+
sanitized_mail.should_not =~ /<table>/
|
19
70
|
end
|
20
71
|
|
21
|
-
it "should have
|
22
|
-
|
23
|
-
Galakei::Email.to_galakei_email(html_email).should =~ /html.*head.*meta.*body/m
|
24
|
-
end
|
25
|
-
|
26
|
-
it "should have div,href,br,hr elements" do
|
27
|
-
html_email='<div align="center"><a href="http://dragonmobile.nuancemobiledeveloper.com/"><img src="http://www.mobilemonday.jp/wp-content/uploads/2011/01/NMDP.jpg" alt=""></a></div><hr color="blue"> <br><div class="register_button"><a href="http://gigs.checkin.local:3000/events/2/tickets/new?auth_token=demo">Register</a></div>'
|
28
|
-
Galakei::Email.to_galakei_email(html_email).should =~ /div(.*)align(.*)href(.*)hr(.*)blue(.*)br/m
|
72
|
+
it "should not have unsupported protocols" do
|
73
|
+
sanitized_mail.should_not =~ /ftpsite/
|
29
74
|
end
|
30
75
|
|
31
|
-
it "should
|
32
|
-
|
33
|
-
|
34
|
-
end
|
76
|
+
it "should not have title" do
|
77
|
+
sanitized_mail.should_not =~ /mytitle/
|
78
|
+
end
|
35
79
|
|
36
80
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: galakei
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.11.
|
4
|
+
version: 0.11.1
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -11,11 +11,11 @@ authors:
|
|
11
11
|
autorequire:
|
12
12
|
bindir: bin
|
13
13
|
cert_chain: []
|
14
|
-
date: 2011-09-
|
14
|
+
date: 2011-09-15 00:00:00.000000000Z
|
15
15
|
dependencies:
|
16
16
|
- !ruby/object:Gem::Dependency
|
17
17
|
name: actionpack
|
18
|
-
requirement: &
|
18
|
+
requirement: &70175966516740 !ruby/object:Gem::Requirement
|
19
19
|
none: false
|
20
20
|
requirements:
|
21
21
|
- - ~>
|
@@ -23,10 +23,10 @@ dependencies:
|
|
23
23
|
version: 3.0.3
|
24
24
|
type: :runtime
|
25
25
|
prerelease: false
|
26
|
-
version_requirements: *
|
26
|
+
version_requirements: *70175966516740
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: rack
|
29
|
-
requirement: &
|
29
|
+
requirement: &70175966515520 !ruby/object:Gem::Requirement
|
30
30
|
none: false
|
31
31
|
requirements:
|
32
32
|
- - ! '>='
|
@@ -34,10 +34,10 @@ dependencies:
|
|
34
34
|
version: 1.2.1
|
35
35
|
type: :runtime
|
36
36
|
prerelease: false
|
37
|
-
version_requirements: *
|
37
|
+
version_requirements: *70175966515520
|
38
38
|
- !ruby/object:Gem::Dependency
|
39
39
|
name: css_parser
|
40
|
-
requirement: &
|
40
|
+
requirement: &70175966514940 !ruby/object:Gem::Requirement
|
41
41
|
none: false
|
42
42
|
requirements:
|
43
43
|
- - ! '>='
|
@@ -45,10 +45,10 @@ dependencies:
|
|
45
45
|
version: '0'
|
46
46
|
type: :runtime
|
47
47
|
prerelease: false
|
48
|
-
version_requirements: *
|
48
|
+
version_requirements: *70175966514940
|
49
49
|
- !ruby/object:Gem::Dependency
|
50
50
|
name: nokogiri
|
51
|
-
requirement: &
|
51
|
+
requirement: &70175966514340 !ruby/object:Gem::Requirement
|
52
52
|
none: false
|
53
53
|
requirements:
|
54
54
|
- - ! '>='
|
@@ -56,10 +56,10 @@ dependencies:
|
|
56
56
|
version: '0'
|
57
57
|
type: :runtime
|
58
58
|
prerelease: false
|
59
|
-
version_requirements: *
|
59
|
+
version_requirements: *70175966514340
|
60
60
|
- !ruby/object:Gem::Dependency
|
61
61
|
name: sanitize
|
62
|
-
requirement: &
|
62
|
+
requirement: &70175966513600 !ruby/object:Gem::Requirement
|
63
63
|
none: false
|
64
64
|
requirements:
|
65
65
|
- - ! '>='
|
@@ -67,7 +67,7 @@ dependencies:
|
|
67
67
|
version: '0'
|
68
68
|
type: :runtime
|
69
69
|
prerelease: false
|
70
|
-
version_requirements: *
|
70
|
+
version_requirements: *70175966513600
|
71
71
|
description: Japanese feature phones (a.k.a., keitai, galakei) have a number of restrictions
|
72
72
|
over normal web browsers. This library adds support for them
|
73
73
|
email: info@mobalean.com
|