Passed
Push — 4.0 ( d290ee...0e8d28 )
by
unknown
14:09 queued 06:48
created

TinyMCEConfigTest   A

Complexity

Total Complexity 4

Size/Duplication

Total Lines 26
Duplicated Lines 0 %

Importance

Changes 0
Metric Value
dl 0
loc 26
rs 10
c 0
b 0
f 0
wmc 4

1 Method

Rating   Name   Duplication   Size   Complexity  
A testLanguagesValid() 0 21 4
1
<?php
2
3
namespace SilverStripe\Forms\Tests\HTMLEditor;
4
5
use SilverStripe\Control\Director;
6
use SilverStripe\Core\Manifest\ModuleResourceLoader;
7
use SilverStripe\Dev\SapphireTest;
8
use SilverStripe\Forms\HTMLEditor\TinyMCEConfig;
9
10
class TinyMCEConfigTest extends SapphireTest
11
{
12
    /**
13
     * Ensure that all TinyMCEConfig.tinymce_lang are valid
14
     */
15
    public function testLanguagesValid()
16
    {
17
        $configDir = TinyMCEConfig::config()->get('base_dir');
18
        if (!$configDir) {
19
            $this->markTestSkipped("Test skipped without TinyMCE resources folder being installed");
20
        }
21
22
        $langs = Director::baseFolder().'/'.ModuleResourceLoader::resourcePath($configDir).'/langs';
23
24
        // Test all langs exist as real files
25
        foreach (TinyMCEConfig::config()->get('tinymce_lang') as $locale => $resource) {
26
            // Check valid
27
            $this->assertFileExists(
28
                "{$langs}/{$resource}.js",
29
                "Locale code {$locale} maps to {$resource}.js which exists"
30
            );
31
            // Check we don't simplify to locale when a specific version exists
32
            if (strpos($resource, '_') === false) {
33
                $this->assertFileNotExists(
34
                    "{$langs}/{$locale}.js",
35
                    "Locale code {$locale} doesn't map to simple {$resource}.js when a better {$locale}.js is available"
36
                );
37
            }
38
        }
39
    }
40
}
41