forked from extern/egroupware
Add simple tests for textbox widget
This commit is contained in:
parent
567d3d0a72
commit
997c2fd1d5
120
api/src/Etemplate/Widget/test/TextboxTest.php
Normal file
120
api/src/Etemplate/Widget/test/TextboxTest.php
Normal file
@ -0,0 +1,120 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* Test for textbox
|
||||
*
|
||||
* @link http://www.egroupware.org
|
||||
* @author Nathan Gray
|
||||
* @package api
|
||||
* @subpackage etemplate
|
||||
* @copyright (c) 2017 Nathan Gray
|
||||
* @license http://opensource.org/licenses/gpl-license.php GPL - GNU General Public License
|
||||
*/
|
||||
|
||||
namespace EGroupware\Api\Etemplate\Widget;
|
||||
|
||||
require_once realpath(__DIR__.'/../../test/WidgetBaseTest.php');
|
||||
|
||||
use EGroupware\Api\Etemplate;
|
||||
|
||||
/**
|
||||
* Description of TextboxTest
|
||||
*
|
||||
* @author nathan
|
||||
*/
|
||||
class TextboxTest extends \EGroupware\Api\Etemplate\WidgetBaseTest
|
||||
{
|
||||
|
||||
const TEST_TEMPLATE = 'api.textbox_test';
|
||||
|
||||
/**
|
||||
* Test the widget's basic functionallity - we put data in, it comes back
|
||||
*/
|
||||
public function testBasic()
|
||||
{
|
||||
// Instanciate the template
|
||||
$etemplate = new Etemplate();
|
||||
$etemplate->read(static::TEST_TEMPLATE, 'test');
|
||||
|
||||
// Exec
|
||||
$content = array(
|
||||
'widget' => '',
|
||||
'widget_readonly' => ''
|
||||
);
|
||||
$result = $this->mockedRoundTrip($etemplate, $content, array(), array());
|
||||
|
||||
// Check
|
||||
$this->assertEquals(array('widget' => ''), $result);
|
||||
|
||||
$content = array(
|
||||
'widget' => 'Hello',
|
||||
'widget_readonly' => 'World'
|
||||
);
|
||||
$result = $this->mockedRoundTrip($etemplate, $content, array(), array());
|
||||
|
||||
// Check only the editable widget gives a value
|
||||
$this->assertEquals(array('widget' => 'Hello'), $result);
|
||||
}
|
||||
|
||||
/**
|
||||
* Test that the widget does not return a value if readonly
|
||||
*/
|
||||
public function testReadonly()
|
||||
{
|
||||
// Instanciate the template
|
||||
$etemplate = new Etemplate();
|
||||
$etemplate->read(static::TEST_TEMPLATE, 'test');
|
||||
|
||||
// Exec
|
||||
$content = array(
|
||||
'widget' => 'Hello',
|
||||
'widget_readonly' => 'World'
|
||||
);
|
||||
$result = $this->mockedRoundTrip($etemplate, $content, array(), array('widget' => true));
|
||||
|
||||
// Check
|
||||
$this->assertEquals(array(), $result);
|
||||
}
|
||||
|
||||
/**
|
||||
* Test that an edited read-only widget does not return a value, even if the
|
||||
* client side gives one, which should be an unusual occurrence.
|
||||
*/
|
||||
public function testEditedReadonly()
|
||||
{
|
||||
// Instanciate the template
|
||||
$etemplate = new Etemplate();
|
||||
$etemplate->read(static::TEST_TEMPLATE, 'test');
|
||||
|
||||
// Exec
|
||||
$content = array(
|
||||
'widget' => 'Hello',
|
||||
'widget_readonly' => 'World'
|
||||
);
|
||||
$result = $this->mockedExec($etemplate, $content, array(), array('widget' => true), array());
|
||||
|
||||
// Check for the load
|
||||
$data = array();
|
||||
foreach($result as $command)
|
||||
{
|
||||
if($command['type'] == 'et2_load')
|
||||
{
|
||||
$data = $command['data'];
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
// 'Edit' the data client side
|
||||
$data['data']['content'] = array(
|
||||
'widget' => 'Goodnight',
|
||||
'widget_readonly' => 'Moon'
|
||||
);
|
||||
|
||||
Etemplate::ajax_process_content($data['data']['etemplate_exec_id'], $data['data']['content'], false);
|
||||
|
||||
$content = static::$mocked_exec_result;
|
||||
static::$mocked_exec_result = array();
|
||||
|
||||
$this->assertEquals(array(), $content);
|
||||
}
|
||||
}
|
9
api/templates/test/textbox_test.xet
Normal file
9
api/templates/test/textbox_test.xet
Normal file
@ -0,0 +1,9 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE overlay PUBLIC "-//EGroupware GmbH//eTemplate 2//EN" "http://www.egroupware.org/etemplate2.dtd">
|
||||
<!-- This template is used in automated testing -->
|
||||
<overlay>
|
||||
<template id="api.textbox_test" template="" lang="" group="0" version="16.1">
|
||||
<textbox id="widget"/>
|
||||
<textbox id="widget_readonly" readonly="true"/>
|
||||
</template>
|
||||
</overlay>
|
Loading…
Reference in New Issue
Block a user