require 'spec_helper' describe Orthotypo::Composer::Fr do it 'adds spaces before double punctuation marks' do expect("mot: suite".ortho).to(eq("mot : suite")) expect("é: suite".ortho).to(eq("é : suite")) # Pas automatisable, parce qu'on peut écrire une heure 11:20 # expect("1: suite".ortho).to(eq("1 : suite")) expect("mot; suite".ortho).to(eq("mot ; suite")) expect("mot!".ortho).to(eq("mot !")) expect("mot !".ortho).to(eq("mot !")) end it 'transforms regular spaces before double punctuation marks' do expect("mot : suite".ortho).to(eq("mot : suite")) expect("é : suite".ortho).to(eq("é : suite")) expect("1 : suite".ortho).to(eq("1 : suite")) end it 'fixes space before simple punctuation' do expect("mot , suite".ortho).to(eq("mot, suite")) expect("mot . suite".ortho).to(eq("mot. suite")) expect("l 'approche".ortho).to(eq("l'approche")) expect("l' approche".ortho).to(eq("l'approche")) end it 'fixes space after simple punctuation' do expect("mot,suite".ortho).to(eq("mot, suite")) expect("84.Paris".ortho).to(eq("84.Paris")) expect("etudiant.gouv.fr".ortho).to(eq("etudiant.gouv.fr")) expect("4,5".ortho).to(eq("4,5")) expect("4.5".ortho).to(eq("4.5")) # Le test suivant, on ne fait rien, on ne peut pas résoudre, car s'apparente au cas précédent (1984.5) # expect("Il est né en 1984.5 maisons en paille".ortho).to(eq("Il est né en 1984. 5 maisons en paille")) end it 'fixes quotation marks' do expect("«mot»".ortho).to(eq("« mot »")) expect("« mot »".ortho).to(eq("« mot »")) expect("“ mot ”".ortho).to(eq("“mot”")) expect("‹ mot ›".ortho).to(eq("‹mot›")) expect("\" mot \"".ortho).to(eq("\"mot\"")) expect("' mot '".ortho).to(eq("'mot'")) expect("( une phrase entre parenthèses )".ortho).to(eq("(une phrase entre parenthèses)")) expect('photos "On the Job", stock'.ortho).to(eq('photos "On the Job", stock')) end it 'fixes percent' do expect("10%".ortho).to(eq("10 %")) expect("10 %".ortho).to(eq("10 %")) end it 'fixes dates/time' do expect("10/01/2023 16:00".ortho).to(eq("10/01/2023 16:00")) expect("10/01/2023 16:00:00".ortho).to(eq("10/01/2023 16:00:00")) expect("10 / 01 / 2023 16:00".ortho).to(eq("10/01/2023 16:00")) expect("10 / 01 / 2023 16 : 00".ortho).to(eq("10/01/2023 16:00")) expect("10 octobre 2023 16:00".ortho).to(eq("10 octobre 2023 16:00")) end it 'does well with HTML' do expect("
Marie Dewet, Co-fondatrice de MaisonCléo nous apporte ses lumières.
".ortho).to(eq("Marie Dewet, Co-fondatrice de MaisonCléo nous apporte ses lumières.
")) expect("Nous aimons la qualité
".ortho).to(eq("Nous aimons la qualité
")) expect('Série de photos "On the Job", Death to the stock
'.ortho).to(eq('Série de photos "On the Job", Death to the stock
')) end it 'manages linebreaks' do expect("A parallel between wildlife and urban ensembles.\r\rShot during summer 2014 on our trip from north to south of Portugal.".ortho).to(eq("A parallel between wildlife and urban ensembles.