themePath = __DIR__ . '/../../fixtures/themes/test'; $datasource = new FileDatasource($this->themePath, new Filesystem); $resolver = new Resolver(['theme1' => $datasource]); $resolver->setDefaultDatasource('theme1'); Model::setDatasourceResolver($resolver); TranslatablePage::extend(function($page) { if (!$page->isClassExtendedWith('RainLab\Translate\Behaviors\TranslatablePage')) { $page->addDynamicProperty('translatable', ['title']); $page->extendClassWith('RainLab\Translate\Behaviors\TranslatablePage'); } }); } public function tearDown(): void { File::deleteDirectory($this->themePath.'/pages'); } public function testUseFallback() { $page = TranslatablePage::create([ 'fileName' => 'translatable', 'title' => 'english title', 'url' => '/test', ]); $page->translateContext('fr'); $this->assertEquals('english title', $page->title); $page->noFallbackLocale()->translateContext('fr'); $this->assertEquals(null, $page->title); } public function testAlternateLocale() { $page = TranslatablePage::create([ 'fileName' => 'translatable', 'title' => 'english title', 'url' => '/test', ]); $page->setAttributeTranslated('title', 'titre francais', 'fr'); $title_en = $page->title; $this->assertEquals('english title', $title_en); $page->translateContext('fr'); $title_fr = $page->title; $this->assertEquals('titre francais', $title_fr); } }