Skip to content

Commit 7b05828

Browse files
authored
Add EditorConfig with PSR-2 spaces indentation (#26)
* Add EditorConfig Use 4 spaces for everything except Yaml and XML. Trim trailing whitespace except for Markdown where it could be significant. * Apply 4 spaces to PHP code abiding PSR-2
1 parent 89b91ce commit 7b05828

File tree

3 files changed

+175
-157
lines changed

3 files changed

+175
-157
lines changed

.editorconfig

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
# EditorConfig is awesome: http://EditorConfig.org
2+
3+
# top-most EditorConfig file
4+
root = true
5+
6+
[*]
7+
end_of_line = lf
8+
insert_final_newline = true
9+
charset = utf-8
10+
indent_style = space
11+
indent_size = 4
12+
13+
[*.md]
14+
trim_trailing_whitespace = false
15+
16+
[*.yml, *.xml, *.xml.dist]
17+
indent_style = space
18+
indent_size = 2

src/CssInlinerPlugin.php

Lines changed: 42 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -8,46 +8,46 @@
88

99
class CssInlinerPlugin implements Swift_Events_SendListener
1010
{
11-
/**
12-
* @var CssToInlineStyles
13-
*/
14-
private $converter;
15-
16-
/**
17-
* @param CssToInlineStyles $converter
18-
*/
19-
public function __construct(CssToInlineStyles $converter = null)
20-
{
21-
if ($converter) {
22-
$this->converter = $converter;
23-
} else {
24-
$this->converter = new CssToInlineStyles();
25-
}
26-
}
27-
28-
/**
29-
* @param Swift_Events_SendEvent $event
30-
*/
31-
public function beforeSendPerformed(Swift_Events_SendEvent $event)
32-
{
33-
$message = $event->getMessage();
34-
35-
if ($message->getContentType() === 'text/html') {
36-
$message->setBody($this->converter->convert($message->getBody()));
37-
}
38-
39-
foreach ($message->getChildren() as $part) {
40-
if (strpos($part->getContentType(), 'text/html') === 0) {
41-
$part->setBody($this->converter->convert($part->getBody()));
42-
}
43-
}
44-
}
45-
46-
/**
47-
* @param Swift_Events_SendEvent $event
48-
*/
49-
public function sendPerformed(Swift_Events_SendEvent $event)
50-
{
51-
// Do nothing after sending the message
52-
}
11+
/**
12+
* @var CssToInlineStyles
13+
*/
14+
private $converter;
15+
16+
/**
17+
* @param CssToInlineStyles $converter
18+
*/
19+
public function __construct(CssToInlineStyles $converter = null)
20+
{
21+
if ($converter) {
22+
$this->converter = $converter;
23+
} else {
24+
$this->converter = new CssToInlineStyles();
25+
}
26+
}
27+
28+
/**
29+
* @param Swift_Events_SendEvent $event
30+
*/
31+
public function beforeSendPerformed(Swift_Events_SendEvent $event)
32+
{
33+
$message = $event->getMessage();
34+
35+
if ($message->getContentType() === 'text/html') {
36+
$message->setBody($this->converter->convert($message->getBody()));
37+
}
38+
39+
foreach ($message->getChildren() as $part) {
40+
if (strpos($part->getContentType(), 'text/html') === 0) {
41+
$part->setBody($this->converter->convert($part->getBody()));
42+
}
43+
}
44+
}
45+
46+
/**
47+
* @param Swift_Events_SendEvent $event
48+
*/
49+
public function sendPerformed(Swift_Events_SendEvent $event)
50+
{
51+
// Do nothing after sending the message
52+
}
5353
}

tests/src/CssInlinerPluginTest.php

Lines changed: 115 additions & 115 deletions
Original file line numberDiff line numberDiff line change
@@ -13,119 +13,119 @@
1313
*/
1414
class CssInlinerPluginTest extends PHPUnit_Framework_TestCase
1515
{
16-
/**
17-
* @var Swift_Mailer
18-
*/
19-
private $mailer;
20-
21-
/**
22-
* @var string
23-
*/
24-
private $emailRaw;
25-
26-
/**
27-
* @var string
28-
*/
29-
private $emailConverted;
30-
31-
public function setUp()
32-
{
33-
$dir = __DIR__.'/../fixtures/';
34-
35-
$this->emailRaw = file_get_contents($dir.'emailRaw.html');
36-
$this->emailConverted = file_get_contents($dir.'emailConverted.html');
37-
38-
$this->mailer = Swift_Mailer::newInstance(Swift_NullTransport::newInstance());
39-
$this->mailer->registerPLugin(new CssInlinerPlugin());
40-
}
41-
42-
/**
43-
* @return Swift_Message
44-
*/
45-
private function createMessage()
46-
{
47-
$message = Swift_Message::newInstance();
48-
49-
$message->setFrom('test@example.com');
50-
$message->setTo('test2@example.com');
51-
$message->setSubject('Test');
52-
53-
return $message;
54-
}
55-
56-
/**
57-
* @covers ::beforeSendPerformed
58-
* @covers ::sendPerformed
59-
*/
60-
public function testHtmlBody()
61-
{
62-
$message = $this->createMessage();
63-
64-
$message->setContentType('text/html');
65-
$message->setBody($this->emailRaw);
66-
67-
$this->mailer->send($message);
68-
69-
$this->assertStringEqualsStringWithoutIndentation($this->emailConverted, $message->getBody());
70-
}
71-
72-
/**
73-
* @covers ::beforeSendPerformed
74-
*/
75-
public function testHtmlPart()
76-
{
77-
$message = $this->createMessage();
78-
79-
$message->addPart($this->emailRaw, 'text/html');
80-
$message->addPart('plain part', 'text/plain');
81-
82-
$this->mailer->send($message);
83-
84-
$children = $message->getChildren();
85-
86-
$this->assertStringEqualsStringWithoutIndentation($this->emailConverted, $children[0]->getBody());
87-
}
88-
89-
/**
90-
* @covers ::__construct
91-
* @covers ::beforeSendPerformed
92-
*/
93-
public function testInjectedConverterIsUsedInsteadOfDefault()
94-
{
95-
$converterStub = $this
96-
->getMockBuilder('TijsVerkoyen\CssToInlineStyles\CssToInlineStyles')
97-
->setMethods(array('convert', 'setUseInlineStylesBlock'))
98-
->getMock();
99-
100-
// "our" converter should be used
101-
$converterStub
102-
->expects($this->atLeastOnce())
103-
->method('convert');
104-
105-
$converterStub
106-
->expects($this->never())
107-
->method('setUseInlineStylesBlock');
108-
109-
$message = $this->createMessage();
110-
$message->setContentType('text/html');
111-
112-
$mailer = Swift_Mailer::newInstance(Swift_NullTransport::newInstance());
113-
$mailer->registerPlugin(new CssInlinerPlugin($converterStub));
114-
$mailer->send($message);
115-
}
116-
117-
/**
118-
* This assert is an ugly hack aiming to fix an indent issue when using libxml < 2.9.5.
119-
*
120-
* @param string $expected
121-
* @param string $actual
122-
* @param string $message
123-
*/
124-
private function assertStringEqualsStringWithoutIndentation($expected, $actual, $message = '')
125-
{
126-
$expected = preg_replace('/^[[:space:]]+|\n/m', '', $expected);
127-
$actual = preg_replace('/^[[:space:]]+|\n/m', '', $actual);
128-
129-
$this->assertEquals($expected, $actual, $message);
130-
}
16+
/**
17+
* @var Swift_Mailer
18+
*/
19+
private $mailer;
20+
21+
/**
22+
* @var string
23+
*/
24+
private $emailRaw;
25+
26+
/**
27+
* @var string
28+
*/
29+
private $emailConverted;
30+
31+
public function setUp()
32+
{
33+
$dir = __DIR__.'/../fixtures/';
34+
35+
$this->emailRaw = file_get_contents($dir.'emailRaw.html');
36+
$this->emailConverted = file_get_contents($dir.'emailConverted.html');
37+
38+
$this->mailer = Swift_Mailer::newInstance(Swift_NullTransport::newInstance());
39+
$this->mailer->registerPLugin(new CssInlinerPlugin());
40+
}
41+
42+
/**
43+
* @return Swift_Message
44+
*/
45+
private function createMessage()
46+
{
47+
$message = Swift_Message::newInstance();
48+
49+
$message->setFrom('test@example.com');
50+
$message->setTo('test2@example.com');
51+
$message->setSubject('Test');
52+
53+
return $message;
54+
}
55+
56+
/**
57+
* @covers ::beforeSendPerformed
58+
* @covers ::sendPerformed
59+
*/
60+
public function testHtmlBody()
61+
{
62+
$message = $this->createMessage();
63+
64+
$message->setContentType('text/html');
65+
$message->setBody($this->emailRaw);
66+
67+
$this->mailer->send($message);
68+
69+
$this->assertStringEqualsStringWithoutIndentation($this->emailConverted, $message->getBody());
70+
}
71+
72+
/**
73+
* @covers ::beforeSendPerformed
74+
*/
75+
public function testHtmlPart()
76+
{
77+
$message = $this->createMessage();
78+
79+
$message->addPart($this->emailRaw, 'text/html');
80+
$message->addPart('plain part', 'text/plain');
81+
82+
$this->mailer->send($message);
83+
84+
$children = $message->getChildren();
85+
86+
$this->assertStringEqualsStringWithoutIndentation($this->emailConverted, $children[0]->getBody());
87+
}
88+
89+
/**
90+
* @covers ::__construct
91+
* @covers ::beforeSendPerformed
92+
*/
93+
public function testInjectedConverterIsUsedInsteadOfDefault()
94+
{
95+
$converterStub = $this
96+
->getMockBuilder('TijsVerkoyen\CssToInlineStyles\CssToInlineStyles')
97+
->setMethods(array('convert', 'setUseInlineStylesBlock'))
98+
->getMock();
99+
100+
// "our" converter should be used
101+
$converterStub
102+
->expects($this->atLeastOnce())
103+
->method('convert');
104+
105+
$converterStub
106+
->expects($this->never())
107+
->method('setUseInlineStylesBlock');
108+
109+
$message = $this->createMessage();
110+
$message->setContentType('text/html');
111+
112+
$mailer = Swift_Mailer::newInstance(Swift_NullTransport::newInstance());
113+
$mailer->registerPlugin(new CssInlinerPlugin($converterStub));
114+
$mailer->send($message);
115+
}
116+
117+
/**
118+
* This assert is an ugly hack aiming to fix an indent issue when using libxml < 2.9.5.
119+
*
120+
* @param string $expected
121+
* @param string $actual
122+
* @param string $message
123+
*/
124+
private function assertStringEqualsStringWithoutIndentation($expected, $actual, $message = '')
125+
{
126+
$expected = preg_replace('/^[[:space:]]+|\n/m', '', $expected);
127+
$actual = preg_replace('/^[[:space:]]+|\n/m', '', $actual);
128+
129+
$this->assertEquals($expected, $actual, $message);
130+
}
131131
}

0 commit comments

Comments
 (0)