13 $DB->Query(
"DELETE FROM FolderContentTypes WHERE " 14 .
"TypeName='".self::TYPE_NAME.
"'");
26 $TestFolder = $Factory->CreateFolder(
"Resource");
28 $TestFolder->AppendItem(1);
29 $this->CheckContents( $TestFolder, array(1) );
31 $TestFolder->AppendItem(2);
32 $this->CheckContents( $TestFolder, array(1,2) );
34 $TestFolder->Delete();
44 $TestFolder = $Factory->CreateFolder(
"Resource");
46 $TestFolder->PrependItem(1);
47 $this->CheckContents( $TestFolder, array(1) );
49 $TestFolder->PrependItem(2);
50 $this->CheckContents( $TestFolder, array(2,1) );
52 $TestFolder->Delete();
64 $TestFolder = $Factory->CreateFolder(
"Resource");
66 # insert to empty list 67 $TestFolder->InsertItemBefore(100, 1);
68 $this->CheckContents($TestFolder, array(1) );
70 # insert before non-existent item 71 $TestFolder->InsertItemBefore(100, 2);
72 $this->CheckContents($TestFolder, array(2,1) );
74 # insert before beginning 75 $TestFolder->InsertItemBefore(2, 3);
76 $this->CheckContents($TestFolder, array(3,2,1) );
79 $TestFolder->InsertItemBefore(1, 4);
80 $this->CheckContents($TestFolder, array(3,2,4,1) );
82 # insert in the middle 83 $TestFolder->InsertItemBefore(4, 5);
84 $this->CheckContents($TestFolder, array(3,2,5,4,1) );
86 $TestFolder->Delete();
98 $TestFolder = $Factory->CreateFolder(
"Resource");
100 # insert to empty list 101 $TestFolder->InsertItemAfter(100, 1);
102 $this->CheckContents( $TestFolder, array(1) );
104 # insert before non-existent item 105 $TestFolder->InsertItemAfter(100, 2);
106 $this->CheckContents( $TestFolder, array(1,2) );
108 # insert after beginning 109 $TestFolder->InsertItemAfter(1, 3);
110 $this->CheckContents( $TestFolder, array(1,3,2) );
113 $TestFolder->InsertItemAfter(2, 4);
114 $this->CheckContents( $TestFolder, array(1,3,2,4) );
116 # insert in the middle 117 $TestFolder->InsertItemAfter(3, 5);
118 $this->CheckContents( $TestFolder, array(1,3,5,2,4) );
120 $TestFolder->Delete();
135 $TestFolder = $Factory->CreateMixedFolder();
137 $TestFolder->AppendItems( array(1,2,3), self::TYPE_NAME);
138 $this->CheckContentsMixed($TestFolder, array(1,2,3) );
140 $TestFolder->Delete();
154 $TestFolder = $Factory->CreateFolder(
"Resource");
156 # preload the folder wtih 1:5 157 $TestFolder->AppendItems( array(1,2,3,4,5) );
158 $this->CheckContents( $TestFolder, array(1,2,3,4,5) );
160 # test the offset and limit of GetItemIds() 162 array(3,4,5), $TestFolder->GetItemIds(2) );
164 array(3,4), $TestFolder->GetItemIds(2,2) );
166 # test removing items from the beginning, end, and middle of the folder 167 $TestFolder->RemoveItem(1);
168 $this->CheckContents( $TestFolder, array(2,3,4,5) );
170 $TestFolder->RemoveItem(5);
171 $this->CheckContents( $TestFolder, array(2,3,4) );
173 $TestFolder->RemoveItem(3);
174 $this->CheckContents( $TestFolder, array(2,4) );
176 # make sure that the FolderId is an int 178 is_int($TestFolder->Id()) );
180 # test the setter/getter methods for this folder 181 $TestFolder->Name(
"My Test Folder");
183 "My Test Folder", $TestFolder->Name() );
185 # check the autogenerated normalized name 187 "mytestfolder", $TestFolder->Normalizedname());
189 $TestFolder->NormalizedName(
"mynewname");
191 "mynewname", $TestFolder->NormalizedName());
193 # blank the normalized name so it will reset 194 $TestFolder->NormalizedName(
'');
196 "mytestfolder", $TestFolder->NormalizedName() );
198 $TestFolder->OwnerId(5);
200 5, $TestFolder->OwnerId() );
202 $TestFolder->Note(
"Test folder note");
204 "Test folder note", $TestFolder->Note() );
206 $TestFolder->IsShared(1);
208 1, $TestFolder->IsShared() );
210 # and test folder item notes 211 $TestFolder->NoteForItem( 4,
"Test Item Note");
213 "Test Item Note", $TestFolder->NoteForItem( 4 ) );
215 # test getting an existing folder 216 $TestFolderCopy =
new Folder( $TestFolder->Id() );
218 # verify that TestFolder and TestFolderCopy refer to the same FolderId 221 $TestFolderCopy->Id() );
223 # test getting a nonexistent folder 225 $TestFolderCopy =
new Folder(PHP_INT_MAX);
226 $this->assertTrue(FALSE);
233 $TestFolder->Delete();
243 private function CheckContents($TestFolder, $TgtItemIds)
246 count($TgtItemIds), $TestFolder->GetItemCount() );
248 $TgtItemIds, $TestFolder->GetItemIds() );
258 private function CheckContentsMixed($TestFolder, $TgtItemIds)
261 count($TgtItemIds), $TestFolder->GetItemCount() );
264 foreach ($TgtItemIds as $ItemId)
266 $TgtVal []= array(
"ID"=>$ItemId,
"Type"=> self::TYPE_NAME);
270 $TgtVal, $TestFolder->GetItemIds() );
SQL database abstraction object with smart query caching.
testPrependItem()
Verify that items can be prepended and appear in the correct order.
testInsertItemBefore()
Verify that InsertItemBefore() works correctly on empty lists, when the tgt is nonexistent, and at the beginning, middle, and end of a list.
testAppendItem()
Verify that items can be appended and appear in the corect order.
Factory object for Folder class, used to retrieve and manage Folders and groups of Folders...
Folder object used to create and manage groups of items.
testMiscRemaining()
Test all remaining misc functions.
static tearDownAfterClass()
Delete XX-Test-XX folder conte type that was created for testing.
testInsertItemAfter()
Verify that InsertItemAfter() works correctly on empty lists, when the tgt is nonexistent, and at the beginning, middle, and end of a list.
testMixedContent()
Test creation of a mixed content folder with AppendItems() inserting some data into it...