aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--app/Resources/static/themes/_global/share.scss6
-rw-r--r--app/config/config.yml1
-rw-r--r--src/Wallabag/CoreBundle/Helper/DownloadImages.php4
-rw-r--r--tests/Wallabag/CoreBundle/Helper/DownloadImagesTest.php23
-rw-r--r--tests/Wallabag/ImportBundle/Controller/FirefoxControllerTest.php8
-rw-r--r--tests/Wallabag/ImportBundle/fixtures/firefox-bookmarks.json4
-rw-r--r--web/wallassets/public.css2
7 files changed, 40 insertions, 8 deletions
diff --git a/app/Resources/static/themes/_global/share.scss b/app/Resources/static/themes/_global/share.scss
index 72e73a9a..ac26a350 100644
--- a/app/Resources/static/themes/_global/share.scss
+++ b/app/Resources/static/themes/_global/share.scss
@@ -221,6 +221,12 @@ ol li:last-child {
221 padding-bottom: 0; 221 padding-bottom: 0;
222} 222}
223 223
224iframe,
225video {
226 max-width: 100%;
227 height: auto;
228}
229
224mark { 230mark {
225 padding: 0 0.2em; 231 padding: 0 0.2em;
226} 232}
diff --git a/app/config/config.yml b/app/config/config.yml
index 04d757c1..0c2b6a1d 100644
--- a/app/config/config.yml
+++ b/app/config/config.yml
@@ -26,7 +26,6 @@ framework:
26 engines: ['twig'] 26 engines: ['twig']
27 default_locale: "%locale%" 27 default_locale: "%locale%"
28 trusted_hosts: ~ 28 trusted_hosts: ~
29 trusted_proxies: ~
30 session: 29 session:
31 # handler_id set to null will use default session handler from php.ini 30 # handler_id set to null will use default session handler from php.ini
32 handler_id: session.handler.native_file 31 handler_id: session.handler.native_file
diff --git a/src/Wallabag/CoreBundle/Helper/DownloadImages.php b/src/Wallabag/CoreBundle/Helper/DownloadImages.php
index 9c9452dd..f91cdf5e 100644
--- a/src/Wallabag/CoreBundle/Helper/DownloadImages.php
+++ b/src/Wallabag/CoreBundle/Helper/DownloadImages.php
@@ -85,6 +85,10 @@ class DownloadImages
85 */ 85 */
86 public function processSingleImage($entryId, $imagePath, $url, $relativePath = null) 86 public function processSingleImage($entryId, $imagePath, $url, $relativePath = null)
87 { 87 {
88 if (null === $imagePath) {
89 return false;
90 }
91
88 if (null === $relativePath) { 92 if (null === $relativePath) {
89 $relativePath = $this->getRelativePath($entryId); 93 $relativePath = $this->getRelativePath($entryId);
90 } 94 }
diff --git a/tests/Wallabag/CoreBundle/Helper/DownloadImagesTest.php b/tests/Wallabag/CoreBundle/Helper/DownloadImagesTest.php
index 51ab1bcd..faa803fa 100644
--- a/tests/Wallabag/CoreBundle/Helper/DownloadImagesTest.php
+++ b/tests/Wallabag/CoreBundle/Helper/DownloadImagesTest.php
@@ -204,4 +204,27 @@ class DownloadImagesTest extends TestCase
204 204
205 $this->assertNotContains('http://piketty.blog.lemonde.fr/', $res, 'Image srcset attribute were not replaced'); 205 $this->assertNotContains('http://piketty.blog.lemonde.fr/', $res, 'Image srcset attribute were not replaced');
206 } 206 }
207
208 public function testProcessImageWithNullPath()
209 {
210 $client = new Client();
211
212 $mock = new Mock([
213 new Response(200, ['content-type' => null], Stream::factory(file_get_contents(__DIR__ . '/../fixtures/image-no-content-type.jpg'))),
214 ]);
215
216 $client->getEmitter()->attach($mock);
217
218 $logHandler = new TestHandler();
219 $logger = new Logger('test', [$logHandler]);
220
221 $download = new DownloadImages($client, sys_get_temp_dir() . '/wallabag_test', 'http://wallabag.io/', $logger);
222
223 $res = $download->processSingleImage(
224 123,
225 null,
226 'https://framablog.org/2018/06/30/engagement-atypique/'
227 );
228 $this->assertFalse($res);
229 }
207} 230}
diff --git a/tests/Wallabag/ImportBundle/Controller/FirefoxControllerTest.php b/tests/Wallabag/ImportBundle/Controller/FirefoxControllerTest.php
index dc9d9a8f..fc02c813 100644
--- a/tests/Wallabag/ImportBundle/Controller/FirefoxControllerTest.php
+++ b/tests/Wallabag/ImportBundle/Controller/FirefoxControllerTest.php
@@ -128,14 +128,14 @@ class FirefoxControllerTest extends WallabagCoreTestCase
128 ->get('doctrine.orm.entity_manager') 128 ->get('doctrine.orm.entity_manager')
129 ->getRepository('WallabagCoreBundle:Entry') 129 ->getRepository('WallabagCoreBundle:Entry')
130 ->findByUrlAndUserId( 130 ->findByUrlAndUserId(
131 'https://stackoverflow.com/questions/15017163/parser-for-exported-bookmarks-html-file-of-google-chrome-and-mozilla-in-java', 131 'https://www.lemonde.fr/disparitions/article/2018/07/05/le-journaliste-et-cineaste-claude-lanzmann-est-mort_5326313_3382.html',
132 $this->getLoggedInUserId() 132 $this->getLoggedInUserId()
133 ); 133 );
134 134
135 $this->assertInstanceOf('Wallabag\CoreBundle\Entity\Entry', $content); 135 $this->assertInstanceOf('Wallabag\CoreBundle\Entity\Entry', $content);
136 $this->assertNotEmpty($content->getMimetype(), 'Mimetype for https://stackoverflow.com is ok'); 136 $this->assertNotEmpty($content->getMimetype(), 'Mimetype for https://www.lemonde.fr is ok');
137 $this->assertNotEmpty($content->getPreviewPicture(), 'Preview picture for https://stackoverflow.com is ok'); 137 $this->assertNotEmpty($content->getPreviewPicture(), 'Preview picture for https://www.lemonde.fr is ok');
138 $this->assertEmpty($content->getLanguage(), 'Language for https://stackoverflow.com is ok'); 138 $this->assertNotEmpty($content->getLanguage(), 'Language for https://www.lemonde.fr is ok');
139 139
140 $createdAt = $content->getCreatedAt(); 140 $createdAt = $content->getCreatedAt();
141 $this->assertSame('2013', $createdAt->format('Y')); 141 $this->assertSame('2013', $createdAt->format('Y'));
diff --git a/tests/Wallabag/ImportBundle/fixtures/firefox-bookmarks.json b/tests/Wallabag/ImportBundle/fixtures/firefox-bookmarks.json
index 406b5697..3d90b489 100644
--- a/tests/Wallabag/ImportBundle/fixtures/firefox-bookmarks.json
+++ b/tests/Wallabag/ImportBundle/fixtures/firefox-bookmarks.json
@@ -39,13 +39,13 @@
39 }, 39 },
40 { 40 {
41 "guid": "E385l9vZ_LVn", 41 "guid": "E385l9vZ_LVn",
42 "title": "Parser for Exported Bookmarks HTML file of Google Chrome and Mozilla in Java", 42 "title": "Le journaliste et cinéaste Claude Lanzmann est mort",
43 "index": 1, 43 "index": 1,
44 "dateAdded": 1388166091544000, 44 "dateAdded": 1388166091544000,
45 "lastModified": 1388166091545000, 45 "lastModified": 1388166091545000,
46 "id": 5, 46 "id": 5,
47 "type": "text/x-moz-place", 47 "type": "text/x-moz-place",
48 "uri": "http://stackoverflow.com/questions/15017163/parser-for-exported-bookmarks-html-file-of-google-chrome-and-mozilla-in-java" 48 "uri": "https://www.lemonde.fr/disparitions/article/2018/07/05/le-journaliste-et-cineaste-claude-lanzmann-est-mort_5326313_3382.html"
49 } 49 }
50 ] 50 ]
51 }, 51 },
diff --git a/web/wallassets/public.css b/web/wallassets/public.css
index 1a5a23f4..4d578c6d 100644
--- a/web/wallassets/public.css
+++ b/web/wallassets/public.css
@@ -1,2 +1,2 @@
1a,abbr,acronym,address,applet,article,aside,audio,b,big,blockquote,body,canvas,caption,cite,code,dd,del,details,dfn,div,dl,dt,em,embed,fieldset,figcaption,figure,footer,form,h1,h2,h3,h4,h5,h6,header,hgroup,html,i,iframe,img,ins,kbd,label,legend,li,mark,menu,nav,object,ol,output,p,pre,q,s,samp,section,small,span,strike,strong,sub,summary,sup,table,tbody,td,tfoot,th,thead,time,tr,tt,u,ul,video{margin:0;padding:0;border:0;font-size:100%;vertical-align:baseline}article,aside,details,figcaption,figure,footer,header,hgroup,menu,nav,section{display:block}body{line-height:1}blockquote,q{quotes:none}blockquote:after,blockquote:before,q:after,q:before{content:"";content:none}table{border-spacing:0}body{background-color:#fff;color:#444;font-family:Georgia;line-height:1.7;-ms-content-zooming:none;margin-bottom:64px}h1,h2,h3,h4,h5,h6{font-weight:600;margin:.2em 0}article h1,article h2,article h3,article h4,article h5,article h6{text-align:left;line-height:1.3}h1{font-size:1.4em}h2{font-size:1.3em}h3,h4{font-size:1.2em}h5,h6{font-size:1.1em}p{margin-bottom:.75em}b,strong{font-weight:700}em,i{font-style:italic}a{color:#444;text-decoration:underline}a:active,a:hover{outline:0}dl,ol,p,ul{margin:0 0 1.75em}ol,ul{padding-left:1.25em}li{padding-bottom:.2em;line-height:1.6}li li:last-child,li p:last-child{margin-bottom:-.2em}ol li:last-child,ul li:last-child{padding-bottom:0}mark{padding:0 .2em}mark a{text-decoration:none}blockquote{font-style:italic;border-left:.25em solid #000;margin-left:-20px;padding-left:17px;margin-bottom:.5em;margin-top:.5em}blockquote cite{text-transform:uppercase;font-size:.8em;font-style:normal}blockquote cite:before{content:"\2014";margin-right:.5em}img{display:block;height:auto;margin-bottom:.5em;max-width:100%}figure{margin:0}figure figcaption{display:block;margin-top:.3em;font-style:italic;font-size:.8em}button{display:none!important}hr{display:block;height:1px;border:solid #666;border-width:1px 0 0;margin:1.6em 0;padding:0}small{font-size:.7em}dl{margin:1.6em 0}dl dt{float:left;width:11.25em;overflow:hidden;clear:left;text-align:right;-ms-text-overflow:ellipsis;-o-text-overflow:ellipsis;text-overflow:ellipsis;white-space:nowrap;font-weight:700}dl dd,dl dt{margin-bottom:1em}dl dd{margin-left:12.5em}pre{-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box;margin:4em 0;border:.0625em solid #efefef;width:100%;padding:1em;font-family:Consolas,monospace;white-space:pre;overflow:auto}pre code{line-height:1.6em;white-space:pre-wrap;background:transparent;border:none;padding:0;vertical-align:inherit}code,pre code{font-size:.8em}code{padding:.125em .375em;margin:0 .2em;font-family:Consolas,monospace;white-space:pre;border:1px solid #d3d3d3;overflow:auto}audio,video{max-width:43.75em}::selection,mark{background:#666;color:#fff}table{border-collapse:collapse;margin-bottom:2em;width:100%}td,th{padding:.25em;text-align:left}thead tr{text-transform:uppercase;font-size:.85em;letter-spacing:1px;font-family:Segoe UI,sans-serif;font-weight:600}tbody tr:nth-child(odd){background:rgba(0,0,0,.1)}tbody{border:solid #999;border-width:1px 0}figure{text-align:center}figure>*{margin:0 auto}header{text-align:center}.shared-by{margin-bottom:1em}@media (max-width:719px){article,header>:not(.preview){padding:0 1em}}@media (min-width:720px){blockquote{margin-left:-1.4375em;padding-left:1.25em}header{margin-top:32px}.block{margin-left:auto;margin-right:auto;max-width:43.75em;padding:0 1.25em}} 1a,abbr,acronym,address,applet,article,aside,audio,b,big,blockquote,body,canvas,caption,cite,code,dd,del,details,dfn,div,dl,dt,em,embed,fieldset,figcaption,figure,footer,form,h1,h2,h3,h4,h5,h6,header,hgroup,html,i,iframe,img,ins,kbd,label,legend,li,mark,menu,nav,object,ol,output,p,pre,q,s,samp,section,small,span,strike,strong,sub,summary,sup,table,tbody,td,tfoot,th,thead,time,tr,tt,u,ul,video{margin:0;padding:0;border:0;font-size:100%;vertical-align:baseline}article,aside,details,figcaption,figure,footer,header,hgroup,menu,nav,section{display:block}body{line-height:1}blockquote,q{quotes:none}blockquote:after,blockquote:before,q:after,q:before{content:"";content:none}table{border-spacing:0}body{background-color:#fff;color:#444;font-family:Georgia;line-height:1.7;-ms-content-zooming:none;margin-bottom:64px}h1,h2,h3,h4,h5,h6{font-weight:600;margin:.2em 0}article h1,article h2,article h3,article h4,article h5,article h6{text-align:left;line-height:1.3}h1{font-size:1.4em}h2{font-size:1.3em}h3,h4{font-size:1.2em}h5,h6{font-size:1.1em}p{margin-bottom:.75em}b,strong{font-weight:700}em,i{font-style:italic}a{color:#444;text-decoration:underline}a:active,a:hover{outline:0}dl,ol,p,ul{margin:0 0 1.75em}ol,ul{padding-left:1.25em}li{padding-bottom:.2em;line-height:1.6}li li:last-child,li p:last-child{margin-bottom:-.2em}ol li:last-child,ul li:last-child{padding-bottom:0}iframe,video{max-width:100%;height:auto}mark{padding:0 .2em}mark a{text-decoration:none}blockquote{font-style:italic;border-left:.25em solid #000;margin-left:-20px;padding-left:17px;margin-bottom:.5em;margin-top:.5em}blockquote cite{text-transform:uppercase;font-size:.8em;font-style:normal}blockquote cite:before{content:"\2014";margin-right:.5em}img{display:block;height:auto;margin-bottom:.5em;max-width:100%}figure{margin:0}figure figcaption{display:block;margin-top:.3em;font-style:italic;font-size:.8em}button{display:none!important}hr{display:block;height:1px;border:solid #666;border-width:1px 0 0;margin:1.6em 0;padding:0}small{font-size:.7em}dl{margin:1.6em 0}dl dt{float:left;width:11.25em;overflow:hidden;clear:left;text-align:right;-ms-text-overflow:ellipsis;-o-text-overflow:ellipsis;text-overflow:ellipsis;white-space:nowrap;font-weight:700}dl dd,dl dt{margin-bottom:1em}dl dd{margin-left:12.5em}pre{-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box;margin:4em 0;border:.0625em solid #efefef;width:100%;padding:1em;font-family:Consolas,monospace;white-space:pre;overflow:auto}pre code{line-height:1.6em;white-space:pre-wrap;background:transparent;border:none;padding:0;vertical-align:inherit}code,pre code{font-size:.8em}code{padding:.125em .375em;margin:0 .2em;font-family:Consolas,monospace;white-space:pre;border:1px solid #d3d3d3;overflow:auto}audio,video{max-width:43.75em}::selection,mark{background:#666;color:#fff}table{border-collapse:collapse;margin-bottom:2em;width:100%}td,th{padding:.25em;text-align:left}thead tr{text-transform:uppercase;font-size:.85em;letter-spacing:1px;font-family:Segoe UI,sans-serif;font-weight:600}tbody tr:nth-child(odd){background:rgba(0,0,0,.1)}tbody{border:solid #999;border-width:1px 0}figure{text-align:center}figure>*{margin:0 auto}header{text-align:center}.shared-by{margin-bottom:1em}@media (max-width:719px){article,header>:not(.preview){padding:0 1em}}@media (min-width:720px){blockquote{margin-left:-1.4375em;padding-left:1.25em}header{margin-top:32px}.block{margin-left:auto;margin-right:auto;max-width:43.75em;padding:0 1.25em}}
2/*# sourceMappingURL=public.css.map*/ \ No newline at end of file 2/*# sourceMappingURL=public.css.map*/ \ No newline at end of file