Ejemplo n.º 1
0
 /**
  * Test Set Site Layout
  *
  * @return void
  *
  * @covers \Rcm\EventListener\DispatchListener
  */
 public function testSetSiteLayout()
 {
     $favicon = 'someFavicon';
     $title = 'My Site Title';
     $layout = 'myLayout';
     $mockLayoutManager = $this->getMockBuilder('Rcm\\Service\\LayoutManager')->disableOriginalConstructor()->getMock();
     $mockLayoutManager->expects($this->any())->method('getSiteLayout')->will($this->returnValue($layout));
     $currentSite = new Site();
     $currentSite->setSiteId(1);
     $currentSite->setFavIcon($favicon);
     $currentSite->setSiteTitle($title);
     $currentSite->setSiteLayout($layout);
     $testCase = [['Rcm\\Service\\LayoutManager', $mockLayoutManager], ['Rcm\\Service\\CurrentSite', $currentSite]];
     // Zend\ServiceManager\ServiceLocatorInterface
     $mockServiceLocator = $this->getMockBuilder('\\Zend\\ServiceManager\\ServiceLocatorInterface')->disableOriginalConstructor()->getMock();
     $mockServiceLocator->expects($this->any())->method('get')->will($this->returnValueMap($testCase));
     $listener = new DispatchListener($mockServiceLocator);
     $event = new MvcEvent();
     $listener->setSiteLayout($event);
     $view = $event->getViewModel();
     $template = $view->getTemplate();
     $this->assertEquals('layout/' . $layout, $template);
 }
Ejemplo n.º 2
0
 /**
  * Test Clone
  *
  * @return void
  *
  * @covers \Rcm\Entity\Site
  */
 public function testClone()
 {
     $domain = new Domain();
     $domain->setDomainId(23);
     $language = new Language();
     $language->setLanguageId(55);
     $country = new Country();
     $country->setIso3('USA');
     $site = ['siteId' => '1000', 'owner' => 'wshafer', 'domain' => $domain, 'theme' => 'theme1', 'siteLayout' => 'layoutOne', 'siteTitle' => 'My Title', 'language' => $language, 'status' => Site::STATUS_ACTIVE, 'favicon' => 'icon.jpg', 'loginRequired' => true, 'loginPage' => 'login.html', 'aclRoles' => 'role1,role2', 'pages' => [0 => ['pageId' => '200', 'name' => 'pageOne', 'author' => 'Westin Shafer', 'createdDate' => new \DateTime('yesterday'), 'lastPublished' => new \DateTime('yesterday'), 'revisions' => [0 => ['revisionId' => 100, 'author' => 'Westin Shafer', 'createdDate' => new \DateTime('yesterday'), 'publishedDate' => new \DateTime('yesterday'), 'published' => true, 'md5' => 'revisionMD5', 'instances' => [0 => ['pluginWrapperId' => 43, 'layoutContainer' => 'layoutOne', 'renderOrder' => 0, 'height' => 32, 'width' => 100, 'divFloat' => 'right', 'instance' => ['pluginInstanceId' => 80, 'plugin' => 'MockPlugin', 'siteWide' => false, 'displayName' => null, 'instanceConfig' => ['var1' => 1, 'var2' => 2], 'md5' => 'firstMd5']], 1 => ['pluginWrapperId' => 45, 'layoutContainer' => 'layoutTwo', 'renderOrder' => 1, 'height' => 33, 'width' => 101, 'divFloat' => 'none', 'instance' => ['pluginInstanceId' => 81, 'plugin' => 'MockPlugin2', 'siteWide' => true, 'displayName' => 'TestSiteWide', 'instanceConfig' => ['var3' => 3, 'var4' => 4], 'md5' => 'secondMd5']]]], 1 => ['revisionId' => 101, 'author' => 'Westin Shafer', 'createdDate' => new \DateTime('-1 month'), 'publishedDate' => new \DateTime('-1 month'), 'published' => false, 'md5' => 'revision2MD5', 'instances' => [0 => ['pluginWrapperId' => 47, 'layoutContainer' => 'layoutThree', 'renderOrder' => 2, 'height' => 33, 'width' => 102, 'divFloat' => 'right', 'instance' => ['pluginInstanceId' => 82, 'plugin' => 'MockPlugin3', 'siteWide' => false, 'displayName' => null, 'instanceConfig' => ['var1' => 1, 'var2' => 2], 'md5' => 'firstMd5']], 1 => ['pluginWrapperId' => 49, 'layoutContainer' => 'layoutFour', 'renderOrder' => 3, 'height' => 34, 'width' => 103, 'divFloat' => 'left', 'instance' => ['pluginInstanceId' => 83, 'plugin' => 'MockPlugin4', 'siteWide' => true, 'displayName' => 'TestSiteWide2', 'instanceConfig' => ['var3' => 3, 'var4' => 4], 'md5' => 'secondMd5']]]]]], 1 => ['pageId' => '200', 'name' => 'pageOne', 'author' => 'Westin Shafer', 'createdDate' => new \DateTime('yesterday'), 'lastPublished' => new \DateTime('yesterday'), 'revisions' => [0 => ['revisionId' => 100, 'author' => 'Westin Shafer', 'createdDate' => new \DateTime('yesterday'), 'publishedDate' => new \DateTime('yesterday'), 'published' => true, 'md5' => 'revisionMD5', 'instances' => [0 => ['pluginWrapperId' => 61, 'layoutContainer' => 'layoutOne', 'renderOrder' => 0, 'height' => 32, 'width' => 100, 'divFloat' => 'right', 'instance' => ['pluginInstanceId' => 84, 'plugin' => 'MockPlugin', 'siteWide' => false, 'displayName' => null, 'instanceConfig' => ['var1' => 1, 'var2' => 2], 'md5' => 'firstMd5']], 1 => ['pluginWrapperId' => 60, 'layoutContainer' => 'layoutTwo', 'renderOrder' => 1, 'height' => 33, 'width' => 101, 'divFloat' => 'none', 'instance' => ['pluginInstanceId' => 85, 'plugin' => 'MockPlugin2', 'siteWide' => true, 'displayName' => 'TestSiteWide', 'instanceConfig' => ['var3' => 3, 'var4' => 4], 'md5' => 'secondMd5']]]], 1 => ['revisionId' => 101, 'author' => 'Westin Shafer', 'createdDate' => new \DateTime('-1 month'), 'publishedDate' => new \DateTime('-1 month'), 'published' => false, 'md5' => 'revision2MD5', 'instances' => [0 => ['pluginWrapperId' => 63, 'layoutContainer' => 'layoutThree', 'renderOrder' => 2, 'height' => 33, 'width' => 102, 'divFloat' => 'right', 'instance' => ['pluginInstanceId' => 86, 'plugin' => 'MockPlugin3', 'siteWide' => false, 'displayName' => null, 'instanceConfig' => ['var1' => 1, 'var2' => 2], 'md5' => 'firstMd5']], 1 => ['pluginWrapperId' => 49, 'layoutContainer' => 'layoutFour', 'renderOrder' => 3, 'height' => 34, 'width' => 103, 'divFloat' => 'left', 'instance' => ['pluginInstanceId' => 87, 'plugin' => 'MockPlugin4', 'siteWide' => true, 'displayName' => 'TestSiteWide2', 'instanceConfig' => ['var3' => 3, 'var4' => 4], 'md5' => 'secondMd5']]]]]]], 'containers' => [0 => ['containerId' => '200', 'name' => 'containerOne', 'author' => 'Westin Shafer', 'createdDate' => new \DateTime('yesterday'), 'lastPublished' => new \DateTime('yesterday'), 'revisions' => [0 => ['revisionId' => 100, 'author' => 'Westin Shafer', 'createdDate' => new \DateTime('yesterday'), 'publishedDate' => new \DateTime('yesterday'), 'published' => true, 'md5' => 'revisionMD5', 'instances' => [0 => ['pluginWrapperId' => 43, 'layoutContainer' => 'layoutOne', 'renderOrder' => 0, 'height' => 32, 'width' => 100, 'divFloat' => 'right', 'instance' => ['pluginInstanceId' => 998, 'plugin' => 'MockPlugin', 'siteWide' => false, 'displayName' => null, 'instanceConfig' => ['var1' => 1, 'var2' => 2], 'md5' => 'firstMd5']], 1 => ['pluginWrapperId' => 45, 'layoutContainer' => 'layoutTwo', 'renderOrder' => 1, 'height' => 33, 'width' => 101, 'divFloat' => 'none', 'instance' => ['pluginInstanceId' => 88, 'plugin' => 'MockPlugin2', 'siteWide' => true, 'displayName' => 'TestSiteWide', 'instanceConfig' => ['var3' => 3, 'var4' => 4], 'md5' => 'secondMd5']]]], 1 => ['revisionId' => 101, 'author' => 'Westin Shafer', 'createdDate' => new \DateTime('-1 month'), 'publishedDate' => new \DateTime('-1 month'), 'published' => false, 'md5' => 'revision2MD5', 'instances' => [0 => ['pluginWrapperId' => 47, 'layoutContainer' => 'layoutThree', 'renderOrder' => 2, 'height' => 33, 'width' => 102, 'divFloat' => 'right', 'instance' => ['pluginInstanceId' => 89, 'plugin' => 'MockPlugin3', 'siteWide' => false, 'displayName' => null, 'instanceConfig' => ['var1' => 1, 'var2' => 2], 'md5' => 'firstMd5']], 1 => ['pluginWrapperId' => 49, 'layoutContainer' => 'layoutFour', 'renderOrder' => 3, 'height' => 34, 'width' => 103, 'divFloat' => 'left', 'instance' => ['pluginInstanceId' => 90, 'plugin' => 'MockPlugin4', 'siteWide' => true, 'displayName' => 'TestSiteWide2', 'instanceConfig' => ['var3' => 3, 'var4' => 4], 'md5' => 'secondMd5']]]]]], 1 => ['containerId' => '200', 'name' => 'containerOne', 'author' => 'Westin Shafer', 'createdDate' => new \DateTime('yesterday'), 'lastPublished' => new \DateTime('yesterday'), 'revisions' => [0 => ['revisionId' => 100, 'author' => 'Westin Shafer', 'createdDate' => new \DateTime('yesterday'), 'publishedDate' => new \DateTime('yesterday'), 'published' => true, 'md5' => 'revisionMD5', 'instances' => [0 => ['pluginWrapperId' => 43, 'layoutContainer' => 'layoutOne', 'renderOrder' => 0, 'height' => 32, 'width' => 100, 'divFloat' => 'right', 'instance' => ['pluginInstanceId' => 91, 'plugin' => 'MockPlugin', 'siteWide' => false, 'displayName' => null, 'instanceConfig' => ['var1' => 1, 'var2' => 2], 'md5' => 'firstMd5']], 1 => ['pluginWrapperId' => 45, 'layoutContainer' => 'layoutTwo', 'renderOrder' => 1, 'height' => 33, 'width' => 101, 'divFloat' => 'none', 'instance' => ['pluginInstanceId' => 92, 'plugin' => 'MockPlugin2', 'siteWide' => true, 'displayName' => 'TestSiteWide', 'instanceConfig' => ['var3' => 3, 'var4' => 4], 'md5' => 'secondMd5']]]], 1 => ['revisionId' => 101, 'author' => 'Westin Shafer', 'createdDate' => new \DateTime('-1 month'), 'publishedDate' => new \DateTime('-1 month'), 'published' => false, 'md5' => 'revision2MD5', 'instances' => [0 => ['pluginWrapperId' => 47, 'layoutContainer' => 'layoutThree', 'renderOrder' => 2, 'height' => 33, 'width' => 102, 'divFloat' => 'right', 'instance' => ['pluginInstanceId' => 93, 'plugin' => 'MockPlugin3', 'siteWide' => false, 'displayName' => null, 'instanceConfig' => ['var1' => 1, 'var2' => 2], 'md5' => 'firstMd5']], 1 => ['pluginWrapperId' => 49, 'layoutContainer' => 'layoutFour', 'renderOrder' => 3, 'height' => 34, 'width' => 103, 'divFloat' => 'left', 'instance' => ['pluginInstanceId' => 94, 'plugin' => 'MockPlugin4', 'siteWide' => true, 'displayName' => 'TestSiteWide2', 'instanceConfig' => ['var3' => 3, 'var4' => 4], 'md5' => 'secondMd5']]]]]]]];
     $this->site->setSiteId($site['siteId']);
     $this->site->setDomain($site['domain']);
     $this->site->setTheme($site['theme']);
     $this->site->setSiteLayout($site['siteLayout']);
     $this->site->setSiteTitle($site['siteTitle']);
     $this->site->setLanguage($site['language']);
     $this->site->setStatus($site['status']);
     $this->site->setFavIcon($site['favicon']);
     $this->site->setLoginPage($site['loginPage']);
     foreach ($site['pages'] as $page) {
         $pageEntity = new Page();
         $pageEntity->setPageId($page['pageId']);
         $pageEntity->setName($page['name']);
         $pageEntity->setAuthor($page['author']);
         $pageEntity->setCreatedDate($page['createdDate']);
         $pageEntity->setLastPublished($page['lastPublished']);
         $pageEntity->setSite($this->site);
         foreach ($page['revisions'] as $index => $revisionData) {
             $revision = $this->getRevision($revisionData);
             if ($index === 0) {
                 $pageEntity->setPublishedRevision($revision);
             } elseif ($index === 1) {
                 $pageEntity->setStagedRevision($revision);
             }
             $pageEntity->addRevision($revision);
         }
         $this->site->addPage($pageEntity);
     }
     foreach ($site['containers'] as $container) {
         $containerEntity = new Container();
         $containerEntity->setContainerId($container['containerId']);
         $containerEntity->setName($container['name']);
         $containerEntity->setAuthor($container['author']);
         $containerEntity->setCreatedDate($container['createdDate']);
         $containerEntity->setLastPublished($container['lastPublished']);
         $containerEntity->setSite($this->site);
         foreach ($container['revisions'] as $index => $revisionData) {
             $revision = $this->getRevision($revisionData);
             if ($index === 0) {
                 $containerEntity->setPublishedRevision($revision);
             } elseif ($index === 1) {
                 $containerEntity->setStagedRevision($revision);
             }
             $containerEntity->addRevision($revision);
         }
         $this->site->addContainer($containerEntity);
     }
     /** Test site entity is setup correctly */
     $this->assertCount(1, $this->site->getPages());
     $this->assertCount(1, $this->site->getContainers());
     $original = $this->site;
     $cloned = clone $this->site;
     $this->assertNotEquals($original->getSiteId(), $cloned->getSiteId());
     $this->assertNull($cloned->getSiteId());
     $this->assertNull($cloned->getDomain());
     $this->assertEquals($original->getTheme(), $cloned->getTheme());
     $this->assertEquals($original->getSiteLayout(), $cloned->getSiteLayout());
     $this->assertEquals($original->getSiteTitle(), $cloned->getSiteTitle());
     $this->assertEquals($original->getLanguage(), $cloned->getLanguage());
     $this->assertEquals($original->getStatus(), $cloned->getStatus());
     $this->assertEquals($original->getFavIcon(), $cloned->getFavIcon());
     $this->assertEquals($original->getLoginPage(), $cloned->getLoginPage());
     $clonedPages = $cloned->getPages();
     /** @var \Rcm\Entity\Page $page */
     foreach ($clonedPages as $page) {
         $this->assertNull($page->getPageId());
         $clonedRevision = $page->getPublishedRevision();
         if (empty($clonedRevision)) {
             continue;
         }
         $this->assertNull($clonedRevision->getRevisionId());
         $clonedWrappers = $clonedRevision->getPluginWrappers();
         /** @var \Rcm\Entity\PluginWrapper $wrapper */
         foreach ($clonedWrappers as $wrapper) {
             $this->assertNull($wrapper->getPluginWrapperId());
             $this->assertNull($wrapper->getInstance()->getInstanceId());
         }
     }
     $clonedContainers = $cloned->getContainers();
     /** @var \Rcm\Entity\Container $container */
     foreach ($clonedContainers as $container) {
         $this->assertNull($container->getContainerId());
         $clonedRevision = $container->getPublishedRevision();
         if (empty($clonedRevision)) {
             continue;
         }
         $this->assertNull($clonedRevision->getRevisionId());
         $clonedWrappers = $clonedRevision->getPluginWrappers();
         /** @var \Rcm\Entity\PluginWrapper $wrapper */
         foreach ($clonedWrappers as $wrapper) {
             $this->assertNull($wrapper->getPluginWrapperId());
             $this->assertNull($wrapper->getInstance()->getInstanceId());
         }
     }
 }