From 1436f17d20f06d5f1bacb9f15f4b558beb42804b Mon Sep 17 00:00:00 2001
From: Arnaud Levy <contact@arnaudlevy.com>
Date: Mon, 25 Oct 2021 17:52:21 +0200
Subject: [PATCH] wip

---
 .../communication/website/imported/page.rb    |  4 +--
 .../communication/website/imported/post.rb    |  4 +--
 .../website/imported/medium_test.rb           | 35 -------------------
 .../communication/website/medium_test.rb      | 31 ----------------
 test/models/wordpress_test.rb                 | 25 +++++++------
 5 files changed, 19 insertions(+), 80 deletions(-)
 delete mode 100644 test/models/communication/website/imported/medium_test.rb
 delete mode 100644 test/models/communication/website/medium_test.rb

diff --git a/app/models/communication/website/imported/page.rb b/app/models/communication/website/imported/page.rb
index 595e88b64..2576b2471 100644
--- a/app/models/communication/website/imported/page.rb
+++ b/app/models/communication/website/imported/page.rb
@@ -84,9 +84,9 @@ class Communication::Website::Imported::Page < ApplicationRecord
     end
     puts "Update page #{page.id}"
     page.slug = slug
-    page.title = Wordpress.clean title.to_s
+    page.title = Wordpress.clean_string title.to_s
     page.description = ActionView::Base.full_sanitizer.sanitize excerpt.to_s
-    page.text = Wordpress.clean content.to_s
+    page.text = Wordpress.clean_html content.to_s
     page.published = true
     page.save
   end
diff --git a/app/models/communication/website/imported/post.rb b/app/models/communication/website/imported/post.rb
index 16a318248..7f7f8e591 100644
--- a/app/models/communication/website/imported/post.rb
+++ b/app/models/communication/website/imported/post.rb
@@ -82,11 +82,11 @@ class Communication::Website::Imported::Post < ApplicationRecord
       # return unless updated_at > post.updated_at
     end
     puts "Update post #{post.id}"
-    sanitized_title = Wordpress.clean self.title.to_s
+    sanitized_title = Wordpress.clean_string self.title.to_s
     post.title = sanitized_title unless sanitized_title.blank? # If there is no title, leave it with "Untitled"
     post.slug = slug
     post.description = ActionView::Base.full_sanitizer.sanitize excerpt.to_s
-    post.text = Wordpress.clean content.to_s
+    post.text = Wordpress.clean_html content.to_s
     post.created_at = created_at
     post.updated_at = updated_at
     post.published_at = published_at if published_at
diff --git a/test/models/communication/website/imported/medium_test.rb b/test/models/communication/website/imported/medium_test.rb
deleted file mode 100644
index e20280d2a..000000000
--- a/test/models/communication/website/imported/medium_test.rb
+++ /dev/null
@@ -1,35 +0,0 @@
-# == Schema Information
-#
-# Table name: communication_website_imported_media
-#
-#  id            :uuid             not null, primary key
-#  data          :jsonb
-#  file_url      :text
-#  filename      :string
-#  identifier    :string
-#  mime_type     :string
-#  created_at    :datetime
-#  updated_at    :datetime
-#  medium_id     :uuid
-#  university_id :uuid             not null
-#  website_id    :uuid             not null
-#
-# Indexes
-#
-#  index_communication_website_imported_media_on_medium_id      (medium_id)
-#  index_communication_website_imported_media_on_university_id  (university_id)
-#  index_communication_website_imported_media_on_website_id     (website_id)
-#
-# Foreign Keys
-#
-#  fk_rails_...  (medium_id => communication_website_media.id)
-#  fk_rails_...  (university_id => universities.id)
-#  fk_rails_...  (website_id => communication_website_imported_websites.id)
-#
-require "test_helper"
-
-class Communication::Website::Imported::MediumTest < ActiveSupport::TestCase
-  # test "the truth" do
-  #   assert true
-  # end
-end
diff --git a/test/models/communication/website/medium_test.rb b/test/models/communication/website/medium_test.rb
deleted file mode 100644
index 216a43e11..000000000
--- a/test/models/communication/website/medium_test.rb
+++ /dev/null
@@ -1,31 +0,0 @@
-# == Schema Information
-#
-# Table name: communication_website_media
-#
-#  id            :uuid             not null, primary key
-#  file_url      :text
-#  filename      :string
-#  identifier    :string
-#  mime_type     :string
-#  created_at    :datetime         not null
-#  updated_at    :datetime         not null
-#  university_id :uuid             not null
-#  website_id    :uuid             not null
-#
-# Indexes
-#
-#  index_communication_website_media_on_university_id  (university_id)
-#  index_communication_website_media_on_website_id     (website_id)
-#
-# Foreign Keys
-#
-#  fk_rails_...  (university_id => universities.id)
-#  fk_rails_...  (website_id => communication_websites.id)
-#
-require "test_helper"
-
-class Communication::Website::MediumTest < ActiveSupport::TestCase
-  # test "the truth" do
-  #   assert true
-  # end
-end
diff --git a/test/models/wordpress_test.rb b/test/models/wordpress_test.rb
index d7a4d946b..23b1323b6 100644
--- a/test/models/wordpress_test.rb
+++ b/test/models/wordpress_test.rb
@@ -3,58 +3,63 @@ require "test_helper"
 class WordpressTest < ActiveSupport::TestCase
   test "convert apostroph" do
     assert_equal  'Ouverture du CRM pendant les vacances d’Avril',
-                  Wordpress.clean('Ouverture du CRM pendant les vacances d&#8217;Avril')
+                  Wordpress.clean_html('Ouverture du CRM pendant les vacances d&#8217;Avril')
   end
 
   test "convert 3 dots" do
     assert_equal  'Le CRM fait le tri dans ses collections … et vous propose une vente de livres',
-                  Wordpress.clean('Le CRM fait le tri dans ses collections &#8230; et vous propose une vente de livres')
+                  Wordpress.clean_html('Le CRM fait le tri dans ses collections &#8230; et vous propose une vente de livres')
   end
 
   test "convert double quotation marks" do
     assert_equal  'Conférence Joëlle Zask : “Ecologie de la participation”',
-                  Wordpress.clean('Conférence Joëlle Zask : &#8220;Ecologie de la participation&#8221;')
+                  Wordpress.clean_html('Conférence Joëlle Zask : &#8220;Ecologie de la participation&#8221;')
   end
 
   test "convert h1" do
     assert_equal  '<h2>B.U.T. Métiers du multimédia et de l’internet</h2>',
-                  Wordpress.clean('<h1>B.U.T. Métiers du multimédia et de l&#8217;internet</h1>')
+                  Wordpress.clean_html('<h1>B.U.T. Métiers du multimédia et de l&#8217;internet</h1>')
   end
 
   test "convert h2 without h1" do
     assert_equal  '<h2>B.U.T. Métiers du multimédia et de l’internet</h2>',
-                  Wordpress.clean('<h2>B.U.T. Métiers du multimédia et de l&#8217;internet</h2>')
+                  Wordpress.clean_html('<h2>B.U.T. Métiers du multimédia et de l&#8217;internet</h2>')
   end
 
   test "convert h2 with h1" do
     assert_equal  '<h2>Bachelor Universitaire de Technologie</h2><h3>B.U.T. Métiers du multimédia et de l’internet</h3>',
-                  Wordpress.clean('<h1>Bachelor Universitaire de Technologie</h1><h2>B.U.T. Métiers du multimédia et de l&#8217;internet</h2>')
+                  Wordpress.clean_html('<h1>Bachelor Universitaire de Technologie</h1><h2>B.U.T. Métiers du multimédia et de l&#8217;internet</h2>')
   end
 
   test "convert " do
     assert_equal  'TRAVAILLER DEMAIN, Débat – le 10 mai à 18h30',
-                  Wordpress.clean('TRAVAILLER DEMAIN, Débat &#8211; le 10 mai à 18h30')
+                  Wordpress.clean_html('TRAVAILLER DEMAIN, Débat &#8211; le 10 mai à 18h30')
   end
 
   test "remove classes" do
     assert_equal  '<h2>→ Qu’est-ce que le B.U.T.&nbsp;?</h2>',
-                  Wordpress.clean('<h2 class="titre-diplome">→ Qu’est-ce que le B.U.T.&nbsp;?</h2>')
+                  Wordpress.clean_html('<h2 class="titre-diplome">→ Qu’est-ce que le B.U.T.&nbsp;?</h2>')
   end
 
   test "remove line_separators (LSEP)" do
     # Invisible char before A, and html code
     assert_equal  "Au ",
-                  Wordpress.clean("
Au &#8232;")
+                  Wordpress.clean_html("
Au &#8232;")
   end
 
   test "remove divs" do
     # Quid des images ? Comment gérer le transfert vers scaleway + active storage dans le code ?
     assert_equal  '<figure><a href="https://www.iut.u-bordeaux-montaigne.fr/wp-content/uploads/2021/01/visuel_1.png"><img src="https://www.iut.u-bordeaux-montaigne.fr/wp-content/uploads/2021/01/visuel_1-240x300.png" alt="Le BUT, qu\'est-ce que c\'est ?" width="173" height="216" srcset="https://www.iut.u-bordeaux-montaigne.fr/wp-content/uploads/2021/01/visuel_1-240x300.png 240w, https://www.iut.u-bordeaux-montaigne.fr/wp-content/uploads/2021/01/visuel_1.png 730w"></a></figure>',
-                  Wordpress.clean('<div class="wp-block-group"><div class="wp-block-group__inner-container"><div class="wp-block-columns"><div class="wp-block-column"><div class="wp-block-image"><figure class="alignright size-medium is-resized"><a href="https://www.iut.u-bordeaux-montaigne.fr/wp-content/uploads/2021/01/visuel_1.png" rel="lightbox[14475]"><img src="https://www.iut.u-bordeaux-montaigne.fr/wp-content/uploads/2021/01/visuel_1-240x300.png" alt="Le BUT, qu\'est-ce que c\'est ?" class="wp-image-14821" width="173" height="216" srcset="https://www.iut.u-bordeaux-montaigne.fr/wp-content/uploads/2021/01/visuel_1-240x300.png 240w, https://www.iut.u-bordeaux-montaigne.fr/wp-content/uploads/2021/01/visuel_1.png 730w"></a></figure></div></div>')
+                  Wordpress.clean_html('<div class="wp-block-group"><div class="wp-block-group__inner-container"><div class="wp-block-columns"><div class="wp-block-column"><div class="wp-block-image"><figure class="alignright size-medium is-resized"><a href="https://www.iut.u-bordeaux-montaigne.fr/wp-content/uploads/2021/01/visuel_1.png" rel="lightbox[14475]"><img src="https://www.iut.u-bordeaux-montaigne.fr/wp-content/uploads/2021/01/visuel_1-240x300.png" alt="Le BUT, qu\'est-ce que c\'est ?" class="wp-image-14821" width="173" height="216" srcset="https://www.iut.u-bordeaux-montaigne.fr/wp-content/uploads/2021/01/visuel_1-240x300.png 240w, https://www.iut.u-bordeaux-montaigne.fr/wp-content/uploads/2021/01/visuel_1.png 730w"></a></figure></div></div>')
 
 
   end
 
+  test "convert &nbsp; in titles" do
+    assert_equal  ' ',
+                  Wordpress.clean_string '&nbsp;'
+  end
+
   test "authorize iframes" do
 
   end
-- 
GitLab