MultilingualTest   A
last analyzed

Complexity

Total Complexity 5

Size/Duplication

Total Lines 54
Duplicated Lines 0 %

Importance

Changes 2
Bugs 0 Features 0
Metric Value
eloc 27
c 2
b 0
f 0
dl 0
loc 54
rs 10
wmc 5

5 Methods

Rating   Name   Duplication   Size   Complexity  
A testImportExport() 0 11 1
A testHelper() 0 7 1
A testCollector() 0 10 1
A testTranslator() 0 9 1
A testWithLocale() 0 7 1
1
<?php
2
3
namespace LeKoala\Multilingual\Test;
4
5
use SilverStripe\Dev\SapphireTest;
6
use LeKoala\Multilingual\LangHelper;
7
use LeKoala\Multilingual\GoogleTranslateHelper;
8
use LeKoala\Multilingual\MultilingualTextCollector;
9
use LeKoala\Multilingual\TranslationsImportExportTask;
10
use SilverStripe\i18n\i18n;
11
12
class MultilingualTest extends SapphireTest
13
{
14
    public function testHelper()
15
    {
16
        $lang = LangHelper::get_lang();
17
        $this->assertTrue(strlen($lang) == 2, "It is $lang");
18
19
        $locale = LangHelper::get_locale();
20
        $this->assertTrue(strlen($locale) > 2, "It is $locale");
21
    }
22
23
    public function testCollector()
24
    {
25
        // it says locale but it's a lang => looking for {lang}.yml
26
        $locale = LangHelper::get_lang();
27
        $collector = new MultilingualTextCollector($locale);
28
        $result = $collector->collect([
29
            'silverstripe/framework'
30
        ], true);
31
32
        $this->assertNotEmpty($result);
33
    }
34
35
    public function testImportExport()
36
    {
37
        $task = new TranslationsImportExportTask();
38
39
        ob_start();
40
        $task->debug = true;
41
        $task->exportTranslations('silverstripe/framework', false, ['en', 'fr']);
42
        $res = ob_get_contents();
43
        ob_end_clean();
44
45
        $this->assertStringContainsString("Éditer ce fichier", $res);
46
    }
47
48
    public function testTranslator()
49
    {
50
        $sourceText = 'Hello';
51
52
        $translation = GoogleTranslateHelper::google_translate($sourceText, 'fr', 'en');
53
        $this->assertEquals('Bonjour', $translation);
54
55
        $translation = GoogleTranslateHelper::proxy_translate($sourceText, 'fr', 'en');
56
        $this->assertEquals('Bonjour', $translation);
57
    }
58
59
    public function testWithLocale()
60
    {
61
        LangHelper::withLocale('fr_FR', function () {
62
            self::assertEquals("fr_FR", i18n::get_locale());
63
        });
64
        LangHelper::withLocale('en_US', function () {
65
            self::assertEquals("en_US", i18n::get_locale());
66
        });
67
    }
68
}
69