aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorJérémy Benoist <j0k3r@users.noreply.github.com>2017-10-11 09:55:03 +0200
committerGitHub <noreply@github.com>2017-10-11 09:55:03 +0200
commitd8dc7372ab3d8ac4c5d5546e5c5e00bf4bf2d862 (patch)
tree3f7ea5ce149b98d01a32f45c2d5be43fbf8ea21c
parent21bdbb2d5e8ef1a93a51bc6d55e041f95820b4ba (diff)
parentf645d371ce55e9c2a45712df34244318742b0d74 (diff)
downloadwallabag-d8dc7372ab3d8ac4c5d5546e5c5e00bf4bf2d862.tar.gz
wallabag-d8dc7372ab3d8ac4c5d5546e5c5e00bf4bf2d862.tar.zst
wallabag-d8dc7372ab3d8ac4c5d5546e5c5e00bf4bf2d862.zip
Merge pull request #3376 from wallabag/symfony-3.3
Symfony 3.3
-rw-r--r--app/DoctrineMigrations/Version20161001072726.php2
-rw-r--r--app/DoctrineMigrations/Version20161022134138.php4
-rw-r--r--app/DoctrineMigrations/Version20161024212538.php2
-rw-r--r--app/DoctrineMigrations/Version20170510082609.php4
-rw-r--r--app/DoctrineMigrations/Version20170719231144.php2
-rw-r--r--app/config/config.yml7
-rw-r--r--composer.json14
-rw-r--r--phpunit.xml.dist2
-rw-r--r--src/Wallabag/AnnotationBundle/Controller/WallabagAnnotationController.php8
-rw-r--r--src/Wallabag/ApiBundle/Controller/EntryRestController.php2
-rw-r--r--src/Wallabag/ApiBundle/Controller/TagRestController.php10
-rw-r--r--src/Wallabag/ApiBundle/Controller/UserRestController.php6
-rw-r--r--src/Wallabag/ApiBundle/Controller/WallabagRestController.php2
-rw-r--r--src/Wallabag/CoreBundle/Command/ListUserCommand.php2
-rw-r--r--src/Wallabag/CoreBundle/Command/ShowUserCommand.php2
-rw-r--r--src/Wallabag/CoreBundle/Controller/ConfigController.php2
-rw-r--r--src/Wallabag/CoreBundle/Controller/EntryController.php2
-rw-r--r--src/Wallabag/CoreBundle/Controller/ExportController.php2
-rw-r--r--src/Wallabag/CoreBundle/Controller/TagController.php2
-rw-r--r--src/Wallabag/CoreBundle/Event/Subscriber/TablePrefixSubscriber.php2
-rw-r--r--src/Wallabag/CoreBundle/Form/DataTransformer/StringToListTransformer.php2
-rw-r--r--src/Wallabag/CoreBundle/GuzzleSiteAuthenticator/GrabySiteConfigBuilder.php4
-rw-r--r--src/Wallabag/CoreBundle/Helper/ContentProxy.php2
-rw-r--r--src/Wallabag/CoreBundle/Operator/Doctrine/Matches.php2
-rw-r--r--src/Wallabag/CoreBundle/Operator/Doctrine/NotMatches.php2
-rw-r--r--src/Wallabag/CoreBundle/Operator/PHP/Matches.php2
-rw-r--r--src/Wallabag/CoreBundle/Operator/PHP/NotMatches.php2
-rw-r--r--src/Wallabag/ImportBundle/Import/AbstractImport.php2
-rw-r--r--src/Wallabag/ImportBundle/Import/BrowserImport.php2
-rw-r--r--src/Wallabag/ImportBundle/Import/ChromeImport.php2
-rw-r--r--src/Wallabag/ImportBundle/Import/FirefoxImport.php2
-rw-r--r--src/Wallabag/ImportBundle/Import/InstapaperImport.php6
-rw-r--r--src/Wallabag/ImportBundle/Import/PocketImport.php12
-rw-r--r--src/Wallabag/ImportBundle/Import/WallabagV1Import.php2
-rw-r--r--tests/Wallabag/CoreBundle/Controller/EntryControllerTest.php6
-rw-r--r--tests/Wallabag/ImportBundle/Controller/ChromeControllerTest.php3
-rw-r--r--tests/Wallabag/ImportBundle/Controller/FirefoxControllerTest.php2
-rw-r--r--tests/Wallabag/ImportBundle/Controller/PinboardControllerTest.php3
-rw-r--r--tests/Wallabag/ImportBundle/Controller/ReadabilityControllerTest.php7
-rw-r--r--tests/Wallabag/ImportBundle/Controller/WallabagV1ControllerTest.php3
-rw-r--r--tests/Wallabag/ImportBundle/Controller/WallabagV2ControllerTest.php3
-rw-r--r--tests/Wallabag/ImportBundle/fixtures/readability-read.json2
-rw-r--r--tests/Wallabag/ImportBundle/fixtures/readability.json2
-rw-r--r--tests/Wallabag/ImportBundle/fixtures/wallabag-v2.json4
44 files changed, 90 insertions, 68 deletions
diff --git a/app/DoctrineMigrations/Version20161001072726.php b/app/DoctrineMigrations/Version20161001072726.php
index 4babe172..f9d088a3 100644
--- a/app/DoctrineMigrations/Version20161001072726.php
+++ b/app/DoctrineMigrations/Version20161001072726.php
@@ -28,7 +28,7 @@ class Version20161001072726 extends AbstractMigration implements ContainerAwareI
28 */ 28 */
29 public function up(Schema $schema) 29 public function up(Schema $schema)
30 { 30 {
31 $this->skipIf($this->connection->getDatabasePlatform()->getName() === 'sqlite', 'Migration can only be executed safely on \'mysql\' or \'postgresql\'.'); 31 $this->skipIf('sqlite' === $this->connection->getDatabasePlatform()->getName(), 'Migration can only be executed safely on \'mysql\' or \'postgresql\'.');
32 32
33 // remove all FK from entry_tag 33 // remove all FK from entry_tag
34 switch ($this->connection->getDatabasePlatform()->getName()) { 34 switch ($this->connection->getDatabasePlatform()->getName()) {
diff --git a/app/DoctrineMigrations/Version20161022134138.php b/app/DoctrineMigrations/Version20161022134138.php
index 89ba9973..c84f8fbb 100644
--- a/app/DoctrineMigrations/Version20161022134138.php
+++ b/app/DoctrineMigrations/Version20161022134138.php
@@ -27,7 +27,7 @@ class Version20161022134138 extends AbstractMigration implements ContainerAwareI
27 */ 27 */
28 public function up(Schema $schema) 28 public function up(Schema $schema)
29 { 29 {
30 $this->skipIf($this->connection->getDatabasePlatform()->getName() !== 'mysql', 'This migration only apply to MySQL'); 30 $this->skipIf('mysql' !== $this->connection->getDatabasePlatform()->getName(), 'This migration only apply to MySQL');
31 31
32 $this->addSql('ALTER DATABASE ' . $this->connection->getParams()['dbname'] . ' CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci;'); 32 $this->addSql('ALTER DATABASE ' . $this->connection->getParams()['dbname'] . ' CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci;');
33 33
@@ -58,7 +58,7 @@ class Version20161022134138 extends AbstractMigration implements ContainerAwareI
58 */ 58 */
59 public function down(Schema $schema) 59 public function down(Schema $schema)
60 { 60 {
61 $this->skipIf($this->connection->getDatabasePlatform()->getName() !== 'mysql', 'This migration only apply to MySQL'); 61 $this->skipIf('mysql' !== $this->connection->getDatabasePlatform()->getName(), 'This migration only apply to MySQL');
62 62
63 $this->addSql('ALTER DATABASE ' . $this->connection->getParams()['dbname'] . ' CHARACTER SET = utf8 COLLATE = utf8_unicode_ci;'); 63 $this->addSql('ALTER DATABASE ' . $this->connection->getParams()['dbname'] . ' CHARACTER SET = utf8 COLLATE = utf8_unicode_ci;');
64 64
diff --git a/app/DoctrineMigrations/Version20161024212538.php b/app/DoctrineMigrations/Version20161024212538.php
index 35853d03..698819be 100644
--- a/app/DoctrineMigrations/Version20161024212538.php
+++ b/app/DoctrineMigrations/Version20161024212538.php
@@ -55,7 +55,7 @@ class Version20161024212538 extends AbstractMigration implements ContainerAwareI
55 55
56 $clientsTable->dropColumn('user_id', 'integer'); 56 $clientsTable->dropColumn('user_id', 'integer');
57 57
58 if ($this->connection->getDatabasePlatform()->getName() !== 'sqlite') { 58 if ('sqlite' !== $this->connection->getDatabasePlatform()->getName()) {
59 $clientsTable->removeForeignKey($this->constraintName); 59 $clientsTable->removeForeignKey($this->constraintName);
60 } 60 }
61 } 61 }
diff --git a/app/DoctrineMigrations/Version20170510082609.php b/app/DoctrineMigrations/Version20170510082609.php
index 329613b1..52c70168 100644
--- a/app/DoctrineMigrations/Version20170510082609.php
+++ b/app/DoctrineMigrations/Version20170510082609.php
@@ -34,7 +34,7 @@ class Version20170510082609 extends AbstractMigration implements ContainerAwareI
34 */ 34 */
35 public function up(Schema $schema) 35 public function up(Schema $schema)
36 { 36 {
37 $this->skipIf($this->connection->getDatabasePlatform()->getName() !== 'mysql', 'This migration only apply to MySQL'); 37 $this->skipIf('mysql' !== $this->connection->getDatabasePlatform()->getName(), 'This migration only apply to MySQL');
38 38
39 foreach ($this->fields as $field) { 39 foreach ($this->fields as $field) {
40 $this->addSql('ALTER TABLE ' . $this->getTable('user') . ' CHANGE ' . $field . ' ' . $field . ' VARCHAR(180) NOT NULL;'); 40 $this->addSql('ALTER TABLE ' . $this->getTable('user') . ' CHANGE ' . $field . ' ' . $field . ' VARCHAR(180) NOT NULL;');
@@ -46,7 +46,7 @@ class Version20170510082609 extends AbstractMigration implements ContainerAwareI
46 */ 46 */
47 public function down(Schema $schema) 47 public function down(Schema $schema)
48 { 48 {
49 $this->skipIf($this->connection->getDatabasePlatform()->getName() !== 'mysql', 'This migration only apply to MySQL'); 49 $this->skipIf('mysql' !== $this->connection->getDatabasePlatform()->getName(), 'This migration only apply to MySQL');
50 50
51 foreach ($this->fields as $field) { 51 foreach ($this->fields as $field) {
52 $this->addSql('ALTER TABLE ' . $this->getTable('user') . ' CHANGE ' . $field . ' ' . $field . ' VARCHAR(255) NOT NULL;'); 52 $this->addSql('ALTER TABLE ' . $this->getTable('user') . ' CHANGE ' . $field . ' ' . $field . ' VARCHAR(255) NOT NULL;');
diff --git a/app/DoctrineMigrations/Version20170719231144.php b/app/DoctrineMigrations/Version20170719231144.php
index 0f5fa75a..0c749150 100644
--- a/app/DoctrineMigrations/Version20170719231144.php
+++ b/app/DoctrineMigrations/Version20170719231144.php
@@ -27,7 +27,7 @@ class Version20170719231144 extends AbstractMigration implements ContainerAwareI
27 */ 27 */
28 public function up(Schema $schema) 28 public function up(Schema $schema)
29 { 29 {
30 $this->skipIf($this->connection->getDatabasePlatform()->getName() === 'sqlite', 'Migration can only be executed safely on \'mysql\' or \'postgresql\'.'); 30 $this->skipIf('sqlite' === $this->connection->getDatabasePlatform()->getName(), 'Migration can only be executed safely on \'mysql\' or \'postgresql\'.');
31 31
32 // Find tags which need to be merged 32 // Find tags which need to be merged
33 $dupTags = $this->connection->query(' 33 $dupTags = $this->connection->query('
diff --git a/app/config/config.yml b/app/config/config.yml
index d37ed227..b76fb696 100644
--- a/app/config/config.yml
+++ b/app/config/config.yml
@@ -350,3 +350,10 @@ fos_js_routing:
350 - howto 350 - howto
351 - fos_user_security_logout 351 - fos_user_security_logout
352 - new 352 - new
353
354jms_serializer:
355 handlers:
356 # to be removed if we switch to (default) ISO8601 datetime instead of ATOM
357 # see: https://github.com/schmittjoh/JMSSerializerBundle/pull/494
358 datetime:
359 default_format: "Y-m-d\\TH:i:sO" # ATOM
diff --git a/composer.json b/composer.json
index fa0a4a39..d1f970c7 100644
--- a/composer.json
+++ b/composer.json
@@ -43,7 +43,7 @@
43 "ext-iconv": "*", 43 "ext-iconv": "*",
44 "ext-tokenizer": "*", 44 "ext-tokenizer": "*",
45 "ext-pdo": "*", 45 "ext-pdo": "*",
46 "symfony/symfony": "3.2.*", 46 "symfony/symfony": "3.3.*",
47 "doctrine/orm": "^2.5", 47 "doctrine/orm": "^2.5",
48 "doctrine/doctrine-bundle": "^1.6", 48 "doctrine/doctrine-bundle": "^1.6",
49 "doctrine/doctrine-cache-bundle": "^1.2", 49 "doctrine/doctrine-cache-bundle": "^1.2",
@@ -51,15 +51,15 @@
51 "symfony/swiftmailer-bundle": "^2.3", 51 "symfony/swiftmailer-bundle": "^2.3",
52 "symfony/monolog-bundle": "^3.0", 52 "symfony/monolog-bundle": "^3.0",
53 "sensio/distribution-bundle": "^5.0", 53 "sensio/distribution-bundle": "^5.0",
54 "sensio/framework-extra-bundle": "^3.0.2", 54 "sensio/framework-extra-bundle": "^3.0",
55 "incenteev/composer-parameter-handler": "^2.0", 55 "incenteev/composer-parameter-handler": "^2.0",
56 "nelmio/cors-bundle": "~1.4.0", 56 "nelmio/cors-bundle": "~1.4",
57 "friendsofsymfony/rest-bundle": "~2.1", 57 "friendsofsymfony/rest-bundle": "~2.1",
58 "jms/serializer-bundle": "~1.1", 58 "jms/serializer-bundle": "~2.2",
59 "nelmio/api-doc-bundle": "~2.7", 59 "nelmio/api-doc-bundle": "~2.7",
60 "mgargano/simplehtmldom": "~1.5", 60 "mgargano/simplehtmldom": "~1.5",
61 "wallabag/tcpdf": "^6.2", 61 "wallabag/tcpdf": "^6.2",
62 "simplepie/simplepie": "~1.3.1", 62 "simplepie/simplepie": "~1.5",
63 "willdurand/hateoas-bundle": "~1.0", 63 "willdurand/hateoas-bundle": "~1.0",
64 "liip/theme-bundle": "~1.1", 64 "liip/theme-bundle": "~1.1",
65 "lexik/form-filter-bundle": "~5.0", 65 "lexik/form-filter-bundle": "~5.0",
@@ -89,12 +89,12 @@
89 }, 89 },
90 "require-dev": { 90 "require-dev": {
91 "doctrine/doctrine-fixtures-bundle": "~2.2", 91 "doctrine/doctrine-fixtures-bundle": "~2.2",
92 "doctrine/data-fixtures": "~1.1.1", 92 "doctrine/data-fixtures": "~1.1",
93 "sensio/generator-bundle": "^3.0", 93 "sensio/generator-bundle": "^3.0",
94 "symfony/phpunit-bridge": "^3.3", 94 "symfony/phpunit-bridge": "^3.3",
95 "friendsofphp/php-cs-fixer": "~2.0", 95 "friendsofphp/php-cs-fixer": "~2.0",
96 "m6web/redis-mock": "^2.0", 96 "m6web/redis-mock": "^2.0",
97 "dama/doctrine-test-bundle": "^1.0" 97 "dama/doctrine-test-bundle": "^3.0"
98 }, 98 },
99 "scripts": { 99 "scripts": {
100 "post-cmd": [ 100 "post-cmd": [
diff --git a/phpunit.xml.dist b/phpunit.xml.dist
index 8f5285e6..591b0909 100644
--- a/phpunit.xml.dist
+++ b/phpunit.xml.dist
@@ -32,6 +32,6 @@
32 </filter> 32 </filter>
33 33
34 <listeners> 34 <listeners>
35 <listener class="\DAMA\DoctrineTestBundle\PHPUnit\PHPUnitStaticDbConnectionListener" /> 35 <listener class="\DAMA\DoctrineTestBundle\PHPUnit\LegacyPHPUnitListener" />
36 </listeners> 36 </listeners>
37</phpunit> 37</phpunit>
diff --git a/src/Wallabag/AnnotationBundle/Controller/WallabagAnnotationController.php b/src/Wallabag/AnnotationBundle/Controller/WallabagAnnotationController.php
index 8d7b6ee9..f3090e65 100644
--- a/src/Wallabag/AnnotationBundle/Controller/WallabagAnnotationController.php
+++ b/src/Wallabag/AnnotationBundle/Controller/WallabagAnnotationController.php
@@ -31,7 +31,7 @@ class WallabagAnnotationController extends FOSRestController
31 $total = count($annotationRows); 31 $total = count($annotationRows);
32 $annotations = ['total' => $total, 'rows' => $annotationRows]; 32 $annotations = ['total' => $total, 'rows' => $annotationRows];
33 33
34 $json = $this->get('serializer')->serialize($annotations, 'json'); 34 $json = $this->get('jms_serializer')->serialize($annotations, 'json');
35 35
36 return (new JsonResponse())->setJson($json); 36 return (new JsonResponse())->setJson($json);
37 } 37 }
@@ -64,7 +64,7 @@ class WallabagAnnotationController extends FOSRestController
64 $em->persist($annotation); 64 $em->persist($annotation);
65 $em->flush(); 65 $em->flush();
66 66
67 $json = $this->get('serializer')->serialize($annotation, 'json'); 67 $json = $this->get('jms_serializer')->serialize($annotation, 'json');
68 68
69 return JsonResponse::fromJsonString($json); 69 return JsonResponse::fromJsonString($json);
70 } 70 }
@@ -99,7 +99,7 @@ class WallabagAnnotationController extends FOSRestController
99 $em->persist($annotation); 99 $em->persist($annotation);
100 $em->flush(); 100 $em->flush();
101 101
102 $json = $this->get('serializer')->serialize($annotation, 'json'); 102 $json = $this->get('jms_serializer')->serialize($annotation, 'json');
103 103
104 return JsonResponse::fromJsonString($json); 104 return JsonResponse::fromJsonString($json);
105 } 105 }
@@ -124,7 +124,7 @@ class WallabagAnnotationController extends FOSRestController
124 $em->remove($annotation); 124 $em->remove($annotation);
125 $em->flush(); 125 $em->flush();
126 126
127 $json = $this->get('serializer')->serialize($annotation, 'json'); 127 $json = $this->get('jms_serializer')->serialize($annotation, 'json');
128 128
129 return (new JsonResponse())->setJson($json); 129 return (new JsonResponse())->setJson($json);
130 } 130 }
diff --git a/src/Wallabag/ApiBundle/Controller/EntryRestController.php b/src/Wallabag/ApiBundle/Controller/EntryRestController.php
index 6db97731..86e72335 100644
--- a/src/Wallabag/ApiBundle/Controller/EntryRestController.php
+++ b/src/Wallabag/ApiBundle/Controller/EntryRestController.php
@@ -752,7 +752,7 @@ class EntryRestController extends WallabagRestController
752 $context = new SerializationContext(); 752 $context = new SerializationContext();
753 $context->setSerializeNull(true); 753 $context->setSerializeNull(true);
754 754
755 $json = $this->get('serializer')->serialize($data, 'json', $context); 755 $json = $this->get('jms_serializer')->serialize($data, 'json', $context);
756 756
757 return (new JsonResponse())->setJson($json); 757 return (new JsonResponse())->setJson($json);
758 } 758 }
diff --git a/src/Wallabag/ApiBundle/Controller/TagRestController.php b/src/Wallabag/ApiBundle/Controller/TagRestController.php
index efa4e8cf..9d333fe4 100644
--- a/src/Wallabag/ApiBundle/Controller/TagRestController.php
+++ b/src/Wallabag/ApiBundle/Controller/TagRestController.php
@@ -25,7 +25,7 @@ class TagRestController extends WallabagRestController
25 ->getRepository('WallabagCoreBundle:Tag') 25 ->getRepository('WallabagCoreBundle:Tag')
26 ->findAllTags($this->getUser()->getId()); 26 ->findAllTags($this->getUser()->getId());
27 27
28 $json = $this->get('serializer')->serialize($tags, 'json'); 28 $json = $this->get('jms_serializer')->serialize($tags, 'json');
29 29
30 return (new JsonResponse())->setJson($json); 30 return (new JsonResponse())->setJson($json);
31 } 31 }
@@ -58,7 +58,7 @@ class TagRestController extends WallabagRestController
58 58
59 $this->cleanOrphanTag($tag); 59 $this->cleanOrphanTag($tag);
60 60
61 $json = $this->get('serializer')->serialize($tag, 'json'); 61 $json = $this->get('jms_serializer')->serialize($tag, 'json');
62 62
63 return (new JsonResponse())->setJson($json); 63 return (new JsonResponse())->setJson($json);
64 } 64 }
@@ -100,7 +100,7 @@ class TagRestController extends WallabagRestController
100 100
101 $this->cleanOrphanTag($tags); 101 $this->cleanOrphanTag($tags);
102 102
103 $json = $this->get('serializer')->serialize($tags, 'json'); 103 $json = $this->get('jms_serializer')->serialize($tags, 'json');
104 104
105 return (new JsonResponse())->setJson($json); 105 return (new JsonResponse())->setJson($json);
106 } 106 }
@@ -126,7 +126,7 @@ class TagRestController extends WallabagRestController
126 126
127 $this->cleanOrphanTag($tag); 127 $this->cleanOrphanTag($tag);
128 128
129 $json = $this->get('serializer')->serialize($tag, 'json'); 129 $json = $this->get('jms_serializer')->serialize($tag, 'json');
130 130
131 return (new JsonResponse())->setJson($json); 131 return (new JsonResponse())->setJson($json);
132 } 132 }
@@ -145,7 +145,7 @@ class TagRestController extends WallabagRestController
145 $em = $this->getDoctrine()->getManager(); 145 $em = $this->getDoctrine()->getManager();
146 146
147 foreach ($tags as $tag) { 147 foreach ($tags as $tag) {
148 if (count($tag->getEntries()) === 0) { 148 if (0 === count($tag->getEntries())) {
149 $em->remove($tag); 149 $em->remove($tag);
150 } 150 }
151 } 151 }
diff --git a/src/Wallabag/ApiBundle/Controller/UserRestController.php b/src/Wallabag/ApiBundle/Controller/UserRestController.php
index 6f47cff0..a1378fc5 100644
--- a/src/Wallabag/ApiBundle/Controller/UserRestController.php
+++ b/src/Wallabag/ApiBundle/Controller/UserRestController.php
@@ -46,7 +46,7 @@ class UserRestController extends WallabagRestController
46 public function putUserAction(Request $request) 46 public function putUserAction(Request $request)
47 { 47 {
48 if (!$this->getParameter('fosuser_registration') || !$this->get('craue_config')->get('api_user_registration')) { 48 if (!$this->getParameter('fosuser_registration') || !$this->get('craue_config')->get('api_user_registration')) {
49 $json = $this->get('serializer')->serialize(['error' => "Server doesn't allow registrations"], 'json'); 49 $json = $this->get('jms_serializer')->serialize(['error' => "Server doesn't allow registrations"], 'json');
50 50
51 return (new JsonResponse()) 51 return (new JsonResponse())
52 ->setJson($json) 52 ->setJson($json)
@@ -92,7 +92,7 @@ class UserRestController extends WallabagRestController
92 $errors['password'] = $this->translateErrors($data['plainPassword']['children']['first']['errors']); 92 $errors['password'] = $this->translateErrors($data['plainPassword']['children']['first']['errors']);
93 } 93 }
94 94
95 $json = $this->get('serializer')->serialize(['error' => $errors], 'json'); 95 $json = $this->get('jms_serializer')->serialize(['error' => $errors], 'json');
96 96
97 return (new JsonResponse()) 97 return (new JsonResponse())
98 ->setJson($json) 98 ->setJson($json)
@@ -127,7 +127,7 @@ class UserRestController extends WallabagRestController
127 */ 127 */
128 private function sendUser(User $user, $group = 'user_api', $status = JsonResponse::HTTP_OK) 128 private function sendUser(User $user, $group = 'user_api', $status = JsonResponse::HTTP_OK)
129 { 129 {
130 $json = $this->get('serializer')->serialize( 130 $json = $this->get('jms_serializer')->serialize(
131 $user, 131 $user,
132 'json', 132 'json',
133 SerializationContext::create()->setGroups([$group]) 133 SerializationContext::create()->setGroups([$group])
diff --git a/src/Wallabag/ApiBundle/Controller/WallabagRestController.php b/src/Wallabag/ApiBundle/Controller/WallabagRestController.php
index 71da2a64..7d8cfbba 100644
--- a/src/Wallabag/ApiBundle/Controller/WallabagRestController.php
+++ b/src/Wallabag/ApiBundle/Controller/WallabagRestController.php
@@ -19,7 +19,7 @@ class WallabagRestController extends FOSRestController
19 public function getVersionAction() 19 public function getVersionAction()
20 { 20 {
21 $version = $this->container->getParameter('wallabag_core.version'); 21 $version = $this->container->getParameter('wallabag_core.version');
22 $json = $this->get('serializer')->serialize($version, 'json'); 22 $json = $this->get('jms_serializer')->serialize($version, 'json');
23 23
24 return (new JsonResponse())->setJson($json); 24 return (new JsonResponse())->setJson($json);
25 } 25 }
diff --git a/src/Wallabag/CoreBundle/Command/ListUserCommand.php b/src/Wallabag/CoreBundle/Command/ListUserCommand.php
index 20660d18..68e515da 100644
--- a/src/Wallabag/CoreBundle/Command/ListUserCommand.php
+++ b/src/Wallabag/CoreBundle/Command/ListUserCommand.php
@@ -52,7 +52,7 @@ class ListUserCommand extends ContainerAwareCommand
52 '%s/%s%s user(s) displayed.', 52 '%s/%s%s user(s) displayed.',
53 count($users), 53 count($users),
54 $nbUsers, 54 $nbUsers,
55 $input->getArgument('search') === null ? '' : ' (filtered)' 55 null === $input->getArgument('search') ? '' : ' (filtered)'
56 ) 56 )
57 ); 57 );
58 58
diff --git a/src/Wallabag/CoreBundle/Command/ShowUserCommand.php b/src/Wallabag/CoreBundle/Command/ShowUserCommand.php
index 2dca32c4..a0184267 100644
--- a/src/Wallabag/CoreBundle/Command/ShowUserCommand.php
+++ b/src/Wallabag/CoreBundle/Command/ShowUserCommand.php
@@ -56,7 +56,7 @@ class ShowUserCommand extends ContainerAwareCommand
56 sprintf('Email: %s', $user->getEmail()), 56 sprintf('Email: %s', $user->getEmail()),
57 sprintf('Display name: %s', $user->getName()), 57 sprintf('Display name: %s', $user->getName()),
58 sprintf('Creation date: %s', $user->getCreatedAt()->format('Y-m-d H:i:s')), 58 sprintf('Creation date: %s', $user->getCreatedAt()->format('Y-m-d H:i:s')),
59 sprintf('Last login: %s', $user->getLastLogin() !== null ? $user->getLastLogin()->format('Y-m-d H:i:s') : 'never'), 59 sprintf('Last login: %s', null !== $user->getLastLogin() ? $user->getLastLogin()->format('Y-m-d H:i:s') : 'never'),
60 sprintf('2FA activated: %s', $user->isTwoFactorAuthentication() ? 'yes' : 'no'), 60 sprintf('2FA activated: %s', $user->isTwoFactorAuthentication() ? 'yes' : 'no'),
61 ]); 61 ]);
62 } 62 }
diff --git a/src/Wallabag/CoreBundle/Controller/ConfigController.php b/src/Wallabag/CoreBundle/Controller/ConfigController.php
index 7e39992d..a89bb780 100644
--- a/src/Wallabag/CoreBundle/Controller/ConfigController.php
+++ b/src/Wallabag/CoreBundle/Controller/ConfigController.php
@@ -348,7 +348,7 @@ class ConfigController extends Controller
348 $em = $this->getDoctrine()->getManager(); 348 $em = $this->getDoctrine()->getManager();
349 349
350 foreach ($tags as $tag) { 350 foreach ($tags as $tag) {
351 if (count($tag->getEntries()) === 0) { 351 if (0 === count($tag->getEntries())) {
352 $em->remove($tag); 352 $em->remove($tag);
353 } 353 }
354 } 354 }
diff --git a/src/Wallabag/CoreBundle/Controller/EntryController.php b/src/Wallabag/CoreBundle/Controller/EntryController.php
index b0b74c38..840dc254 100644
--- a/src/Wallabag/CoreBundle/Controller/EntryController.php
+++ b/src/Wallabag/CoreBundle/Controller/EntryController.php
@@ -195,7 +195,7 @@ class EntryController extends Controller
195 public function showUnreadAction(Request $request, $page) 195 public function showUnreadAction(Request $request, $page)
196 { 196 {
197 // load the quickstart if no entry in database 197 // load the quickstart if no entry in database
198 if ((int) $page === 1 && $this->get('wallabag_core.entry_repository')->countAllEntriesByUser($this->getUser()->getId()) === 0) { 198 if (1 === (int) $page && 0 === $this->get('wallabag_core.entry_repository')->countAllEntriesByUser($this->getUser()->getId())) {
199 return $this->redirect($this->generateUrl('quickstart')); 199 return $this->redirect($this->generateUrl('quickstart'));
200 } 200 }
201 201
diff --git a/src/Wallabag/CoreBundle/Controller/ExportController.php b/src/Wallabag/CoreBundle/Controller/ExportController.php
index 35a22046..7ca89239 100644
--- a/src/Wallabag/CoreBundle/Controller/ExportController.php
+++ b/src/Wallabag/CoreBundle/Controller/ExportController.php
@@ -59,7 +59,7 @@ class ExportController extends Controller
59 $methodBuilder = 'getBuilderFor' . $method . 'ByUser'; 59 $methodBuilder = 'getBuilderFor' . $method . 'ByUser';
60 $repository = $this->get('wallabag_core.entry_repository'); 60 $repository = $this->get('wallabag_core.entry_repository');
61 61
62 if ($category === 'tag_entries') { 62 if ('tag_entries' === $category) {
63 $tag = $this->get('wallabag_core.tag_repository')->findOneBySlug($request->query->get('tag')); 63 $tag = $this->get('wallabag_core.tag_repository')->findOneBySlug($request->query->get('tag'));
64 64
65 $entries = $repository->findAllByTagId( 65 $entries = $repository->findAllByTagId(
diff --git a/src/Wallabag/CoreBundle/Controller/TagController.php b/src/Wallabag/CoreBundle/Controller/TagController.php
index be2dff98..616c37f2 100644
--- a/src/Wallabag/CoreBundle/Controller/TagController.php
+++ b/src/Wallabag/CoreBundle/Controller/TagController.php
@@ -65,7 +65,7 @@ class TagController extends Controller
65 $em->flush(); 65 $em->flush();
66 66
67 // remove orphan tag in case no entries are associated to it 67 // remove orphan tag in case no entries are associated to it
68 if (count($tag->getEntries()) === 0) { 68 if (0 === count($tag->getEntries())) {
69 $em->remove($tag); 69 $em->remove($tag);
70 $em->flush(); 70 $em->flush();
71 } 71 }
diff --git a/src/Wallabag/CoreBundle/Event/Subscriber/TablePrefixSubscriber.php b/src/Wallabag/CoreBundle/Event/Subscriber/TablePrefixSubscriber.php
index 35902654..fb8f225f 100644
--- a/src/Wallabag/CoreBundle/Event/Subscriber/TablePrefixSubscriber.php
+++ b/src/Wallabag/CoreBundle/Event/Subscriber/TablePrefixSubscriber.php
@@ -42,7 +42,7 @@ class TablePrefixSubscriber implements EventSubscriber
42 $classMetadata->setPrimaryTable(['name' => $this->prefix . $classMetadata->getTableName()]); 42 $classMetadata->setPrimaryTable(['name' => $this->prefix . $classMetadata->getTableName()]);
43 43
44 foreach ($classMetadata->getAssociationMappings() as $fieldName => $mapping) { 44 foreach ($classMetadata->getAssociationMappings() as $fieldName => $mapping) {
45 if ($mapping['type'] === ClassMetadataInfo::MANY_TO_MANY && isset($classMetadata->associationMappings[$fieldName]['joinTable']['name'])) { 45 if (ClassMetadataInfo::MANY_TO_MANY === $mapping['type'] && isset($classMetadata->associationMappings[$fieldName]['joinTable']['name'])) {
46 $mappedTableName = $classMetadata->associationMappings[$fieldName]['joinTable']['name']; 46 $mappedTableName = $classMetadata->associationMappings[$fieldName]['joinTable']['name'];
47 $classMetadata->associationMappings[$fieldName]['joinTable']['name'] = $this->prefix . $mappedTableName; 47 $classMetadata->associationMappings[$fieldName]['joinTable']['name'] = $this->prefix . $mappedTableName;
48 } 48 }
diff --git a/src/Wallabag/CoreBundle/Form/DataTransformer/StringToListTransformer.php b/src/Wallabag/CoreBundle/Form/DataTransformer/StringToListTransformer.php
index cb4bee83..57dbc95e 100644
--- a/src/Wallabag/CoreBundle/Form/DataTransformer/StringToListTransformer.php
+++ b/src/Wallabag/CoreBundle/Form/DataTransformer/StringToListTransformer.php
@@ -48,7 +48,7 @@ class StringToListTransformer implements DataTransformerInterface
48 */ 48 */
49 public function reverseTransform($string) 49 public function reverseTransform($string)
50 { 50 {
51 if ($string === null) { 51 if (null === $string) {
52 return; 52 return;
53 } 53 }
54 54
diff --git a/src/Wallabag/CoreBundle/GuzzleSiteAuthenticator/GrabySiteConfigBuilder.php b/src/Wallabag/CoreBundle/GuzzleSiteAuthenticator/GrabySiteConfigBuilder.php
index da19fe31..2c85da62 100644
--- a/src/Wallabag/CoreBundle/GuzzleSiteAuthenticator/GrabySiteConfigBuilder.php
+++ b/src/Wallabag/CoreBundle/GuzzleSiteAuthenticator/GrabySiteConfigBuilder.php
@@ -58,7 +58,7 @@ class GrabySiteConfigBuilder implements SiteConfigBuilder
58 { 58 {
59 // required by credentials below 59 // required by credentials below
60 $host = strtolower($host); 60 $host = strtolower($host);
61 if (substr($host, 0, 4) === 'www.') { 61 if ('www.' === substr($host, 0, 4)) {
62 $host = substr($host, 4); 62 $host = substr($host, 4);
63 } 63 }
64 64
@@ -113,7 +113,7 @@ class GrabySiteConfigBuilder implements SiteConfigBuilder
113 113
114 $extraFields = []; 114 $extraFields = [];
115 foreach ($extraFieldsStrings as $extraField) { 115 foreach ($extraFieldsStrings as $extraField) {
116 if (strpos($extraField, '=') === false) { 116 if (false === strpos($extraField, '=')) {
117 continue; 117 continue;
118 } 118 }
119 119
diff --git a/src/Wallabag/CoreBundle/Helper/ContentProxy.php b/src/Wallabag/CoreBundle/Helper/ContentProxy.php
index 1ac7ad83..854acb6a 100644
--- a/src/Wallabag/CoreBundle/Helper/ContentProxy.php
+++ b/src/Wallabag/CoreBundle/Helper/ContentProxy.php
@@ -125,7 +125,7 @@ class ContentProxy
125 $date = $value; 125 $date = $value;
126 126
127 // is it a timestamp? 127 // is it a timestamp?
128 if (filter_var($date, FILTER_VALIDATE_INT) !== false) { 128 if (false !== filter_var($date, FILTER_VALIDATE_INT)) {
129 $date = '@' . $date; 129 $date = '@' . $date;
130 } 130 }
131 131
diff --git a/src/Wallabag/CoreBundle/Operator/Doctrine/Matches.php b/src/Wallabag/CoreBundle/Operator/Doctrine/Matches.php
index e6bb03b1..e1610161 100644
--- a/src/Wallabag/CoreBundle/Operator/Doctrine/Matches.php
+++ b/src/Wallabag/CoreBundle/Operator/Doctrine/Matches.php
@@ -16,7 +16,7 @@ class Matches
16{ 16{
17 public function __invoke($subject, $pattern) 17 public function __invoke($subject, $pattern)
18 { 18 {
19 if ($pattern[0] === "'") { 19 if ("'" === $pattern[0]) {
20 $pattern = sprintf("'%%%s%%'", substr($pattern, 1, -1)); 20 $pattern = sprintf("'%%%s%%'", substr($pattern, 1, -1));
21 } 21 }
22 22
diff --git a/src/Wallabag/CoreBundle/Operator/Doctrine/NotMatches.php b/src/Wallabag/CoreBundle/Operator/Doctrine/NotMatches.php
index b7f9da57..8e50f8d6 100644
--- a/src/Wallabag/CoreBundle/Operator/Doctrine/NotMatches.php
+++ b/src/Wallabag/CoreBundle/Operator/Doctrine/NotMatches.php
@@ -16,7 +16,7 @@ class NotMatches
16{ 16{
17 public function __invoke($subject, $pattern) 17 public function __invoke($subject, $pattern)
18 { 18 {
19 if ($pattern[0] === "'") { 19 if ("'" === $pattern[0]) {
20 $pattern = sprintf("'%%%s%%'", substr($pattern, 1, -1)); 20 $pattern = sprintf("'%%%s%%'", substr($pattern, 1, -1));
21 } 21 }
22 22
diff --git a/src/Wallabag/CoreBundle/Operator/PHP/Matches.php b/src/Wallabag/CoreBundle/Operator/PHP/Matches.php
index 987ed2a5..bc0c3f8f 100644
--- a/src/Wallabag/CoreBundle/Operator/PHP/Matches.php
+++ b/src/Wallabag/CoreBundle/Operator/PHP/Matches.php
@@ -16,6 +16,6 @@ class Matches
16{ 16{
17 public function __invoke($subject, $pattern) 17 public function __invoke($subject, $pattern)
18 { 18 {
19 return stripos($subject, $pattern) !== false; 19 return false !== stripos($subject, $pattern);
20 } 20 }
21} 21}
diff --git a/src/Wallabag/CoreBundle/Operator/PHP/NotMatches.php b/src/Wallabag/CoreBundle/Operator/PHP/NotMatches.php
index 68b2676f..bd4d887a 100644
--- a/src/Wallabag/CoreBundle/Operator/PHP/NotMatches.php
+++ b/src/Wallabag/CoreBundle/Operator/PHP/NotMatches.php
@@ -16,6 +16,6 @@ class NotMatches
16{ 16{
17 public function __invoke($subject, $pattern) 17 public function __invoke($subject, $pattern)
18 { 18 {
19 return stripos($subject, $pattern) === false; 19 return false === stripos($subject, $pattern);
20 } 20 }
21} 21}
diff --git a/src/Wallabag/ImportBundle/Import/AbstractImport.php b/src/Wallabag/ImportBundle/Import/AbstractImport.php
index cb46db09..58a234f4 100644
--- a/src/Wallabag/ImportBundle/Import/AbstractImport.php
+++ b/src/Wallabag/ImportBundle/Import/AbstractImport.php
@@ -165,7 +165,7 @@ abstract class AbstractImport implements ImportInterface
165 $entryToBeFlushed[] = $entry; 165 $entryToBeFlushed[] = $entry;
166 166
167 // flush every 20 entries 167 // flush every 20 entries
168 if (($i % 20) === 0) { 168 if (0 === ($i % 20)) {
169 $this->em->flush(); 169 $this->em->flush();
170 170
171 foreach ($entryToBeFlushed as $entry) { 171 foreach ($entryToBeFlushed as $entry) {
diff --git a/src/Wallabag/ImportBundle/Import/BrowserImport.php b/src/Wallabag/ImportBundle/Import/BrowserImport.php
index 78077324..b5593180 100644
--- a/src/Wallabag/ImportBundle/Import/BrowserImport.php
+++ b/src/Wallabag/ImportBundle/Import/BrowserImport.php
@@ -171,7 +171,7 @@ abstract class BrowserImport extends AbstractImport
171 $entryToBeFlushed[] = $entry; 171 $entryToBeFlushed[] = $entry;
172 172
173 // flush every 20 entries 173 // flush every 20 entries
174 if (($i % 20) === 0) { 174 if (0 === ($i % 20)) {
175 $this->em->flush(); 175 $this->em->flush();
176 176
177 foreach ($entryToBeFlushed as $entry) { 177 foreach ($entryToBeFlushed as $entry) {
diff --git a/src/Wallabag/ImportBundle/Import/ChromeImport.php b/src/Wallabag/ImportBundle/Import/ChromeImport.php
index e3ba636a..09183abe 100644
--- a/src/Wallabag/ImportBundle/Import/ChromeImport.php
+++ b/src/Wallabag/ImportBundle/Import/ChromeImport.php
@@ -45,7 +45,7 @@ class ChromeImport extends BrowserImport
45 'created_at' => substr($entry['date_added'], 0, 10), 45 'created_at' => substr($entry['date_added'], 0, 10),
46 ]; 46 ];
47 47
48 if (array_key_exists('tags', $entry) && $entry['tags'] !== '') { 48 if (array_key_exists('tags', $entry) && '' !== $entry['tags']) {
49 $data['tags'] = $entry['tags']; 49 $data['tags'] = $entry['tags'];
50 } 50 }
51 51
diff --git a/src/Wallabag/ImportBundle/Import/FirefoxImport.php b/src/Wallabag/ImportBundle/Import/FirefoxImport.php
index c18e7e93..73269fe1 100644
--- a/src/Wallabag/ImportBundle/Import/FirefoxImport.php
+++ b/src/Wallabag/ImportBundle/Import/FirefoxImport.php
@@ -45,7 +45,7 @@ class FirefoxImport extends BrowserImport
45 'created_at' => substr($entry['dateAdded'], 0, 10), 45 'created_at' => substr($entry['dateAdded'], 0, 10),
46 ]; 46 ];
47 47
48 if (array_key_exists('tags', $entry) && $entry['tags'] !== '') { 48 if (array_key_exists('tags', $entry) && '' !== $entry['tags']) {
49 $data['tags'] = $entry['tags']; 49 $data['tags'] = $entry['tags'];
50 } 50 }
51 51
diff --git a/src/Wallabag/ImportBundle/Import/InstapaperImport.php b/src/Wallabag/ImportBundle/Import/InstapaperImport.php
index 7d70154a..7ab69e7a 100644
--- a/src/Wallabag/ImportBundle/Import/InstapaperImport.php
+++ b/src/Wallabag/ImportBundle/Import/InstapaperImport.php
@@ -63,7 +63,7 @@ class InstapaperImport extends AbstractImport
63 63
64 $entries = []; 64 $entries = [];
65 $handle = fopen($this->filepath, 'r'); 65 $handle = fopen($this->filepath, 'r');
66 while (($data = fgetcsv($handle, 10240)) !== false) { 66 while (false !== ($data = fgetcsv($handle, 10240))) {
67 if ('URL' === $data[0]) { 67 if ('URL' === $data[0]) {
68 continue; 68 continue;
69 } 69 }
@@ -80,8 +80,8 @@ class InstapaperImport extends AbstractImport
80 'url' => $data[0], 80 'url' => $data[0],
81 'title' => $data[1], 81 'title' => $data[1],
82 'status' => $data[3], 82 'status' => $data[3],
83 'is_archived' => $data[3] === 'Archive' || $data[3] === 'Starred', 83 'is_archived' => 'Archive' === $data[3] || 'Starred' === $data[3],
84 'is_starred' => $data[3] === 'Starred', 84 'is_starred' => 'Starred' === $data[3],
85 'html' => false, 85 'html' => false,
86 'tags' => $tags, 86 'tags' => $tags,
87 ]; 87 ];
diff --git a/src/Wallabag/ImportBundle/Import/PocketImport.php b/src/Wallabag/ImportBundle/Import/PocketImport.php
index 7d38826b..dddb87f4 100644
--- a/src/Wallabag/ImportBundle/Import/PocketImport.php
+++ b/src/Wallabag/ImportBundle/Import/PocketImport.php
@@ -149,7 +149,7 @@ class PocketImport extends AbstractImport
149 // - first call get 5k offset 0 149 // - first call get 5k offset 0
150 // - second call get 5k offset 5k 150 // - second call get 5k offset 5k
151 // - and so on 151 // - and so on
152 if (count($entries['list']) === self::NB_ELEMENTS) { 152 if (self::NB_ELEMENTS === count($entries['list'])) {
153 ++$run; 153 ++$run;
154 154
155 return $this->import(self::NB_ELEMENTS * $run); 155 return $this->import(self::NB_ELEMENTS * $run);
@@ -175,7 +175,7 @@ class PocketImport extends AbstractImport
175 */ 175 */
176 public function parseEntry(array $importedEntry) 176 public function parseEntry(array $importedEntry)
177 { 177 {
178 $url = isset($importedEntry['resolved_url']) && $importedEntry['resolved_url'] !== '' ? $importedEntry['resolved_url'] : $importedEntry['given_url']; 178 $url = isset($importedEntry['resolved_url']) && '' !== $importedEntry['resolved_url'] ? $importedEntry['resolved_url'] : $importedEntry['given_url'];
179 179
180 $existingEntry = $this->em 180 $existingEntry = $this->em
181 ->getRepository('WallabagCoreBundle:Entry') 181 ->getRepository('WallabagCoreBundle:Entry')
@@ -194,15 +194,15 @@ class PocketImport extends AbstractImport
194 $this->fetchContent($entry, $url); 194 $this->fetchContent($entry, $url);
195 195
196 // 0, 1, 2 - 1 if the item is archived - 2 if the item should be deleted 196 // 0, 1, 2 - 1 if the item is archived - 2 if the item should be deleted
197 $entry->setArchived($importedEntry['status'] === 1 || $this->markAsRead); 197 $entry->setArchived(1 === $importedEntry['status'] || $this->markAsRead);
198 198
199 // 0 or 1 - 1 If the item is starred 199 // 0 or 1 - 1 If the item is starred
200 $entry->setStarred($importedEntry['favorite'] === 1); 200 $entry->setStarred(1 === $importedEntry['favorite']);
201 201
202 $title = 'Untitled'; 202 $title = 'Untitled';
203 if (isset($importedEntry['resolved_title']) && $importedEntry['resolved_title'] !== '') { 203 if (isset($importedEntry['resolved_title']) && '' !== $importedEntry['resolved_title']) {
204 $title = $importedEntry['resolved_title']; 204 $title = $importedEntry['resolved_title'];
205 } elseif (isset($importedEntry['given_title']) && $importedEntry['given_title'] !== '') { 205 } elseif (isset($importedEntry['given_title']) && '' !== $importedEntry['given_title']) {
206 $title = $importedEntry['given_title']; 206 $title = $importedEntry['given_title'];
207 } 207 }
208 208
diff --git a/src/Wallabag/ImportBundle/Import/WallabagV1Import.php b/src/Wallabag/ImportBundle/Import/WallabagV1Import.php
index d585d44d..a35c411e 100644
--- a/src/Wallabag/ImportBundle/Import/WallabagV1Import.php
+++ b/src/Wallabag/ImportBundle/Import/WallabagV1Import.php
@@ -61,7 +61,7 @@ class WallabagV1Import extends WallabagImport
61 $data['html'] = $this->fetchingErrorMessage; 61 $data['html'] = $this->fetchingErrorMessage;
62 } 62 }
63 63
64 if (array_key_exists('tags', $entry) && $entry['tags'] !== '') { 64 if (array_key_exists('tags', $entry) && '' !== $entry['tags']) {
65 $data['tags'] = $entry['tags']; 65 $data['tags'] = $entry['tags'];
66 } 66 }
67 67
diff --git a/tests/Wallabag/CoreBundle/Controller/EntryControllerTest.php b/tests/Wallabag/CoreBundle/Controller/EntryControllerTest.php
index 33bfa71e..ca275b32 100644
--- a/tests/Wallabag/CoreBundle/Controller/EntryControllerTest.php
+++ b/tests/Wallabag/CoreBundle/Controller/EntryControllerTest.php
@@ -1268,7 +1268,7 @@ class EntryControllerTest extends WallabagCoreTestCase
1268 'ru', 1268 'ru',
1269 ], 1269 ],
1270 'fr-FR' => [ 1270 'fr-FR' => [
1271 'http://www.zataz.com/90-des-dossiers-medicaux-des-coreens-du-sud-vendus-a-des-entreprises-privees/', 1271 'https://www.zataz.com/90-des-dossiers-medicaux-des-coreens-du-sud-vendus-a-des-entreprises-privees/',
1272 'fr_FR', 1272 'fr_FR',
1273 ], 1273 ],
1274 'de' => [ 1274 'de' => [
@@ -1300,7 +1300,7 @@ class EntryControllerTest extends WallabagCoreTestCase
1300 null, 1300 null,
1301 ], 1301 ],
1302 'es-ES' => [ 1302 'es-ES' => [
1303 'http://www.muylinux.com/2015/04/17/odf-reino-unido-microsoft-google/', 1303 'https://www.muylinux.com/2015/04/17/odf-reino-unido-microsoft-google/',
1304 'es_ES', 1304 'es_ES',
1305 ], 1305 ],
1306 ]; 1306 ];
@@ -1343,7 +1343,7 @@ class EntryControllerTest extends WallabagCoreTestCase
1343 */ 1343 */
1344 public function testRestrictedArticle() 1344 public function testRestrictedArticle()
1345 { 1345 {
1346 $url = 'http://www.monde-diplomatique.fr/2017/05/BONNET/57475'; 1346 $url = 'https://www.monde-diplomatique.fr/2017/05/BONNET/57475';
1347 $this->logInAs('admin'); 1347 $this->logInAs('admin');
1348 $client = $this->getClient(); 1348 $client = $this->getClient();
1349 $em = $client->getContainer()->get('doctrine.orm.entity_manager'); 1349 $em = $client->getContainer()->get('doctrine.orm.entity_manager');
diff --git a/tests/Wallabag/ImportBundle/Controller/ChromeControllerTest.php b/tests/Wallabag/ImportBundle/Controller/ChromeControllerTest.php
index 3873ccf4..ddb7a65a 100644
--- a/tests/Wallabag/ImportBundle/Controller/ChromeControllerTest.php
+++ b/tests/Wallabag/ImportBundle/Controller/ChromeControllerTest.php
@@ -114,10 +114,11 @@ class ChromeControllerTest extends WallabagCoreTestCase
114 ->get('doctrine.orm.entity_manager') 114 ->get('doctrine.orm.entity_manager')
115 ->getRepository('WallabagCoreBundle:Entry') 115 ->getRepository('WallabagCoreBundle:Entry')
116 ->findByUrlAndUserId( 116 ->findByUrlAndUserId(
117 'http://www.usinenouvelle.com/article/la-multiplication-des-chefs-de-projet-est-une-catastrophe-manageriale-majeure-affirme-le-sociologue-francois-dupuy.N307730', 117 'https://www.usinenouvelle.com/article/la-multiplication-des-chefs-de-projet-est-une-catastrophe-manageriale-majeure-affirme-le-sociologue-francois-dupuy.N307730',
118 $this->getLoggedInUserId() 118 $this->getLoggedInUserId()
119 ); 119 );
120 120
121 $this->assertInstanceOf('Wallabag\CoreBundle\Entity\Entry', $content);
121 $this->assertNotEmpty($content->getPreviewPicture(), 'Preview picture for http://www.usinenouvelle.com is ok'); 122 $this->assertNotEmpty($content->getPreviewPicture(), 'Preview picture for http://www.usinenouvelle.com is ok');
122 $this->assertNotEmpty($content->getLanguage(), 'Language for http://www.usinenouvelle.com is ok'); 123 $this->assertNotEmpty($content->getLanguage(), 'Language for http://www.usinenouvelle.com is ok');
123 $this->assertSame(1, count($content->getTags())); 124 $this->assertSame(1, count($content->getTags()));
diff --git a/tests/Wallabag/ImportBundle/Controller/FirefoxControllerTest.php b/tests/Wallabag/ImportBundle/Controller/FirefoxControllerTest.php
index 5e1260b1..933fffa2 100644
--- a/tests/Wallabag/ImportBundle/Controller/FirefoxControllerTest.php
+++ b/tests/Wallabag/ImportBundle/Controller/FirefoxControllerTest.php
@@ -118,6 +118,7 @@ class FirefoxControllerTest extends WallabagCoreTestCase
118 $this->getLoggedInUserId() 118 $this->getLoggedInUserId()
119 ); 119 );
120 120
121 $this->assertInstanceOf('Wallabag\CoreBundle\Entity\Entry', $content);
121 $this->assertNotEmpty($content->getMimetype(), 'Mimetype for http://lexpansion.lexpress.fr is ok'); 122 $this->assertNotEmpty($content->getMimetype(), 'Mimetype for http://lexpansion.lexpress.fr is ok');
122 $this->assertNotEmpty($content->getPreviewPicture(), 'Preview picture for http://lexpansion.lexpress.fr is ok'); 123 $this->assertNotEmpty($content->getPreviewPicture(), 'Preview picture for http://lexpansion.lexpress.fr is ok');
123 $this->assertNotEmpty($content->getLanguage(), 'Language for http://lexpansion.lexpress.fr is ok'); 124 $this->assertNotEmpty($content->getLanguage(), 'Language for http://lexpansion.lexpress.fr is ok');
@@ -131,6 +132,7 @@ class FirefoxControllerTest extends WallabagCoreTestCase
131 $this->getLoggedInUserId() 132 $this->getLoggedInUserId()
132 ); 133 );
133 134
135 $this->assertInstanceOf('Wallabag\CoreBundle\Entity\Entry', $content);
134 $this->assertNotEmpty($content->getMimetype(), 'Mimetype for https://stackoverflow.com is ok'); 136 $this->assertNotEmpty($content->getMimetype(), 'Mimetype for https://stackoverflow.com is ok');
135 $this->assertNotEmpty($content->getPreviewPicture(), 'Preview picture for https://stackoverflow.com is ok'); 137 $this->assertNotEmpty($content->getPreviewPicture(), 'Preview picture for https://stackoverflow.com is ok');
136 $this->assertEmpty($content->getLanguage(), 'Language for https://stackoverflow.com is ok'); 138 $this->assertEmpty($content->getLanguage(), 'Language for https://stackoverflow.com is ok');
diff --git a/tests/Wallabag/ImportBundle/Controller/PinboardControllerTest.php b/tests/Wallabag/ImportBundle/Controller/PinboardControllerTest.php
index 9bb59766..1135f32e 100644
--- a/tests/Wallabag/ImportBundle/Controller/PinboardControllerTest.php
+++ b/tests/Wallabag/ImportBundle/Controller/PinboardControllerTest.php
@@ -118,6 +118,7 @@ class PinboardControllerTest extends WallabagCoreTestCase
118 $this->assertGreaterThan(1, $body = $crawler->filter('body')->extract(['_text'])); 118 $this->assertGreaterThan(1, $body = $crawler->filter('body')->extract(['_text']));
119 $this->assertContains('flashes.import.notice.summary', $body[0]); 119 $this->assertContains('flashes.import.notice.summary', $body[0]);
120 120
121 $this->assertInstanceOf('Wallabag\CoreBundle\Entity\Entry', $content);
121 $this->assertNotEmpty($content->getMimetype(), 'Mimetype for https://ma.ttias.be is ok'); 122 $this->assertNotEmpty($content->getMimetype(), 'Mimetype for https://ma.ttias.be is ok');
122 $this->assertNotEmpty($content->getPreviewPicture(), 'Preview picture for https://ma.ttias.be is ok'); 123 $this->assertNotEmpty($content->getPreviewPicture(), 'Preview picture for https://ma.ttias.be is ok');
123 $this->assertNotEmpty($content->getLanguage(), 'Language for https://ma.ttias.be is ok'); 124 $this->assertNotEmpty($content->getLanguage(), 'Language for https://ma.ttias.be is ok');
@@ -161,6 +162,7 @@ class PinboardControllerTest extends WallabagCoreTestCase
161 $this->getLoggedInUserId() 162 $this->getLoggedInUserId()
162 ); 163 );
163 164
165 $this->assertInstanceOf('Wallabag\CoreBundle\Entity\Entry', $content1);
164 $this->assertTrue($content1->isArchived()); 166 $this->assertTrue($content1->isArchived());
165 167
166 $content2 = $client->getContainer() 168 $content2 = $client->getContainer()
@@ -171,6 +173,7 @@ class PinboardControllerTest extends WallabagCoreTestCase
171 $this->getLoggedInUserId() 173 $this->getLoggedInUserId()
172 ); 174 );
173 175
176 $this->assertInstanceOf('Wallabag\CoreBundle\Entity\Entry', $content2);
174 $this->assertTrue($content2->isArchived()); 177 $this->assertTrue($content2->isArchived());
175 178
176 $this->assertGreaterThan(1, $body = $crawler->filter('body')->extract(['_text'])); 179 $this->assertGreaterThan(1, $body = $crawler->filter('body')->extract(['_text']));
diff --git a/tests/Wallabag/ImportBundle/Controller/ReadabilityControllerTest.php b/tests/Wallabag/ImportBundle/Controller/ReadabilityControllerTest.php
index e1915150..fcb9dfab 100644
--- a/tests/Wallabag/ImportBundle/Controller/ReadabilityControllerTest.php
+++ b/tests/Wallabag/ImportBundle/Controller/ReadabilityControllerTest.php
@@ -111,13 +111,14 @@ class ReadabilityControllerTest extends WallabagCoreTestCase
111 ->get('doctrine.orm.entity_manager') 111 ->get('doctrine.orm.entity_manager')
112 ->getRepository('WallabagCoreBundle:Entry') 112 ->getRepository('WallabagCoreBundle:Entry')
113 ->findByUrlAndUserId( 113 ->findByUrlAndUserId(
114 'http://www.zataz.com/90-des-dossiers-medicaux-des-coreens-du-sud-vendus-a-des-entreprises-privees/', 114 'https://www.zataz.com/90-des-dossiers-medicaux-des-coreens-du-sud-vendus-a-des-entreprises-privees/',
115 $this->getLoggedInUserId() 115 $this->getLoggedInUserId()
116 ); 116 );
117 117
118 $this->assertGreaterThan(1, $body = $crawler->filter('body')->extract(['_text'])); 118 $this->assertGreaterThan(1, $body = $crawler->filter('body')->extract(['_text']));
119 $this->assertContains('flashes.import.notice.summary', $body[0]); 119 $this->assertContains('flashes.import.notice.summary', $body[0]);
120 120
121 $this->assertInstanceOf('Wallabag\CoreBundle\Entity\Entry', $content);
121 $this->assertNotEmpty($content->getMimetype(), 'Mimetype for http://www.zataz.com is ok'); 122 $this->assertNotEmpty($content->getMimetype(), 'Mimetype for http://www.zataz.com is ok');
122 $this->assertNotEmpty($content->getPreviewPicture(), 'Preview picture for http://www.zataz.com is ok'); 123 $this->assertNotEmpty($content->getPreviewPicture(), 'Preview picture for http://www.zataz.com is ok');
123 $this->assertNotEmpty($content->getLanguage(), 'Language for http://www.zataz.com is ok'); 124 $this->assertNotEmpty($content->getLanguage(), 'Language for http://www.zataz.com is ok');
@@ -159,16 +160,18 @@ class ReadabilityControllerTest extends WallabagCoreTestCase
159 $this->getLoggedInUserId() 160 $this->getLoggedInUserId()
160 ); 161 );
161 162
163 $this->assertInstanceOf('Wallabag\CoreBundle\Entity\Entry', $content1);
162 $this->assertTrue($content1->isArchived()); 164 $this->assertTrue($content1->isArchived());
163 165
164 $content2 = $client->getContainer() 166 $content2 = $client->getContainer()
165 ->get('doctrine.orm.entity_manager') 167 ->get('doctrine.orm.entity_manager')
166 ->getRepository('WallabagCoreBundle:Entry') 168 ->getRepository('WallabagCoreBundle:Entry')
167 ->findByUrlAndUserId( 169 ->findByUrlAndUserId(
168 'https://facebook.github.io/graphql/', 170 'https://facebook.github.io/graphql/October2016/',
169 $this->getLoggedInUserId() 171 $this->getLoggedInUserId()
170 ); 172 );
171 173
174 $this->assertInstanceOf('Wallabag\CoreBundle\Entity\Entry', $content2);
172 $this->assertTrue($content2->isArchived()); 175 $this->assertTrue($content2->isArchived());
173 176
174 $this->assertGreaterThan(1, $body = $crawler->filter('body')->extract(['_text'])); 177 $this->assertGreaterThan(1, $body = $crawler->filter('body')->extract(['_text']));
diff --git a/tests/Wallabag/ImportBundle/Controller/WallabagV1ControllerTest.php b/tests/Wallabag/ImportBundle/Controller/WallabagV1ControllerTest.php
index 4bc982e0..e0e309b0 100644
--- a/tests/Wallabag/ImportBundle/Controller/WallabagV1ControllerTest.php
+++ b/tests/Wallabag/ImportBundle/Controller/WallabagV1ControllerTest.php
@@ -119,6 +119,7 @@ class WallabagV1ControllerTest extends WallabagCoreTestCase
119 $this->assertGreaterThan(1, $body = $crawler->filter('body')->extract(['_text'])); 119 $this->assertGreaterThan(1, $body = $crawler->filter('body')->extract(['_text']));
120 $this->assertContains('flashes.import.notice.summary', $body[0]); 120 $this->assertContains('flashes.import.notice.summary', $body[0]);
121 121
122 $this->assertInstanceOf('Wallabag\CoreBundle\Entity\Entry', $content);
122 $this->assertEmpty($content->getMimetype(), 'Mimetype for http://www.framablog.org is empty'); 123 $this->assertEmpty($content->getMimetype(), 'Mimetype for http://www.framablog.org is empty');
123 $this->assertEmpty($content->getPreviewPicture(), 'Preview picture for http://www.framablog.org is empty'); 124 $this->assertEmpty($content->getPreviewPicture(), 'Preview picture for http://www.framablog.org is empty');
124 $this->assertEmpty($content->getLanguage(), 'Language for http://www.framablog.org is empty'); 125 $this->assertEmpty($content->getLanguage(), 'Language for http://www.framablog.org is empty');
@@ -160,6 +161,7 @@ class WallabagV1ControllerTest extends WallabagCoreTestCase
160 $this->getLoggedInUserId() 161 $this->getLoggedInUserId()
161 ); 162 );
162 163
164 $this->assertInstanceOf('Wallabag\CoreBundle\Entity\Entry', $content1);
163 $this->assertTrue($content1->isArchived()); 165 $this->assertTrue($content1->isArchived());
164 166
165 $content2 = $client->getContainer() 167 $content2 = $client->getContainer()
@@ -170,6 +172,7 @@ class WallabagV1ControllerTest extends WallabagCoreTestCase
170 $this->getLoggedInUserId() 172 $this->getLoggedInUserId()
171 ); 173 );
172 174
175 $this->assertInstanceOf('Wallabag\CoreBundle\Entity\Entry', $content2);
173 $this->assertTrue($content2->isArchived()); 176 $this->assertTrue($content2->isArchived());
174 177
175 $this->assertGreaterThan(1, $body = $crawler->filter('body')->extract(['_text'])); 178 $this->assertGreaterThan(1, $body = $crawler->filter('body')->extract(['_text']));
diff --git a/tests/Wallabag/ImportBundle/Controller/WallabagV2ControllerTest.php b/tests/Wallabag/ImportBundle/Controller/WallabagV2ControllerTest.php
index a94adcaf..e52b9c85 100644
--- a/tests/Wallabag/ImportBundle/Controller/WallabagV2ControllerTest.php
+++ b/tests/Wallabag/ImportBundle/Controller/WallabagV2ControllerTest.php
@@ -119,6 +119,8 @@ class WallabagV2ControllerTest extends WallabagCoreTestCase
119 $this->getLoggedInUserId() 119 $this->getLoggedInUserId()
120 ); 120 );
121 121
122 $this->assertInstanceOf('Wallabag\CoreBundle\Entity\Entry', $content);
123
122 // empty because it wasn't re-imported 124 // empty because it wasn't re-imported
123 $this->assertEmpty($content->getMimetype(), 'Mimetype for http://www.liberation.fr is empty'); 125 $this->assertEmpty($content->getMimetype(), 'Mimetype for http://www.liberation.fr is empty');
124 $this->assertEmpty($content->getPreviewPicture(), 'Preview picture for http://www.liberation.fr is empty'); 126 $this->assertEmpty($content->getPreviewPicture(), 'Preview picture for http://www.liberation.fr is empty');
@@ -136,6 +138,7 @@ class WallabagV2ControllerTest extends WallabagCoreTestCase
136 $this->getLoggedInUserId() 138 $this->getLoggedInUserId()
137 ); 139 );
138 140
141 $this->assertInstanceOf('Wallabag\CoreBundle\Entity\Entry', $content);
139 $this->assertNotEmpty($content->getMimetype(), 'Mimetype for https://www.mediapart.fr is ok'); 142 $this->assertNotEmpty($content->getMimetype(), 'Mimetype for https://www.mediapart.fr is ok');
140 $this->assertNotEmpty($content->getPreviewPicture(), 'Preview picture for https://www.mediapart.fr is ok'); 143 $this->assertNotEmpty($content->getPreviewPicture(), 'Preview picture for https://www.mediapart.fr is ok');
141 $this->assertNotEmpty($content->getLanguage(), 'Language for https://www.mediapart.fr is ok'); 144 $this->assertNotEmpty($content->getLanguage(), 'Language for https://www.mediapart.fr is ok');
diff --git a/tests/Wallabag/ImportBundle/fixtures/readability-read.json b/tests/Wallabag/ImportBundle/fixtures/readability-read.json
index c60767dc..7dbd9868 100644
--- a/tests/Wallabag/ImportBundle/fixtures/readability-read.json
+++ b/tests/Wallabag/ImportBundle/fixtures/readability-read.json
@@ -14,7 +14,7 @@
14 "article__excerpt": "The GraphQL Type system describes the capabilities of a GraphQL server and is used to determine if a query is valid. The type system also describes the input types of query variables to determine if&hellip;", 14 "article__excerpt": "The GraphQL Type system describes the capabilities of a GraphQL server and is used to determine if a query is valid. The type system also describes the input types of query variables to determine if&hellip;",
15 "favorite": false, 15 "favorite": false,
16 "date_archived": "2016-07-19T06:48:31", 16 "date_archived": "2016-07-19T06:48:31",
17 "article__url": "https://facebook.github.io/graphql/", 17 "article__url": "https://facebook.github.io/graphql/October2016/",
18 "date_added": "2016-06-24T17:50:16", 18 "date_added": "2016-06-24T17:50:16",
19 "date_favorited": null, 19 "date_favorited": null,
20 "article__title": "GraphQL", 20 "article__title": "GraphQL",
diff --git a/tests/Wallabag/ImportBundle/fixtures/readability.json b/tests/Wallabag/ImportBundle/fixtures/readability.json
index b9fd570d..ba7be5bf 100644
--- a/tests/Wallabag/ImportBundle/fixtures/readability.json
+++ b/tests/Wallabag/ImportBundle/fixtures/readability.json
@@ -22,7 +22,7 @@
22 "date_added": "2016-09-08T11:55:58+0200", 22 "date_added": "2016-09-08T11:55:58+0200",
23 "favorite": 0, 23 "favorite": 0,
24 "article__title": "90% des dossiers médicaux des Coréens du sud vendus à des entreprises privées - ZATAZ", 24 "article__title": "90% des dossiers médicaux des Coréens du sud vendus à des entreprises privées - ZATAZ",
25 "article__url": "http://www.zataz.com/90-des-dossiers-medicaux-des-coreens-du-sud-vendus-a-des-entreprises-privees/" 25 "article__url": "https://www.zataz.com/90-des-dossiers-medicaux-des-coreens-du-sud-vendus-a-des-entreprises-privees/"
26 } 26 }
27 ], 27 ],
28 "recommendations": [] 28 "recommendations": []
diff --git a/tests/Wallabag/ImportBundle/fixtures/wallabag-v2.json b/tests/Wallabag/ImportBundle/fixtures/wallabag-v2.json
index 0e30d95b..63c44cf9 100644
--- a/tests/Wallabag/ImportBundle/fixtures/wallabag-v2.json
+++ b/tests/Wallabag/ImportBundle/fixtures/wallabag-v2.json
@@ -71,14 +71,14 @@
71 "is_starred": 0, 71 "is_starred": 0,
72 "id": 608, 72 "id": 608,
73 "title": "90% des dossiers médicaux des Coréens du sud vendus à des entreprises privées - ZATAZ", 73 "title": "90% des dossiers médicaux des Coréens du sud vendus à des entreprises privées - ZATAZ",
74 "url": "http://www.zataz.com/90-des-dossiers-medicaux-des-coreens-du-sud-vendus-a-des-entreprises-privees/", 74 "url": "https://www.zataz.com/90-des-dossiers-medicaux-des-coreens-du-sud-vendus-a-des-entreprises-privees/",
75 "content": "<p class=\"c2\"><strong>La Corée du Sud vibre en ce moment à la lecture d’une information qui pend aux nez des Français. Une entreprise privée a récupéré 90% des dossiers médicaux des habitants du pays du matin calme au soleil levant pour les revendre.</strong></p>\n<p>Une entreprise spécialisée dans le développement de logiciels en charge de gérer les frais médicaux, programmes utilisés dans les hôpitaux et la Korean Pharmaceutical Information Center, a offert il y a quelques mois ses logiciels de gestion d’officines. Plus de la moitié des pharmacies du pays ont utilisé l’outil. Sauf que <a href=\"http://www.koreaherald.com/view.php?ud=20150726000368\" target=\"_blank\">les données sauvegardées ont été revendues</a> à IMS Health Korea. Cette entreprise, dont le siège social est basé aux USA, a ensuite commercialisé, illégalement, les données à d’autres sociétés en Corée.</p>\n<p>La loi 2011 sur le droit de la protection des renseignements personnels interdit l’utilisation des renseignements personnels et des renseignements médicaux sans le consentement des patients. Le Pharmaceutical Information Center est actuellement jugé pour cette collecte illégale, qui date de 2013, et la distribution des informations médicales de 90% des Coréens.</p>\n<blockquote readability=\"4\">\n<p><strong>Un cas qui pourrait toucher la France ?</strong></p>\n</blockquote>\n<p class=\"c2\">Depuis février 2015, l’ouverture des données de santé dans l’hexagone a été décidée par le législateur. L’assurance-maladie a annoncé qu’elle proposait, en accès libre, sa base de données « <em>Damir</em> » sur le site data.gouv.fr. Un big data de la santé qui regroupe les informations issues de 1,2 milliard de feuilles de soins, de 500 millions d’actes médicaux et de 11 millions d’hospitalisations. Ce big data ne propose pas les identités (pas de nom, de numéro de sécurité sociale, …), uniquement des millions de chiffres et de données de santé. Cette faramineuse base de données, qui double de volume chaque année, permet d’extraire, par exemple, des statistiques liées à la santé dans les régions. <a href=\"http://www.assemblee-nationale.fr/14/amendements/2302/CION-SOC/AS1387.pdf\" target=\"_blank\">L’article 47 de loi</a> permet aux acteurs privés d’accéder aux données de la CNAMTS. C’est l’Institut national des données de santé (<a href=\"http://www.institut-des-donnees-de-sante.fr/\" target=\"_blank\">INDS</a>) qui a en charge de répondre aux demandes du « privé » pour accéder aux données plus ciblées (et payantes).</p>\n", 75 "content": "<p class=\"c2\"><strong>La Corée du Sud vibre en ce moment à la lecture d’une information qui pend aux nez des Français. Une entreprise privée a récupéré 90% des dossiers médicaux des habitants du pays du matin calme au soleil levant pour les revendre.</strong></p>\n<p>Une entreprise spécialisée dans le développement de logiciels en charge de gérer les frais médicaux, programmes utilisés dans les hôpitaux et la Korean Pharmaceutical Information Center, a offert il y a quelques mois ses logiciels de gestion d’officines. Plus de la moitié des pharmacies du pays ont utilisé l’outil. Sauf que <a href=\"http://www.koreaherald.com/view.php?ud=20150726000368\" target=\"_blank\">les données sauvegardées ont été revendues</a> à IMS Health Korea. Cette entreprise, dont le siège social est basé aux USA, a ensuite commercialisé, illégalement, les données à d’autres sociétés en Corée.</p>\n<p>La loi 2011 sur le droit de la protection des renseignements personnels interdit l’utilisation des renseignements personnels et des renseignements médicaux sans le consentement des patients. Le Pharmaceutical Information Center est actuellement jugé pour cette collecte illégale, qui date de 2013, et la distribution des informations médicales de 90% des Coréens.</p>\n<blockquote readability=\"4\">\n<p><strong>Un cas qui pourrait toucher la France ?</strong></p>\n</blockquote>\n<p class=\"c2\">Depuis février 2015, l’ouverture des données de santé dans l’hexagone a été décidée par le législateur. L’assurance-maladie a annoncé qu’elle proposait, en accès libre, sa base de données « <em>Damir</em> » sur le site data.gouv.fr. Un big data de la santé qui regroupe les informations issues de 1,2 milliard de feuilles de soins, de 500 millions d’actes médicaux et de 11 millions d’hospitalisations. Ce big data ne propose pas les identités (pas de nom, de numéro de sécurité sociale, …), uniquement des millions de chiffres et de données de santé. Cette faramineuse base de données, qui double de volume chaque année, permet d’extraire, par exemple, des statistiques liées à la santé dans les régions. <a href=\"http://www.assemblee-nationale.fr/14/amendements/2302/CION-SOC/AS1387.pdf\" target=\"_blank\">L’article 47 de loi</a> permet aux acteurs privés d’accéder aux données de la CNAMTS. C’est l’Institut national des données de santé (<a href=\"http://www.institut-des-donnees-de-sante.fr/\" target=\"_blank\">INDS</a>) qui a en charge de répondre aux demandes du « privé » pour accéder aux données plus ciblées (et payantes).</p>\n",
76 "annotations": [], 76 "annotations": [],
77 "mimetype": "text/html", 77 "mimetype": "text/html",
78 "language": "fr-FR", 78 "language": "fr-FR",
79 "reading_time": 1, 79 "reading_time": 1,
80 "domain_name": "www.zataz.com", 80 "domain_name": "www.zataz.com",
81 "preview_picture": "http://www.zataz.com/wp-content/uploads/HD-Virus.png", 81 "preview_picture": "https://www.zataz.com/wp-content/uploads/HD-Virus.png",
82 "tags": [] 82 "tags": []
83 }, 83 },
84 { 84 {