Changeset 722 for trunk/tests


Ignore:
Timestamp:
May 3, 2020 9:58:17 PM (4 years ago)
Author:
anonymous
Message:

Refactor URLSlug() and cleanFileName(). Add simplifyAccents().

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/tests/UtilitiesTest.php

    r653 r722  
    283283        }
    284284    }
     285
     286    function test_URLSlug()
     287    {
     288        $strings = [
     289            'This becomes a slug' => 'this-becomes-a-slug',
     290            'http://䟋子.卷筒纞/?x=y&1=2#asdf' => 'http-%e4%be%8b%e5%ad%90-%e5%8d%b7%e7%ad%92%e7%ba%b8-x-yand1-2-asdf',
     291            'Ä À Ö ö Ü ÃŒ ß a Æ Ê Ø Þ Ã
     292 Ã¥' => 'a-a-o-o-u-u-sz-a-ae-ae-o-o-a-a',
     293            ' - ' => '',
     294            '' => '',
     295            ' ' => '',
     296            '?' => '',
     297            'a file.JPG' => 'a-file-jpg',
     298            '/a/path/file.JPG' => 'a-path-file-jpg',
     299            '/a/directory/' => 'a-directory',
     300            '/' => '',
     301            'this-is-already-a-slug' => 'this-is-already-a-slug',
     302            'HTML entities ok—or not!' => 'html-entities-ok-or-not',
     303            '<p>tags
</p>' => 'ltpgttagshelliplt-pgt',
     304            'Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet.' => 'lorem-ipsum-dolor-sit-amet-consetetur-sadipscing-elitr-sed-diam-nonumy-eirmod-tempor-invidunt-ut-labore-et-dolore-magna-aliquyam-erat-sed-diam-voluptua-at-vero-eos-et-accusam-et-justo-duo-dolores-et-ea-rebum-stet-clita-kasd-gubergren-no-sea-takimata-sanctus-est-lorem-ipsum-dolor-sit-amet-lorem-ipsum-dolor-sit-amet-consetetur-sadipscing-elitr-sed-diam-nonumy-eirmod-tempor-invidunt-ut-labore-et-dolore-magna-aliquyam-erat-sed-diam-voluptua-at-vero-eos-et-accusam-et-justo-duo-dolores-et-ea-rebum-stet-clita-kasd-gubergren-no-sea-takimata-sanctus-est-lorem-ipsum-dolor-sit-amet-lorem-ipsum-dolor-sit-amet-consetetur-sadipscing-elitr-sed-diam-nonumy-eirmod-tempor-invidunt-ut-labore-et-dolore-magna-aliquyam-erat-sed-diam-voluptua-at-vero-eos-et-accusam-et-justo-duo-dolores-et-ea-rebum-stet-clita-kasd-gubergren-no-sea-takimata-sanctus-est-lorem-ipsum-dolor-sit-amet',
     305            // Binary data.
     306            'xÔ‡-]ɯpı
     307o˜;ǯ)0ñ]à
     308fhH¡Êg+£KˇH
     309˙n*ƃ
     310‡Í˜ÌQÒõ.◊ulÌ≠˘yÁ˜ïu∫
     311ݢ>kƒ∑Êì+¯∞˛ ‘E
     312¬±Âh”U÷%>≈fifi≀1
     313' => 'xodagger-emacrp%c4%b1-otildecmacr0nafhhiexcleg-poundk%cb%87h-nedaggeritildeuqoo-lozulineyatildeiuintcentgtkfnofsumaei-macrinfin-enotplusmnahudividegtasymp%ef%ac%81%ef%ac%81le1',
     314            '-- repeated - characters -- so---extra - - - look-out!' => 'repeated-characters-so-extra-look-out',
     315            'NesthÀkchen\'s Teenage Years' => 'nesthakchens-teenage-years',
     316            'ገχαρΜεῖς Akharneîs' => '%e1%bc%88chialpharhonuepsilon%e1%bf%96sigmaf-akharneis',
     317            'АМтПМ ПавлПвОч ЧеÑ
     318Пв' => '%d0%90%d0%bd%d1%82%d0%be%d0%bd-%d0%9f%d0%b0%d0%b2%d0%bb%d0%be%d0%b2%d0%b8%d1%87-%d0%a7%d0%b5%d1%85%d0%be%d0%b2',
     319            'Demain dÚs l\'aube' => 'demain-des-laube',
     320            'Demain dÚs l’aube' => 'demain-des-laube',
     321        ];
     322        foreach ($strings as $input => $expected) {
     323            // printf("%s\n", URLSlug($input));
     324            $result = URLSlug($input);
     325            $this->assertEquals($expected, $result, sprintf('Failed with input: %s', $input));
     326        }
     327    }
    285328}
Note: See TracChangeset for help on using the changeset viewer.