1<?php 2 3namespace dokuwiki\plugin\struct\test\types; 4 5use dokuwiki\plugin\struct\test\mock\AccessTable; 6use dokuwiki\plugin\struct\test\mock\Dropdown; 7use dokuwiki\plugin\struct\test\StructTest; 8 9/** 10 * Testing the Dropdown Type 11 * 12 * @group plugin_struct 13 * @group plugins 14 */ 15class DropdownTest extends StructTest 16{ 17 18 protected function preparePages() 19 { 20 $this->loadSchemaJSON('dropdowns'); 21 $now = time(); 22 $this->saveData( 23 'test1', 24 'dropdowns', 25 [ 26 'drop1' => '["test1",1]', 'drop2' => '["test1",1]', 'drop3' => 'John' 27 ], 28 $now 29 ); 30 $this->saveData( 31 'test2', 32 'dropdowns', 33 [ 34 'drop1' => '["test1",2]', 'drop2' => '["test1",2]', 'drop3' => 'Jane' 35 ], 36 $now 37 ); 38 $this->saveData( 39 'test3', 40 'dropdowns', 41 [ 42 'drop1' => '["test1",3]', 'drop2' => '["test1",3]', 'drop3' => 'Tarzan' 43 ], 44 $now 45 ); 46 } 47 48 49 public function test_data() 50 { 51 $this->preparePages(); 52 53 $access = AccessTable::getPageAccess('dropdowns', 'test1'); 54 $data = $access->getData(); 55 56 $this->assertEquals('John', $data['drop3']->getValue()); 57 $this->assertEquals('John', $data['drop3']->getRawValue()); 58 $this->assertEquals('John', $data['drop3']->getDisplayValue()); 59 60 $R = new \Doku_Renderer_xhtml(); 61 $data['drop3']->render($R, 'xhtml'); 62 $this->assertEquals('John', $R->doc); 63 } 64 65 66 public function test_getOptions() 67 { 68 // fixed values 69 $dropdown = new Dropdown( 70 [ 71 'values' => 'John, Jane, Tarzan', 72 ], 73 'test', 74 false, 75 0 76 ); 77 $expect = array( 78 '' => '', 79 'Jane' => 'Jane', 80 'John' => 'John', 81 'Tarzan' => 'Tarzan' 82 ); 83 $this->assertEquals($expect, $dropdown->getOptions()); 84 } 85 86} 87