Exemplo n.º 1
0
 function let(LoaderInterface $loader, Collection $resourcesToThemes, ThemeInterface $theme)
 {
     $theme->getLogicalName()->willReturn("sylius/sample-theme");
     $resourcesToThemes->get(realpath($this->getThemeTranslationResourcePath()))->willReturn($theme);
     $resourcesToThemes->get(realpath($this->getVanillaTranslationResourcePath()))->willReturn(null);
     $this->beConstructedWith($loader, $resourcesToThemes);
 }
 function it_resolves_themes(ThemeRepositoryInterface $themeRepository, ThemeInterface $firstTheme, ThemeInterface $secondTheme)
 {
     $firstTheme->getLogicalName()->willReturn("foo/bar1");
     $firstTheme->getParentsNames()->willReturn(["foo/bar2"]);
     $secondTheme->getLogicalName()->willReturn("foo/bar2");
     $secondTheme->getParentsNames()->willReturn([]);
     $themeRepository->findByLogicalName("foo/bar1")->willReturn($firstTheme);
     $themeRepository->findByLogicalName("foo/bar2")->willReturn($secondTheme);
     $this->getDependencies($firstTheme)->shouldReturn([$secondTheme]);
 }
 function it_adds_theme_parents_to_context_while_setting_theme(ThemeDependenciesResolverInterface $themeDependenciesResolver, ThemeInterface $firstTheme, ThemeInterface $secondTheme)
 {
     $firstTheme->getLogicalName()->willReturn("foo/bar1");
     $firstTheme->getParentsNames()->willReturn(["foo/bar2"]);
     $secondTheme->getLogicalName()->willReturn("foo/bar2");
     $secondTheme->getParentsNames()->willReturn([]);
     $themeDependenciesResolver->getDependencies($firstTheme)->shouldBeCalled()->willReturn([$secondTheme]);
     $this->setTheme($firstTheme);
     $this->getThemes()->shouldHaveCount(2);
     $this->getThemes()->shouldReturn([$firstTheme, $secondTheme]);
 }
 /**
  * {@inheritdoc}
  */
 public function getDependencies(ThemeInterface $theme)
 {
     $parents = [];
     $parentsNames = $theme->getParentsNames();
     foreach ($parentsNames as $parentName) {
         $parent = $this->themeRepository->findByLogicalName($parentName);
         if (null === $parent) {
             throw new \InvalidArgumentException(sprintf('Theme "%s" not found (required by theme "%s")!', $parentName, $theme->getLogicalName()), 0);
         }
         $parents = array_merge($parents, [$parent], $this->getDependencies($parent));
     }
     return $parents;
 }
 function it_returns_null_if_theme_with_given_logical_name_is_not_found(ThemeInterface $theme)
 {
     $this->beConstructedWith([$theme]);
     $theme->getLogicalName()->willReturn("foo/bar");
     $this->findByLogicalName("blah/blah")->shouldReturn(null);
 }
 function it_returns_modified_path_if_its_referencing_bundle_asset(ThemeInterface $theme)
 {
     $theme->getLogicalName()->shouldBeCalled()->willReturn("sylius/test-theme");
     $this->resolve('bundles/asset.min.js', $theme)->shouldReturn('bundles/_theme/sylius/test-theme/asset.min.js');
 }
 /**
  * @param TemplateReferenceInterface $template
  * @param ThemeInterface|null $theme
  *
  * @return string
  */
 private function getCacheKey(TemplateReferenceInterface $template, ThemeInterface $theme = null)
 {
     $key = $template->getLogicalName();
     if (null !== $theme) {
         $key .= '|' . $theme->getLogicalName();
     }
     return $key;
 }
Exemplo n.º 8
0
 /**
  * {@inheritdoc}
  */
 public function resolve($path, ThemeInterface $theme)
 {
     return str_replace('bundles/', 'bundles/_theme/' . $theme->getLogicalName() . '/', $path);
 }