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