importDataSet(dirname(__FILE__) . '/fixtures/dbDefaultWorkspaces.xml'); $service = new Tx_Workspaces_Service_Workspaces(); $result = $service->selectVersionsInWorkspace(90); $this->assertTrue(empty($result), "The workspace 90 contains no changes and the result was supposed to be empty"); $this->assertTrue(is_array($result), "Even the empty result from workspace 90 is supposed to be an array"); } /** * @test **/ public function versionsFromSpecificWorkspaceCanBeFound() { $this->importDataSet(dirname(__FILE__) . '/fixtures/dbDefaultWorkspaces.xml'); $this->importDataSet(dirname(__FILE__) . '/fixtures/dbDefaultPages.xml'); $service = new Tx_Workspaces_Service_Workspaces(); $result = $service->selectVersionsInWorkspace(91, 0, -99, 2); $this->assertTrue(is_array($result), "The result from workspace 91 is supposed to be an array"); $this->assertEquals(1, sizeof($result['pages']), "The result is supposed to contain one version for this page in workspace 91"); $this->assertEquals(102, $result['pages'][0]['uid'], "Wrong workspace overlay record picked"); $this->assertEquals(1, $result['pages'][0]['livepid'], "Real pid wasn't resolved correctly"); } /** * @test **/ public function versionsFromAllWorkspaceCanBeFound() { $this->importDataSet(dirname(__FILE__) . '/fixtures/dbDefaultWorkspaces.xml'); $this->importDataSet(dirname(__FILE__) . '/fixtures/dbDefaultPages.xml'); $service = new Tx_Workspaces_Service_Workspaces(); $result = $service->selectVersionsInWorkspace(Tx_Workspaces_Service_Workspaces::SELECT_ALL_WORKSPACES, 0, -99, 2); $this->assertTrue(is_array($result), "The result from workspace 91 is supposed to be an array"); $this->assertEquals(2, sizeof($result['pages']), "The result is supposed to contain one version for this page in workspace 91"); } /** * @test **/ public function versionsCanBeFoundRecursive() { $this->importDataSet(dirname(__FILE__) . '/fixtures/dbDefaultWorkspaces.xml'); $this->importDataSet(dirname(__FILE__) . '/fixtures/dbDefaultPages.xml'); $service = new Tx_Workspaces_Service_Workspaces(); $result = $service->selectVersionsInWorkspace(91, 0, -99, 1, 99); $this->assertTrue(is_array($result), "The result from workspace 91 is supposed to be an array"); $this->assertEquals(4, sizeof($result['pages']), "The result is supposed to contain four versions for this page in workspace 91"); } /** * @test **/ public function versionsCanBeFilteredToSpecificStage() { $this->importDataSet(dirname(__FILE__) . '/fixtures/dbDefaultWorkspaces.xml'); $this->importDataSet(dirname(__FILE__) . '/fixtures/dbDefaultPages.xml'); $service = new Tx_Workspaces_Service_Workspaces(); // testing stage 1 $result = $service->selectVersionsInWorkspace(91, 0, 1, 1, 99); $this->assertTrue(is_array($result), "The result from workspace 91 is supposed to be an array"); $this->assertEquals(2, sizeof($result['pages']), "The result is supposed to contain two versions for this page in workspace 91"); $this->assertEquals(102, $result['pages'][0]['uid'], "First records is supposed to have the uid 102"); $this->assertEquals(105, $result['pages'][1]['uid'], "First records is supposed to have the uid 105"); // testing stage 2 $result = $service->selectVersionsInWorkspace(91, 0, 2, 1, 99); $this->assertTrue(is_array($result), "The result from workspace 91 is supposed to be an array"); $this->assertEquals(2, sizeof($result['pages']), "The result is supposed to contain two versions for this page in workspace 91"); $this->assertEquals(104, $result['pages'][0]['uid'], "First records is supposed to have the uid 106"); $this->assertEquals(106, $result['pages'][1]['uid'], "First records is supposed to have the uid 106"); } /** * @test **/ public function versionsCanBeFilteredToSpecificLifecycleStep() { $this->importDataSet(dirname(__FILE__) . '/fixtures/dbDefaultWorkspaces.xml'); $this->importDataSet(dirname(__FILE__) . '/fixtures/dbDefaultPages.xml'); $service = new Tx_Workspaces_Service_Workspaces(); // testing all "draft" records $result = $service->selectVersionsInWorkspace(91, 1, -99, 1, 99); $this->assertTrue(is_array($result), "The result from workspace 91 is supposed to be an array"); $this->assertEquals(2, sizeof($result['pages']), "The result is supposed to contain three versions for this page in workspace 91"); // testing all "archive" records $result = $service->selectVersionsInWorkspace(91, 2, -99, 1, 99); $this->assertEquals(2, sizeof($result['pages']), "The result is supposed to contain two versions for this page in workspace 91"); // testing both types records $result = $service->selectVersionsInWorkspace(91, 0, -99, 1, 99); $this->assertEquals(4, sizeof($result['pages']), "The result is supposed to contain two versions for this page in workspace 91"); } /** * The only change which we could find here actually moved away from this * branch of the tree - therefore we're not supposed to find anything here * * @test **/ public function movedElementsCanNotBeFoundAtTheirOrigin() { $this->importDataSet(dirname(__FILE__) . '/fixtures/dbDefaultWorkspaces.xml'); $this->importDataSet(dirname(__FILE__) . '/fixtures/dbMovedContent.xml'); // Test if the placeholder can be found when we ask using recursion (same result) $service = new Tx_Workspaces_Service_Workspaces(); $result = $service->selectVersionsInWorkspace(91, 0, -99, 2, 99); $this->assertEquals(0, sizeof($result['pages']), "Changes should not show up in this branch of the tree within workspace 91"); $this->assertEquals(0, sizeof($result['tt_content']), "Changes should not show up in this branch of the tree within workspace 91"); } /** * @test **/ public function movedElementsCanBeFoundAtTheirDestination() { $this->importDataSet(dirname(__FILE__) . '/fixtures/dbDefaultWorkspaces.xml'); $this->importDataSet(dirname(__FILE__) . '/fixtures/dbMovedContent.xml'); // Test if the placeholder can be found when we ask using recursion (same result) $service = new Tx_Workspaces_Service_Workspaces(); $result = $service->selectVersionsInWorkspace(91, 0, -99, 5, 99); $this->assertEquals(1, sizeof($result['pages']), "Wrong amount of page versions found within workspace 91"); $this->assertEquals(103, $result['pages'][0]['uid'], "Wrong move-to pointer found for page 3 in workspace 91"); $this->assertEquals(5, $result['pages'][0]['wspid'], "Wrong workspace-pointer found for page 3 in workspace 91"); $this->assertEquals(2, $result['pages'][0]['livepid'], "Wrong live-pointer found for page 3 in workspace 91"); $this->assertEquals(1, sizeof($result['tt_content']), "Wrong amount of tt_content versions found within workspace 91"); $this->assertEquals(106, $result['tt_content'][0]['uid'], "Wrong move-to pointer found for page 3 in workspace 91"); $this->assertEquals(7, $result['tt_content'][0]['wspid'], "Wrong workspace-pointer found for page 3 in workspace 91"); $this->assertEquals(2, $result['tt_content'][0]['livepid'], "Wrong live-pointer found for page 3 in workspace 91"); } /** * @test **/ public function movedElementsCanBeFoundUsingTheirLiveUID() { $this->importDataSet(dirname(__FILE__) . '/fixtures/dbDefaultWorkspaces.xml'); $this->importDataSet(dirname(__FILE__) . '/fixtures/dbMovedContent.xml'); // Test if the placeholder can be found when we ask using recursion (same result) $service = new Tx_Workspaces_Service_Workspaces(); $result = $service->selectVersionsInWorkspace(91, 0, -99, 3, 99); $this->assertEquals(1, sizeof($result), "Wrong amount of versions found within workspace 91"); $this->assertEquals(1, sizeof($result['pages']), "Wrong amount of page versions found within workspace 91"); $this->assertEquals(103, $result['pages'][0]['uid'], "Wrong move-to pointer found for page 3 in workspace 91"); } /** * */ public function setUp() { $this->createDatabase(); $db = $this->useTestDatabase(); $this->importStdDB(); $this->importExtensions(array('cms')); } /** * */ public function tearDown() { $this->cleanDatabase(); $this->dropDatabase(); $GLOBALS['TYPO3_DB']->sql_select_db(TYPO3_db); } } ?>