@@ -39,7 +39,7 @@ class ImportTest extends \PHPUnit_Framework_TestCase
39
39
protected function setUp ()
40
40
{
41
41
42
- $ this ->notationResolver = $ this ->getMock (
42
+ $ this ->notationResolver = $ this ->getMock (
43
43
\Magento \Framework \View \Asset \NotationResolver \Module::class, [], [], '' , false
44
44
);
45
45
$ this ->asset = $ this ->getMock (\Magento \Framework \View \Asset \File::class, [], [], '' , false );
@@ -63,7 +63,11 @@ protected function setUp()
63
63
public function testProcess ($ originalContent , $ foundPath , $ resolvedPath , $ expectedContent )
64
64
{
65
65
$ chain = new \Magento \Framework \View \Asset \PreProcessor \Chain ($ this ->asset , $ originalContent , 'less ' , 'path ' );
66
- $ this ->notationResolver ->expects ($ this ->once ())
66
+ $ invoke = $ this ->once ();
67
+ if (preg_match ('/^(http:|https:|\/+)/ ' , $ foundPath )) {
68
+ $ invoke = $ this ->never ();
69
+ }
70
+ $ this ->notationResolver ->expects ($ invoke )
67
71
->method ('convertModuleNotationToPath ' )
68
72
->with ($ this ->asset , $ foundPath )
69
73
->will ($ this ->returnValue ($ resolvedPath ));
@@ -78,50 +82,70 @@ public function testProcess($originalContent, $foundPath, $resolvedPath, $expect
78
82
public function processDataProvider ()
79
83
{
80
84
return [
81
- 'non-modular notation ' => [
82
- '@import (type) " some/file.css" media; ' ,
83
- 'some/file.css ' ,
84
- 'some/file.css ' ,
85
- " @import (type) 'some/file.css ' media; " ,
85
+ 'non-modular notation, no extension ' => [
86
+ '@import (type) \' some/file \' media; ' ,
87
+ 'some/file.less ' ,
88
+ 'some/file.less ' ,
89
+ ' @import (type) \ 'some/file.less \ ' media; ' ,
86
90
],
87
91
'modular, with extension ' => [
88
92
'@import (type) "Magento_Module::something.css" media; ' ,
89
93
'Magento_Module::something.css ' ,
90
94
'Magento_Module/something.css ' ,
91
- "@import (type) 'Magento_Module/something.css' media; " ,
95
+ '@import (type) "Magento_Module/something.css" media; ' ,
96
+ ],
97
+ 'remote file import url() ' => [
98
+ '@import (type) url("http://example.com/css/some.css") media; ' ,
99
+ 'http://example.com/css/some.css ' ,
100
+ null ,
101
+ '@import (type) url("http://example.com/css/some.css") media; ' ,
102
+ ],
103
+ 'invalid path ' => [
104
+ '@import (type) url("/example.com/css/some.css") media; ' ,
105
+ '/example.com/css/some.css ' ,
106
+ null ,
107
+ '@import (type) url("/example.com/css/some.css") media; ' ,
92
108
],
93
109
'modular, no extension ' => [
94
110
'@import (type) "Magento_Module::something" media; ' ,
95
111
'Magento_Module::something.less ' ,
96
112
'Magento_Module/something.less ' ,
97
- " @import (type) ' Magento_Module/something.less' media; " ,
113
+ ' @import (type) " Magento_Module/something.less" media; ' ,
98
114
],
99
115
'no type ' => [
100
116
'@import "Magento_Module::something.css" media; ' ,
101
117
'Magento_Module::something.css ' ,
102
118
'Magento_Module/something.css ' ,
103
- " @import ' Magento_Module/something.css' media; " ,
119
+ ' @import " Magento_Module/something.css" media; ' ,
104
120
],
105
121
'no media ' => [
106
122
'@import (type) "Magento_Module::something.css"; ' ,
107
123
'Magento_Module::something.css ' ,
108
124
'Magento_Module/something.css ' ,
109
- "@import (type) 'Magento_Module/something.css'; " ,
125
+ '@import (type) "Magento_Module/something.css"; ' ,
126
+ ],
127
+ 'with single line comment, replace ' => [
128
+ '@import (type) "some/file" media; ' . PHP_EOL
129
+ . '// @import (type) "unnecessary/file.css" media; ' ,
130
+ 'some/file.less ' ,
131
+ 'some/file.less ' ,
132
+ '@import (type) "some/file.less" media; ' . PHP_EOL ,
110
133
],
111
- 'with single line comment ' => [
112
- '@import (type) "some/file.css" media; ' . PHP_EOL
113
- . '// @import (type) "unnecessary/file.css" media; ' ,
114
- 'some/file.css ' ,
115
- 'some/file.css ' ,
116
- "@import (type) 'some/file.css' media; " . PHP_EOL ,
134
+ 'with single line comment, no replace ' => [
135
+ '@import (type) "some/file.less" media; ' . PHP_EOL
136
+ . '// @import (type) "unnecessary/file" media; ' ,
137
+ 'some/file.less ' ,
138
+ 'some/file.less ' ,
139
+ '@import (type) "some/file.less" media; ' . PHP_EOL
140
+ . '// @import (type) "unnecessary/file" media; ' ,
117
141
],
118
142
'with multi line comment ' => [
119
- '@import (type) "some/file.css " media; ' . PHP_EOL
143
+ '@import (type) "some/file" media; ' . PHP_EOL
120
144
. '/* @import (type) "unnecessary/file.css" media; ' . PHP_EOL
121
145
. '@import (type) "another/unnecessary/file.css" media; */ ' ,
122
- 'some/file.css ' ,
123
- 'some/file.css ' ,
124
- " @import (type) ' some/file.css' media; " . PHP_EOL ,
146
+ 'some/file.less ' ,
147
+ 'some/file.less ' ,
148
+ ' @import (type) " some/file.less" media; ' . PHP_EOL ,
125
149
],
126
150
];
127
151
}
0 commit comments