3
* Test the creation-date attribute handler.
8
* @package Kolab_Format
9
* @subpackage UnitTests
10
* @author Gunnar Wrobel <wrobel@pardus.de>
11
* @license http://www.horde.org/licenses/lgpl21 LGPL
12
* @link http://www.horde.org/libraries/Horde_Kolab_Format
16
* Test the creation-date attribute handler.
18
* Copyright 2011-2013 Horde LLC (http://www.horde.org/)
20
* See the enclosed file COPYING for license information (LGPL). If you
21
* did not receive this file, see http://www.horde.org/licenses/lgpl21.
24
* @package Kolab_Format
25
* @subpackage UnitTests
26
* @author Gunnar Wrobel <wrobel@pardus.de>
27
* @license http://www.horde.org/licenses/lgpl21 LGPL
28
* @link http://www.horde.org/libraries/Horde_Kolab_Format
30
class Horde_Kolab_Format_Unit_Xml_Type_CreationDateTest
31
extends Horde_Kolab_Format_TestCase
33
public function testLoadCreationDate()
35
$attributes = $this->load(
36
'<?xml version="1.0" encoding="UTF-8"?>
37
<kolab version="1.0" a="b"><creation-date>2011-06-28T08:42:11Z</creation-date>c</kolab>',
38
array('element' => 'creation-date')
40
$this->assertInstanceOf('DateTime', $attributes['creation-date']);
43
public function testLoadCreationDateValue()
45
$attributes = $this->load(
46
'<?xml version="1.0" encoding="UTF-8"?>
47
<kolab version="1.0" a="b"><creation-date>2011-06-28T08:42:11Z</creation-date>c</kolab>',
48
array('element' => 'creation-date')
52
$attributes['creation-date']->format('U')
57
* @expectedException Horde_Kolab_Format_Exception
59
public function testLoadInvalidCreationDateValue()
61
$attributes = $this->load(
62
'<?xml version="1.0" encoding="UTF-8"?>
63
<kolab version="1.0" a="b"><creation-date>2011A-06-28T08:42:11Z</creation-date>c</kolab>',
64
array('element' => 'creation-date')
68
public function testLoadInvalidCreationDateValueRelaxed()
70
$attributes = $this->load(
71
'<?xml version="1.0" encoding="UTF-8"?>
72
<kolab version="1.0" a="b"><creation-date>2011A-06-28T08:42:11Z</creation-date>c</kolab>',
75
'element' => 'creation-date',
78
$this->assertFalse($attributes['creation-date']);
81
public function testLoadStrangeCreationDate()
83
$attributes = $this->load(
84
'<?xml version="1.0" encoding="UTF-8"?>
85
<kolab version="1.0" a="b"><creation-date type="strange"><b/>1970-01-01T00:00:00Z<a/></creation-date>c</kolab>',
86
array('element' => 'creation-date')
88
$this->assertEquals(0, $attributes['creation-date']->format('U'));
91
public function testLoadMissingCreationDate()
93
$attributes = $this->load(
94
'<?xml version="1.0" encoding="UTF-8"?>
95
<kolab version="1.0"/>',
96
array('element' => 'creation-date')
98
$this->assertInstanceOf('DateTime', $attributes['creation-date']);
101
public function testSave()
103
$this->assertInstanceOf(
105
$this->saveToReturn()
109
public function testSaveXml()
112
'<?xml version="1.0" encoding="UTF-8"?>
113
<kolab version="1.0"><creation-date>1970-01-01T00:00:00Z</creation-date></kolab>
117
array('creation-date' => new DateTime('1970-01-01T00:00:00Z')),
118
array('element' => 'creation-date')
123
public function testSaveDoesNotTouchOldValue()
126
'<?xml version="1.0" encoding="UTF-8"?>
127
<kolab version="1.0" a="b"><creation-date type="strange"><b/>1970-01-01T00:00:00Z<a/></creation-date>c</kolab>
130
'<?xml version="1.0" encoding="UTF-8"?>
131
<kolab version="1.0" a="b"><creation-date type="strange"><b/>1970-01-01T00:00:00Z<a/></creation-date>c</kolab>',
132
array('creation-date' => new DateTime('1970-01-01T00:00:00Z')),
133
array('element' => 'creation-date')
139
* @expectedException Horde_Kolab_Format_Exception
141
public function testSaveFailsOverwritingOldValue()
144
'<?xml version="1.0" encoding="UTF-8"?>
145
<kolab version="1.0" a="b"><creation-date type="strange"><b/>1970-01-01T00:00:00Z<a/></creation-date>c</kolab>',
146
array('creation-date' => new DateTime('1971-01-01T00:00:00Z')),
147
array('element' => 'creation-date')
151
public function testSaveRelaxedOverwritesOldValue()
154
'<?xml version="1.0" encoding="UTF-8"?>
155
<kolab version="1.0" a="b"><creation-date type="strange">1971-01-01T00:00:00Z<b/><a/></creation-date>c</kolab>
158
'<?xml version="1.0" encoding="UTF-8"?>
159
<kolab version="1.0" a="b"><creation-date type="strange"><b/>1970-01-01T00:00:00Z<a/></creation-date>c</kolab>',
160
array('creation-date' => new DateTime('1971-01-01T00:00:00Z')),
163
'element' => 'creation-date'
169
protected function getTypeClass()
171
return 'Horde_Kolab_Format_Xml_Type_CreationDate';