PageRenderTime 62ms CodeModel.GetById 18ms RepoModel.GetById 1ms app.codeStats 0ms

/vendor/phpunit/phpunit/Tests/Framework/AssertTest.php

https://bitbucket.org/alexpozdnyakov/kohana
PHP | 4158 lines | 2460 code | 682 blank | 1016 comment | 0 complexity | 89c2bc14a741b042ed999a27a5aa311f MD5 | raw file
Possible License(s): BSD-3-Clause
  1. <?php
  2. /**
  3. * PHPUnit
  4. *
  5. * Copyright (c) 2001-2012, Sebastian Bergmann <sebastian@phpunit.de>.
  6. * All rights reserved.
  7. *
  8. * Redistribution and use in source and binary forms, with or without
  9. * modification, are permitted provided that the following conditions
  10. * are met:
  11. *
  12. * * Redistributions of source code must retain the above copyright
  13. * notice, this list of conditions and the following disclaimer.
  14. *
  15. * * Redistributions in binary form must reproduce the above copyright
  16. * notice, this list of conditions and the following disclaimer in
  17. * the documentation and/or other materials provided with the
  18. * distribution.
  19. *
  20. * * Neither the name of Sebastian Bergmann nor the names of his
  21. * contributors may be used to endorse or promote products derived
  22. * from this software without specific prior written permission.
  23. *
  24. * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
  25. * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
  26. * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
  27. * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
  28. * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
  29. * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
  30. * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
  31. * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
  32. * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
  33. * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
  34. * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
  35. * POSSIBILITY OF SUCH DAMAGE.
  36. *
  37. * @package PHPUnit
  38. * @author Sebastian Bergmann <sebastian@phpunit.de>
  39. * @author Bernhard Schussek <bschussek@2bepublished.at>
  40. * @copyright 2001-2012 Sebastian Bergmann <sebastian@phpunit.de>
  41. * @license http://www.opensource.org/licenses/BSD-3-Clause The BSD 3-Clause License
  42. * @link http://www.phpunit.de/
  43. * @since File available since Release 2.0.0
  44. */
  45. require_once dirname(__DIR__) . DIRECTORY_SEPARATOR . '_files' . DIRECTORY_SEPARATOR . 'ClassWithNonPublicAttributes.php';
  46. require_once dirname(__DIR__) . DIRECTORY_SEPARATOR . '_files' . DIRECTORY_SEPARATOR . 'SampleClass.php';
  47. require_once dirname(__DIR__) . DIRECTORY_SEPARATOR . '_files' . DIRECTORY_SEPARATOR . 'Struct.php';
  48. require_once dirname(__DIR__) . DIRECTORY_SEPARATOR . '_files' . DIRECTORY_SEPARATOR . 'TestIterator.php';
  49. require_once dirname(__DIR__) . DIRECTORY_SEPARATOR . '_files' . DIRECTORY_SEPARATOR . 'Author.php';
  50. require_once dirname(__DIR__) . DIRECTORY_SEPARATOR . '_files' . DIRECTORY_SEPARATOR . 'Book.php';
  51. require_once dirname(__DIR__) . DIRECTORY_SEPARATOR . '_files' . DIRECTORY_SEPARATOR . 'ClassWithToString.php';
  52. /**
  53. *
  54. *
  55. * @package PHPUnit
  56. * @author Sebastian Bergmann <sebastian@phpunit.de>
  57. * @author Bernhard Schussek <bschussek@2bepublished.at>
  58. * @copyright 2001-2012 Sebastian Bergmann <sebastian@phpunit.de>
  59. * @license http://www.opensource.org/licenses/BSD-3-Clause The BSD 3-Clause License
  60. * @link http://www.phpunit.de/
  61. * @since Class available since Release 2.0.0
  62. */
  63. class Framework_AssertTest extends PHPUnit_Framework_TestCase
  64. {
  65. protected $filesDirectory;
  66. protected function setUp()
  67. {
  68. $this->filesDirectory = dirname(__DIR__) . DIRECTORY_SEPARATOR . '_files' . DIRECTORY_SEPARATOR;
  69. $this->html = file_get_contents(
  70. $this->filesDirectory . 'SelectorAssertionsFixture.html'
  71. );
  72. }
  73. /**
  74. * @covers PHPUnit_Framework_Assert::fail
  75. */
  76. public function testFail()
  77. {
  78. try {
  79. $this->fail();
  80. }
  81. catch (PHPUnit_Framework_AssertionFailedError $e) {
  82. return;
  83. }
  84. throw new PHPUnit_Framework_AssertionFailedError('Fail did not throw fail exception');
  85. }
  86. /**
  87. * @covers PHPUnit_Framework_Assert::assertContains
  88. */
  89. public function testAssertSplObjectStorageContainsObject()
  90. {
  91. $a = new stdClass;
  92. $b = new stdClass;
  93. $c = new SplObjectStorage;
  94. $c->attach($a);
  95. $this->assertContains($a, $c);
  96. try {
  97. $this->assertContains($b, $c);
  98. }
  99. catch (PHPUnit_Framework_AssertionFailedError $e) {
  100. return;
  101. }
  102. $this->fail();
  103. }
  104. /**
  105. * @covers PHPUnit_Framework_Assert::assertContains
  106. */
  107. public function testAssertArrayContainsObject()
  108. {
  109. $a = new stdClass;
  110. $b = new stdClass;
  111. $this->assertContains($a, array($a));
  112. try {
  113. $this->assertContains($a, array($b));
  114. }
  115. catch (PHPUnit_Framework_AssertionFailedError $e) {
  116. return;
  117. }
  118. $this->fail();
  119. }
  120. /**
  121. * @covers PHPUnit_Framework_Assert::assertContains
  122. */
  123. public function testAssertArrayContainsString()
  124. {
  125. $this->assertContains('foo', array('foo'));
  126. try {
  127. $this->assertContains('foo', array('bar'));
  128. }
  129. catch (PHPUnit_Framework_AssertionFailedError $e) {
  130. return;
  131. }
  132. $this->fail();
  133. }
  134. /**
  135. * @covers PHPUnit_Framework_Assert::assertContainsOnlyInstancesOf
  136. */
  137. public function testAssertContainsOnlyInstancesOf()
  138. {
  139. $test = array(
  140. new Book(),
  141. new Book
  142. );
  143. $this->assertContainsOnlyInstancesOf('Book', $test);
  144. $this->assertContainsOnlyInstancesOf('stdClass', array(new stdClass()));
  145. $test2 = array(
  146. new Author('Test')
  147. );
  148. try {
  149. $this->assertContainsOnlyInstancesOf('Book', $test2);
  150. } catch (PHPUnit_Framework_AssertionFailedError $e) {
  151. return;
  152. }
  153. $this->fail();
  154. }
  155. /**
  156. * @covers PHPUnit_Framework_Assert::assertArrayHasKey
  157. * @expectedException PHPUnit_Framework_Exception
  158. */
  159. public function testAssertArrayHasKeyThrowsException()
  160. {
  161. $this->assertArrayHasKey(NULL, array());
  162. }
  163. /**
  164. * @covers PHPUnit_Framework_Assert::assertArrayHasKey
  165. */
  166. public function testAssertArrayHasIntegerKey()
  167. {
  168. $this->assertArrayHasKey(0, array('foo'));
  169. try {
  170. $this->assertArrayHasKey(1, array('foo'));
  171. }
  172. catch (PHPUnit_Framework_AssertionFailedError $e) {
  173. return;
  174. }
  175. $this->fail();
  176. }
  177. /**
  178. * @covers PHPUnit_Framework_Assert::assertArrayNotHasKey
  179. * @expectedException PHPUnit_Framework_Exception
  180. */
  181. public function testAssertArrayNotHasKeyThrowsException()
  182. {
  183. $this->assertArrayNotHasKey(NULL, array());
  184. }
  185. /**
  186. * @covers PHPUnit_Framework_Assert::assertArrayNotHasKey
  187. */
  188. public function testAssertArrayNotHasIntegerKey()
  189. {
  190. $this->assertArrayNotHasKey(1, array('foo'));
  191. try {
  192. $this->assertArrayNotHasKey(0, array('foo'));
  193. }
  194. catch (PHPUnit_Framework_AssertionFailedError $e) {
  195. return;
  196. }
  197. $this->fail();
  198. }
  199. /**
  200. * @covers PHPUnit_Framework_Assert::assertArrayHasKey
  201. */
  202. public function testAssertArrayHasStringKey()
  203. {
  204. $this->assertArrayHasKey('foo', array('foo' => 'bar'));
  205. try {
  206. $this->assertArrayHasKey('bar', array('foo' => 'bar'));
  207. }
  208. catch (PHPUnit_Framework_AssertionFailedError $e) {
  209. return;
  210. }
  211. $this->fail();
  212. }
  213. /**
  214. * @covers PHPUnit_Framework_Assert::assertArrayNotHasKey
  215. */
  216. public function testAssertArrayNotHasStringKey()
  217. {
  218. $this->assertArrayNotHasKey('bar', array('foo' => 'bar'));
  219. try {
  220. $this->assertArrayNotHasKey('foo', array('foo' => 'bar'));
  221. }
  222. catch (PHPUnit_Framework_AssertionFailedError $e) {
  223. return;
  224. }
  225. $this->fail();
  226. }
  227. /**
  228. * @covers PHPUnit_Framework_Assert::assertArrayHasKey
  229. */
  230. public function testAssertArrayHasKeyAcceptsArrayAccessValue()
  231. {
  232. $array = new ArrayObject();
  233. $array['foo'] = 'bar';
  234. $this->assertArrayHasKey('foo', $array);
  235. }
  236. /**
  237. * @covers PHPUnit_Framework_Assert::assertArrayHasKey
  238. * @expectedException PHPUnit_Framework_AssertionFailedError
  239. */
  240. public function testAssertArrayHasKeyProperlyFailsWithArrayAccessValue()
  241. {
  242. $array = new ArrayObject();
  243. $array['bar'] = 'bar';
  244. $this->assertArrayHasKey('foo', $array);
  245. }
  246. /**
  247. * @covers PHPUnit_Framework_Assert::assertArrayNotHasKey
  248. */
  249. public function testAssertArrayNotHasKeyAcceptsArrayAccessValue()
  250. {
  251. $array = new ArrayObject();
  252. $array['foo'] = 'bar';
  253. $this->assertArrayNotHasKey('bar', $array);
  254. }
  255. /**
  256. * @covers PHPUnit_Framework_Assert::assertArrayNotHasKey
  257. * @expectedException PHPUnit_Framework_AssertionFailedError
  258. */
  259. public function testAssertArrayNotHasKeyPropertlyFailsWithArrayAccessValue()
  260. {
  261. $array = new ArrayObject();
  262. $array['bar'] = 'bar';
  263. $this->assertArrayNotHasKey('bar', $array);
  264. }
  265. /**
  266. * @covers PHPUnit_Framework_Assert::assertContains
  267. * @expectedException PHPUnit_Framework_Exception
  268. */
  269. public function testAssertContainsThrowsException()
  270. {
  271. $this->assertContains(NULL, NULL);
  272. }
  273. /**
  274. * @covers PHPUnit_Framework_Assert::assertContains
  275. */
  276. public function testAssertIteratorContainsObject()
  277. {
  278. $foo = new stdClass;
  279. $this->assertContains($foo, new TestIterator(array($foo)));
  280. try {
  281. $this->assertContains($foo, new TestIterator(array(new stdClass)));
  282. }
  283. catch (PHPUnit_Framework_AssertionFailedError $e) {
  284. return;
  285. }
  286. $this->fail();
  287. }
  288. /**
  289. * @covers PHPUnit_Framework_Assert::assertContains
  290. */
  291. public function testAssertIteratorContainsString()
  292. {
  293. $this->assertContains('foo', new TestIterator(array('foo')));
  294. try {
  295. $this->assertContains('foo', new TestIterator(array('bar')));
  296. }
  297. catch (PHPUnit_Framework_AssertionFailedError $e) {
  298. return;
  299. }
  300. $this->fail();
  301. }
  302. /**
  303. * @covers PHPUnit_Framework_Assert::assertContains
  304. */
  305. public function testAssertStringContainsString()
  306. {
  307. $this->assertContains('foo', 'foobar');
  308. try {
  309. $this->assertContains('foo', 'bar');
  310. }
  311. catch (PHPUnit_Framework_AssertionFailedError $e) {
  312. return;
  313. }
  314. $this->fail();
  315. }
  316. /**
  317. * @covers PHPUnit_Framework_Assert::assertNotContains
  318. * @expectedException PHPUnit_Framework_Exception
  319. */
  320. public function testAssertNotContainsThrowsException()
  321. {
  322. $this->assertNotContains(NULL, NULL);
  323. }
  324. /**
  325. * @covers PHPUnit_Framework_Assert::assertNotContains
  326. */
  327. public function testAssertSplObjectStorageNotContainsObject()
  328. {
  329. $a = new stdClass;
  330. $b = new stdClass;
  331. $c = new SplObjectStorage;
  332. $c->attach($a);
  333. $this->assertNotContains($b, $c);
  334. try {
  335. $this->assertNotContains($a, $c);
  336. }
  337. catch (PHPUnit_Framework_AssertionFailedError $e) {
  338. return;
  339. }
  340. $this->fail();
  341. }
  342. /**
  343. * @covers PHPUnit_Framework_Assert::assertNotContains
  344. */
  345. public function testAssertArrayNotContainsObject()
  346. {
  347. $a = new stdClass;
  348. $b = new stdClass;
  349. $this->assertNotContains($a, array($b));
  350. try {
  351. $this->assertNotContains($a, array($a));
  352. }
  353. catch (PHPUnit_Framework_AssertionFailedError $e) {
  354. return;
  355. }
  356. $this->fail();
  357. }
  358. /**
  359. * @covers PHPUnit_Framework_Assert::assertNotContains
  360. */
  361. public function testAssertArrayNotContainsString()
  362. {
  363. $this->assertNotContains('foo', array('bar'));
  364. try {
  365. $this->assertNotContains('foo', array('foo'));
  366. }
  367. catch (PHPUnit_Framework_AssertionFailedError $e) {
  368. return;
  369. }
  370. $this->fail();
  371. }
  372. /**
  373. * @covers PHPUnit_Framework_Assert::assertNotContains
  374. */
  375. public function testAssertStringNotContainsString()
  376. {
  377. $this->assertNotContains('foo', 'bar');
  378. try {
  379. $this->assertNotContains('foo', 'foo');
  380. }
  381. catch (PHPUnit_Framework_AssertionFailedError $e) {
  382. return;
  383. }
  384. $this->fail();
  385. }
  386. /**
  387. * @covers PHPUnit_Framework_Assert::assertContainsOnly
  388. * @expectedException PHPUnit_Framework_Exception
  389. */
  390. public function testAssertContainsOnlyThrowsException()
  391. {
  392. $this->assertContainsOnly(NULL, NULL);
  393. }
  394. /**
  395. * @covers PHPUnit_Framework_Assert::assertContainsOnlyInstancesOf
  396. * @expectedException PHPUnit_Framework_Exception
  397. */
  398. public function testAssertContainsOnlyInstancesOfThrowsException()
  399. {
  400. $this->assertContainsOnlyInstancesOf(NULL, NULL);
  401. }
  402. /**
  403. * @covers PHPUnit_Framework_Assert::assertContainsOnly
  404. */
  405. public function testAssertArrayContainsOnlyIntegers()
  406. {
  407. $this->assertContainsOnly('integer', array(1, 2, 3));
  408. try {
  409. $this->assertContainsOnly('integer', array("1", 2, 3));
  410. }
  411. catch (PHPUnit_Framework_AssertionFailedError $e) {
  412. return;
  413. }
  414. $this->fail();
  415. }
  416. /**
  417. * @covers PHPUnit_Framework_Assert::assertNotContainsOnly
  418. */
  419. public function testAssertArrayNotContainsOnlyIntegers()
  420. {
  421. $this->assertNotContainsOnly('integer', array("1", 2, 3));
  422. try {
  423. $this->assertNotContainsOnly('integer', array(1, 2, 3));
  424. }
  425. catch (PHPUnit_Framework_AssertionFailedError $e) {
  426. return;
  427. }
  428. $this->fail();
  429. }
  430. /**
  431. * @covers PHPUnit_Framework_Assert::assertContainsOnly
  432. */
  433. public function testAssertArrayContainsOnlyStdClass()
  434. {
  435. $this->assertContainsOnly('StdClass', array(new StdClass));
  436. try {
  437. $this->assertContainsOnly('StdClass', array('StdClass'));
  438. }
  439. catch (PHPUnit_Framework_AssertionFailedError $e) {
  440. return;
  441. }
  442. $this->fail();
  443. }
  444. /**
  445. * @covers PHPUnit_Framework_Assert::assertNotContainsOnly
  446. */
  447. public function testAssertArrayNotContainsOnlyStdClass()
  448. {
  449. $this->assertNotContainsOnly('StdClass', array('StdClass'));
  450. try {
  451. $this->assertNotContainsOnly('StdClass', array(new StdClass));
  452. }
  453. catch (PHPUnit_Framework_AssertionFailedError $e) {
  454. return;
  455. }
  456. $this->fail();
  457. }
  458. protected function createDOMDocument($content)
  459. {
  460. $document = new DOMDocument;
  461. $document->preserveWhiteSpace = FALSE;
  462. $document->loadXML($content);
  463. return $document;
  464. }
  465. protected function sameValues()
  466. {
  467. $object = new SampleClass(4, 8, 15);
  468. // cannot use $filesDirectory, because neither setUp() nor
  469. // setUpBeforeClass() are executed before the data providers
  470. $file = dirname(__DIR__) . DIRECTORY_SEPARATOR . '_files' . DIRECTORY_SEPARATOR . 'foo.xml';
  471. $resource = fopen($file, 'r');
  472. return array(
  473. // NULL
  474. array(NULL, NULL),
  475. // strings
  476. array('a', 'a'),
  477. // integers
  478. array(0, 0),
  479. // floats
  480. array(2.3, 2.3),
  481. array(1/3, 1 - 2/3),
  482. array(log(0), log(0)),
  483. // arrays
  484. array(array(), array()),
  485. array(array(0 => 1), array(0 => 1)),
  486. array(array(0 => NULL), array(0 => NULL)),
  487. array(array('a', 'b' => array(1, 2)), array('a', 'b' => array(1, 2))),
  488. // objects
  489. array($object, $object),
  490. // resources
  491. array($resource, $resource),
  492. );
  493. }
  494. protected function notEqualValues()
  495. {
  496. // cyclic dependencies
  497. $book1 = new Book;
  498. $book1->author = new Author('Terry Pratchett');
  499. $book1->author->books[] = $book1;
  500. $book2 = new Book;
  501. $book2->author = new Author('Terry Pratch');
  502. $book2->author->books[] = $book2;
  503. $book3 = new Book;
  504. $book3->author = 'Terry Pratchett';
  505. $book4 = new stdClass;
  506. $book4->author = 'Terry Pratchett';
  507. $object1 = new SampleClass( 4, 8, 15);
  508. $object2 = new SampleClass(16, 23, 42);
  509. $object3 = new SampleClass( 4, 8, 15);
  510. $storage1 = new SplObjectStorage;
  511. $storage1->attach($object1);
  512. $storage2 = new SplObjectStorage;
  513. $storage2->attach($object3); // same content, different object
  514. // cannot use $filesDirectory, because neither setUp() nor
  515. // setUpBeforeClass() are executed before the data providers
  516. $file = dirname(__DIR__) . DIRECTORY_SEPARATOR . '_files' . DIRECTORY_SEPARATOR . 'foo.xml';
  517. return array(
  518. // strings
  519. array('a', 'b'),
  520. array('a', 'A'),
  521. // integers
  522. array(1, 2),
  523. array(2, 1),
  524. // floats
  525. array(2.3, 4.2),
  526. array(2.3, 4.2, 0.5),
  527. array(array(2.3), array(4.2), 0.5),
  528. array(array(array(2.3)), array(array(4.2)), 0.5),
  529. array(new Struct(2.3), new Struct(4.2), 0.5),
  530. array(array(new Struct(2.3)), array(new Struct(4.2)), 0.5),
  531. // arrays
  532. array(array(), array(0 => 1)),
  533. array(array(0 => 1), array()),
  534. array(array(0 => NULL), array()),
  535. array(array(0 => 1, 1 => 2), array(0 => 1, 1 => 3)),
  536. array(array('a', 'b' => array(1, 2)), array('a', 'b' => array(2, 1))),
  537. // objects
  538. array(new SampleClass(4, 8, 15), new SampleClass(16, 23, 42)),
  539. array($object1, $object2),
  540. array($book1, $book2),
  541. array($book3, $book4), // same content, different class
  542. // resources
  543. array(fopen($file, 'r'), fopen($file, 'r')),
  544. // SplObjectStorage
  545. array($storage1, $storage2),
  546. // DOMDocument
  547. array(
  548. $this->createDOMDocument('<root></root>'),
  549. $this->createDOMDocument('<bar/>'),
  550. ),
  551. array(
  552. $this->createDOMDocument('<foo attr1="bar"/>'),
  553. $this->createDOMDocument('<foo attr1="foobar"/>'),
  554. ),
  555. array(
  556. $this->createDOMDocument('<foo> bar </foo>'),
  557. $this->createDOMDocument('<foo />'),
  558. ),
  559. array(
  560. $this->createDOMDocument('<foo xmlns="urn:myns:bar"/>'),
  561. $this->createDOMDocument('<foo xmlns="urn:notmyns:bar"/>'),
  562. ),
  563. array(
  564. $this->createDOMDocument('<foo> bar </foo>'),
  565. $this->createDOMDocument('<foo> bir </foo>'),
  566. ),
  567. // Exception
  568. //array(new Exception('Exception 1'), new Exception('Exception 2')),
  569. // different types
  570. array(new SampleClass(4, 8, 15), FALSE),
  571. array(FALSE, new SampleClass(4, 8, 15)),
  572. array(array(0 => 1, 1 => 2), FALSE),
  573. array(FALSE, array(0 => 1, 1 => 2)),
  574. array(array(), new stdClass),
  575. array(new stdClass, array()),
  576. // PHP: 0 == 'Foobar' => TRUE!
  577. // We want these values to differ
  578. array(0, 'Foobar'),
  579. array('Foobar', 0),
  580. array(3, acos(8)),
  581. array(acos(8), 3)
  582. );
  583. }
  584. protected function equalValues()
  585. {
  586. // cyclic dependencies
  587. $book1 = new Book;
  588. $book1->author = new Author('Terry Pratchett');
  589. $book1->author->books[] = $book1;
  590. $book2 = new Book;
  591. $book2->author = new Author('Terry Pratchett');
  592. $book2->author->books[] = $book2;
  593. $object1 = new SampleClass(4, 8, 15);
  594. $object2 = new SampleClass(4, 8, 15);
  595. $storage1 = new SplObjectStorage;
  596. $storage1->attach($object1);
  597. $storage2 = new SplObjectStorage;
  598. $storage2->attach($object1);
  599. return array(
  600. // strings
  601. array('a', 'A', 0, FALSE, TRUE), // ignore case
  602. // arrays
  603. array(array('a' => 1, 'b' => 2), array('b' => 2, 'a' => 1)),
  604. array(array(1), array('1')),
  605. array(array(3, 2, 1), array(2, 3, 1), 0, TRUE), // canonicalized comparison
  606. // floats
  607. array(2.3, 2.5, 0.5),
  608. array(array(2.3), array(2.5), 0.5),
  609. array(array(array(2.3)), array(array(2.5)), 0.5),
  610. array(new Struct(2.3), new Struct(2.5), 0.5),
  611. array(array(new Struct(2.3)), array(new Struct(2.5)), 0.5),
  612. // numeric with delta
  613. array(1, 2, 1),
  614. // objects
  615. array($object1, $object2),
  616. array($book1, $book2),
  617. // SplObjectStorage
  618. array($storage1, $storage2),
  619. // DOMDocument
  620. array(
  621. $this->createDOMDocument('<root></root>'),
  622. $this->createDOMDocument('<root/>'),
  623. ),
  624. array(
  625. $this->createDOMDocument('<root attr="bar"></root>'),
  626. $this->createDOMDocument('<root attr="bar"/>'),
  627. ),
  628. array(
  629. $this->createDOMDocument('<root><foo attr="bar"></foo></root>'),
  630. $this->createDOMDocument('<root><foo attr="bar"/></root>'),
  631. ),
  632. array(
  633. $this->createDOMDocument("<root>\n <child/>\n</root>"),
  634. $this->createDOMDocument('<root><child/></root>'),
  635. ),
  636. // Exception
  637. //array(new Exception('Exception 1'), new Exception('Exception 1')),
  638. // mixed types
  639. array(0, '0'),
  640. array('0', 0),
  641. array(2.3, '2.3'),
  642. array('2.3', 2.3),
  643. array((string)(1/3), 1 - 2/3),
  644. array(1/3, (string)(1 - 2/3)),
  645. array('string representation', new ClassWithToString),
  646. array(new ClassWithToString, 'string representation'),
  647. );
  648. }
  649. public function equalProvider()
  650. {
  651. // same |= equal
  652. return array_merge($this->equalValues(), $this->sameValues());
  653. }
  654. public function notEqualProvider()
  655. {
  656. return $this->notEqualValues();
  657. }
  658. public function sameProvider()
  659. {
  660. return $this->sameValues();
  661. }
  662. public function notSameProvider()
  663. {
  664. // not equal |= not same
  665. // equal, ¬same |= not same
  666. return array_merge($this->notEqualValues(), $this->equalValues());
  667. }
  668. /**
  669. * @covers PHPUnit_Framework_Assert::assertEquals
  670. * @dataProvider equalProvider
  671. */
  672. public function testAssertEqualsSucceeds($a, $b, $delta = 0, $canonicalize = FALSE, $ignoreCase = FALSE)
  673. {
  674. $this->assertEquals($a, $b, '', $delta, 10, $canonicalize, $ignoreCase);
  675. }
  676. /**
  677. * @covers PHPUnit_Framework_Assert::assertEquals
  678. * @dataProvider notEqualProvider
  679. */
  680. public function testAssertEqualsFails($a, $b, $delta = 0, $canonicalize = FALSE, $ignoreCase = FALSE)
  681. {
  682. try {
  683. $this->assertEquals($a, $b, '', $delta, 10, $canonicalize, $ignoreCase);
  684. }
  685. catch (PHPUnit_Framework_AssertionFailedError $e) {
  686. return;
  687. }
  688. $this->fail();
  689. }
  690. /**
  691. * @covers PHPUnit_Framework_Assert::assertNotEquals
  692. * @dataProvider notEqualProvider
  693. */
  694. public function testAssertNotEqualsSucceeds($a, $b, $delta = 0, $canonicalize = FALSE, $ignoreCase = FALSE)
  695. {
  696. $this->assertNotEquals($a, $b, '', $delta, 10, $canonicalize, $ignoreCase);
  697. }
  698. /**
  699. * @covers PHPUnit_Framework_Assert::assertNotEquals
  700. * @dataProvider equalProvider
  701. */
  702. public function testAssertNotEqualsFails($a, $b, $delta = 0, $canonicalize = FALSE, $ignoreCase = FALSE)
  703. {
  704. try {
  705. $this->assertNotEquals($a, $b, '', $delta, 10, $canonicalize, $ignoreCase);
  706. }
  707. catch (PHPUnit_Framework_AssertionFailedError $e) {
  708. return;
  709. }
  710. $this->fail();
  711. }
  712. /**
  713. * @covers PHPUnit_Framework_Assert::assertSame
  714. * @dataProvider sameProvider
  715. */
  716. public function testAssertSameSucceeds($a, $b)
  717. {
  718. $this->assertSame($a, $b);
  719. }
  720. /**
  721. * @covers PHPUnit_Framework_Assert::assertSame
  722. * @dataProvider notSameProvider
  723. */
  724. public function testAssertSameFails($a, $b)
  725. {
  726. try {
  727. $this->assertSame($a, $b);
  728. }
  729. catch (PHPUnit_Framework_AssertionFailedError $e) {
  730. return;
  731. }
  732. $this->fail();
  733. }
  734. /**
  735. * @covers PHPUnit_Framework_Assert::assertNotSame
  736. * @dataProvider notSameProvider
  737. */
  738. public function testAssertNotSameSucceeds($a, $b)
  739. {
  740. $this->assertNotSame($a, $b);
  741. }
  742. /**
  743. * @covers PHPUnit_Framework_Assert::assertNotSame
  744. * @dataProvider sameProvider
  745. */
  746. public function testAssertNotSameFails($a, $b)
  747. {
  748. try {
  749. $this->assertNotSame($a, $b);
  750. }
  751. catch (PHPUnit_Framework_AssertionFailedError $e) {
  752. return;
  753. }
  754. $this->fail();
  755. }
  756. /**
  757. * @covers PHPUnit_Framework_Assert::assertXmlFileEqualsXmlFile
  758. */
  759. public function testAssertXmlFileEqualsXmlFile()
  760. {
  761. $this->assertXmlFileEqualsXmlFile(
  762. $this->filesDirectory . 'foo.xml',
  763. $this->filesDirectory . 'foo.xml'
  764. );
  765. try {
  766. $this->assertXmlFileEqualsXmlFile(
  767. $this->filesDirectory . 'foo.xml',
  768. $this->filesDirectory . 'bar.xml'
  769. );
  770. }
  771. catch (PHPUnit_Framework_AssertionFailedError $e) {
  772. return;
  773. }
  774. $this->fail();
  775. }
  776. /**
  777. * @covers PHPUnit_Framework_Assert::assertXmlFileNotEqualsXmlFile
  778. */
  779. public function testAssertXmlFileNotEqualsXmlFile()
  780. {
  781. $this->assertXmlFileNotEqualsXmlFile(
  782. $this->filesDirectory . 'foo.xml',
  783. $this->filesDirectory . 'bar.xml'
  784. );
  785. try {
  786. $this->assertXmlFileNotEqualsXmlFile(
  787. $this->filesDirectory . 'foo.xml',
  788. $this->filesDirectory . 'foo.xml'
  789. );
  790. }
  791. catch (PHPUnit_Framework_AssertionFailedError $e) {
  792. return;
  793. }
  794. $this->fail();
  795. }
  796. /**
  797. * @covers PHPUnit_Framework_Assert::assertXmlStringEqualsXmlFile
  798. */
  799. public function testAssertXmlStringEqualsXmlFile()
  800. {
  801. $this->assertXmlStringEqualsXmlFile(
  802. $this->filesDirectory . 'foo.xml',
  803. file_get_contents($this->filesDirectory . 'foo.xml')
  804. );
  805. try {
  806. $this->assertXmlStringEqualsXmlFile(
  807. $this->filesDirectory . 'foo.xml',
  808. file_get_contents($this->filesDirectory . 'bar.xml')
  809. );
  810. }
  811. catch (PHPUnit_Framework_AssertionFailedError $e) {
  812. return;
  813. }
  814. $this->fail();
  815. }
  816. /**
  817. * @covers PHPUnit_Framework_Assert::assertXmlStringNotEqualsXmlFile
  818. */
  819. public function testXmlStringNotEqualsXmlFile()
  820. {
  821. $this->assertXmlStringNotEqualsXmlFile(
  822. $this->filesDirectory . 'foo.xml',
  823. file_get_contents($this->filesDirectory . 'bar.xml')
  824. );
  825. try {
  826. $this->assertXmlStringNotEqualsXmlFile(
  827. $this->filesDirectory . 'foo.xml',
  828. file_get_contents($this->filesDirectory . 'foo.xml')
  829. );
  830. }
  831. catch (PHPUnit_Framework_AssertionFailedError $e) {
  832. return;
  833. }
  834. $this->fail();
  835. }
  836. /**
  837. * @covers PHPUnit_Framework_Assert::assertXmlStringEqualsXmlString
  838. */
  839. public function testAssertXmlStringEqualsXmlString()
  840. {
  841. $this->assertXmlStringEqualsXmlString('<root/>', '<root/>');
  842. try {
  843. $this->assertXmlStringEqualsXmlString('<foo/>', '<bar/>');
  844. }
  845. catch (PHPUnit_Framework_AssertionFailedError $e) {
  846. return;
  847. }
  848. $this->fail();
  849. }
  850. /**
  851. * @covers PHPUnit_Framework_Assert::assertXmlStringNotEqualsXmlString
  852. */
  853. public function testAssertXmlStringNotEqualsXmlString()
  854. {
  855. $this->assertXmlStringNotEqualsXmlString('<foo/>', '<bar/>');
  856. try {
  857. $this->assertXmlStringNotEqualsXmlString('<root/>', '<root/>');
  858. }
  859. catch (PHPUnit_Framework_AssertionFailedError $e) {
  860. return;
  861. }
  862. $this->fail();
  863. }
  864. /**
  865. * @covers PHPUnit_Framework_Assert::assertEqualXMLStructure
  866. */
  867. public function testXMLStructureIsSame()
  868. {
  869. $expected = new DOMDocument;
  870. $expected->load($this->filesDirectory . 'structureExpected.xml');
  871. $actual = new DOMDocument;
  872. $actual->load($this->filesDirectory . 'structureExpected.xml');
  873. $this->assertEqualXMLStructure(
  874. $expected->firstChild, $actual->firstChild, TRUE
  875. );
  876. }
  877. /**
  878. * @covers PHPUnit_Framework_Assert::assertEqualXMLStructure
  879. * @expectedException PHPUnit_Framework_ExpectationFailedException
  880. */
  881. public function testXMLStructureWrongNumberOfAttributes()
  882. {
  883. $expected = new DOMDocument;
  884. $expected->load($this->filesDirectory . 'structureExpected.xml');
  885. $actual = new DOMDocument;
  886. $actual->load($this->filesDirectory . 'structureWrongNumberOfAttributes.xml');
  887. $this->assertEqualXMLStructure(
  888. $expected->firstChild, $actual->firstChild, TRUE
  889. );
  890. }
  891. /**
  892. * @covers PHPUnit_Framework_Assert::assertEqualXMLStructure
  893. * @expectedException PHPUnit_Framework_ExpectationFailedException
  894. */
  895. public function testXMLStructureWrongNumberOfNodes()
  896. {
  897. $expected = new DOMDocument;
  898. $expected->load($this->filesDirectory . 'structureExpected.xml');
  899. $actual = new DOMDocument;
  900. $actual->load($this->filesDirectory . 'structureWrongNumberOfNodes.xml');
  901. $this->assertEqualXMLStructure(
  902. $expected->firstChild, $actual->firstChild, TRUE
  903. );
  904. }
  905. /**
  906. * @covers PHPUnit_Framework_Assert::assertEqualXMLStructure
  907. */
  908. public function testXMLStructureIsSameButDataIsNot()
  909. {
  910. $expected = new DOMDocument;
  911. $expected->load($this->filesDirectory . 'structureExpected.xml');
  912. $actual = new DOMDocument;
  913. $actual->load($this->filesDirectory . 'structureIsSameButDataIsNot.xml');
  914. $this->assertEqualXMLStructure(
  915. $expected->firstChild, $actual->firstChild, TRUE
  916. );
  917. }
  918. /**
  919. * @covers PHPUnit_Framework_Assert::assertEqualXMLStructure
  920. */
  921. public function testXMLStructureAttributesAreSameButValuesAreNot()
  922. {
  923. $expected = new DOMDocument;
  924. $expected->load($this->filesDirectory . 'structureExpected.xml');
  925. $actual = new DOMDocument;
  926. $actual->load($this->filesDirectory . 'structureAttributesAreSameButValuesAreNot.xml');
  927. $this->assertEqualXMLStructure(
  928. $expected->firstChild, $actual->firstChild, TRUE
  929. );
  930. }
  931. /**
  932. * @covers PHPUnit_Framework_Assert::assertEqualXMLStructure
  933. */
  934. public function testXMLStructureIgnoreTextNodes()
  935. {
  936. $expected = new DOMDocument;
  937. $expected->load($this->filesDirectory . 'structureExpected.xml');
  938. $actual = new DOMDocument;
  939. $actual->load($this->filesDirectory . 'structureIgnoreTextNodes.xml');
  940. $this->assertEqualXMLStructure(
  941. $expected->firstChild, $actual->firstChild, TRUE
  942. );
  943. }
  944. /**
  945. * @covers PHPUnit_Framework_Assert::assertEquals
  946. */
  947. public function testAssertStringEqualsNumeric()
  948. {
  949. $this->assertEquals('0', 0);
  950. try {
  951. $this->assertEquals('0', 1);
  952. }
  953. catch (PHPUnit_Framework_AssertionFailedError $e) {
  954. return;
  955. }
  956. $this->fail();
  957. }
  958. /**
  959. * @covers PHPUnit_Framework_Assert::assertNotEquals
  960. */
  961. public function testAssertStringEqualsNumeric2()
  962. {
  963. $this->assertNotEquals('A', 0);
  964. }
  965. /**
  966. * @covers PHPUnit_Framework_Assert::assertFileExists
  967. * @expectedException PHPUnit_Framework_Exception
  968. */
  969. public function testAssertFileExistsThrowsException()
  970. {
  971. $this->assertFileExists(NULL);
  972. }
  973. /**
  974. * @covers PHPUnit_Framework_Assert::assertFileExists
  975. */
  976. public function testAssertFileExists()
  977. {
  978. $this->assertFileExists(__FILE__);
  979. try {
  980. $this->assertFileExists(__DIR__ . DIRECTORY_SEPARATOR . 'NotExisting');
  981. }
  982. catch (PHPUnit_Framework_AssertionFailedError $e) {
  983. return;
  984. }
  985. $this->fail();
  986. }
  987. /**
  988. * @covers PHPUnit_Framework_Assert::assertFileNotExists
  989. * @expectedException PHPUnit_Framework_Exception
  990. */
  991. public function testAssertFileNotExistsThrowsException()
  992. {
  993. $this->assertFileNotExists(NULL);
  994. }
  995. /**
  996. * @covers PHPUnit_Framework_Assert::assertFileNotExists
  997. */
  998. public function testAssertFileNotExists()
  999. {
  1000. $this->assertFileNotExists(__DIR__ . DIRECTORY_SEPARATOR . 'NotExisting');
  1001. try {
  1002. $this->assertFileNotExists(__FILE__);
  1003. }
  1004. catch (PHPUnit_Framework_AssertionFailedError $e) {
  1005. return;
  1006. }
  1007. $this->fail();
  1008. }
  1009. /**
  1010. * @covers PHPUnit_Framework_Assert::assertObjectHasAttribute
  1011. */
  1012. public function testAssertObjectHasAttribute()
  1013. {
  1014. $o = new Author('Terry Pratchett');
  1015. $this->assertObjectHasAttribute('name', $o);
  1016. try {
  1017. $this->assertObjectHasAttribute('foo', $o);
  1018. }
  1019. catch (PHPUnit_Framework_AssertionFailedError $e) {
  1020. return;
  1021. }
  1022. $this->fail();
  1023. }
  1024. /**
  1025. * @covers PHPUnit_Framework_Assert::assertObjectNotHasAttribute
  1026. */
  1027. public function testAssertObjectNotHasAttribute()
  1028. {
  1029. $o = new Author('Terry Pratchett');
  1030. $this->assertObjectNotHasAttribute('foo', $o);
  1031. try {
  1032. $this->assertObjectNotHasAttribute('name', $o);
  1033. }
  1034. catch (PHPUnit_Framework_AssertionFailedError $e) {
  1035. return;
  1036. }
  1037. $this->fail();
  1038. }
  1039. /**
  1040. * @covers PHPUnit_Framework_Assert::assertNull
  1041. */
  1042. public function testAssertNull()
  1043. {
  1044. $this->assertNull(NULL);
  1045. try {
  1046. $this->assertNull(new stdClass);
  1047. }
  1048. catch (PHPUnit_Framework_AssertionFailedError $e) {
  1049. return;
  1050. }
  1051. $this->fail();
  1052. }
  1053. /**
  1054. * @covers PHPUnit_Framework_Assert::assertNotNull
  1055. */
  1056. public function testAssertNotNull()
  1057. {
  1058. $this->assertNotNull(new stdClass);
  1059. try {
  1060. $this->assertNotNull(NULL);
  1061. }
  1062. catch (PHPUnit_Framework_AssertionFailedError $e) {
  1063. return;
  1064. }
  1065. $this->fail();
  1066. }
  1067. /**
  1068. * @covers PHPUnit_Framework_Assert::assertTrue
  1069. */
  1070. public function testAssertTrue()
  1071. {
  1072. $this->assertTrue(TRUE);
  1073. try {
  1074. $this->assertTrue(FALSE);
  1075. }
  1076. catch (PHPUnit_Framework_AssertionFailedError $e) {
  1077. return;
  1078. }
  1079. $this->fail();
  1080. }
  1081. /**
  1082. * @covers PHPUnit_Framework_Assert::assertFalse
  1083. */
  1084. public function testAssertFalse()
  1085. {
  1086. $this->assertFalse(FALSE);
  1087. try {
  1088. $this->assertFalse(TRUE);
  1089. }
  1090. catch (PHPUnit_Framework_AssertionFailedError $e) {
  1091. return;
  1092. }
  1093. $this->fail();
  1094. }
  1095. /**
  1096. * @covers PHPUnit_Framework_Assert::assertRegExp
  1097. * @expectedException PHPUnit_Framework_Exception
  1098. */
  1099. public function testAssertRegExpThrowsException()
  1100. {
  1101. $this->assertRegExp(NULL, NULL);
  1102. }
  1103. /**
  1104. * @covers PHPUnit_Framework_Assert::assertRegExp
  1105. * @expectedException PHPUnit_Framework_Exception
  1106. */
  1107. public function testAssertRegExpThrowsException2()
  1108. {
  1109. $this->assertRegExp('', NULL);
  1110. }
  1111. /**
  1112. * @covers PHPUnit_Framework_Assert::assertNotRegExp
  1113. * @expectedException PHPUnit_Framework_Exception
  1114. */
  1115. public function testAssertNotRegExpThrowsException()
  1116. {
  1117. $this->assertNotRegExp(NULL, NULL);
  1118. }
  1119. /**
  1120. * @covers PHPUnit_Framework_Assert::assertNotRegExp
  1121. * @expectedException PHPUnit_Framework_Exception
  1122. */
  1123. public function testAssertNotRegExpThrowsException2()
  1124. {
  1125. $this->assertNotRegExp('', NULL);
  1126. }
  1127. /**
  1128. * @covers PHPUnit_Framework_Assert::assertRegExp
  1129. */
  1130. public function testAssertRegExp()
  1131. {
  1132. $this->assertRegExp('/foo/', 'foobar');
  1133. try {
  1134. $this->assertRegExp('/foo/', 'bar');
  1135. }
  1136. catch (PHPUnit_Framework_AssertionFailedError $e) {
  1137. return;
  1138. }
  1139. $this->fail();
  1140. }
  1141. /**
  1142. * @covers PHPUnit_Framework_Assert::assertNotRegExp
  1143. */
  1144. public function testAssertNotRegExp()
  1145. {
  1146. $this->assertNotRegExp('/foo/', 'bar');
  1147. try {
  1148. $this->assertNotRegExp('/foo/', 'foobar');
  1149. }
  1150. catch (PHPUnit_Framework_AssertionFailedError $e) {
  1151. return;
  1152. }
  1153. $this->fail();
  1154. }
  1155. /**
  1156. * @covers PHPUnit_Framework_Assert::assertSame
  1157. */
  1158. public function testAssertSame()
  1159. {
  1160. $o = new stdClass;
  1161. $this->assertSame($o, $o);
  1162. try {
  1163. $this->assertSame(
  1164. new stdClass,
  1165. new stdClass
  1166. );
  1167. }
  1168. catch (PHPUnit_Framework_AssertionFailedError $e) {
  1169. return;
  1170. }
  1171. $this->fail();
  1172. }
  1173. /**
  1174. * @covers PHPUnit_Framework_Assert::assertSame
  1175. */
  1176. public function testAssertSame2()
  1177. {
  1178. $this->assertSame(TRUE, TRUE);
  1179. $this->assertSame(FALSE, FALSE);
  1180. try {
  1181. $this->assertSame(TRUE, FALSE);
  1182. }
  1183. catch (PHPUnit_Framework_AssertionFailedError $e) {
  1184. return;
  1185. }
  1186. $this->fail();
  1187. }
  1188. /**
  1189. * @covers PHPUnit_Framework_Assert::assertNotSame
  1190. */
  1191. public function testAssertNotSame()
  1192. {
  1193. $this->assertNotSame(
  1194. new stdClass,
  1195. NULL
  1196. );
  1197. $this->assertNotSame(
  1198. NULL,
  1199. new stdClass
  1200. );
  1201. $this->assertNotSame(
  1202. new stdClass,
  1203. new stdClass
  1204. );
  1205. $o = new stdClass;
  1206. try {
  1207. $this->assertNotSame($o, $o);
  1208. }
  1209. catch (PHPUnit_Framework_AssertionFailedError $e) {
  1210. return;
  1211. }
  1212. $this->fail();
  1213. }
  1214. /**
  1215. * @covers PHPUnit_Framework_Assert::assertNotSame
  1216. */
  1217. public function testAssertNotSame2()
  1218. {
  1219. $this->assertNotSame(TRUE, FALSE);
  1220. $this->assertNotSame(FALSE, TRUE);
  1221. try {
  1222. $this->assertNotSame(TRUE, TRUE);
  1223. }
  1224. catch (PHPUnit_Framework_AssertionFailedError $e) {
  1225. return;
  1226. }
  1227. $this->fail();
  1228. }
  1229. /**
  1230. * @covers PHPUnit_Framework_Assert::assertNotSame
  1231. */
  1232. public function testAssertNotSameFailsNull()
  1233. {
  1234. try {
  1235. $this->assertNotSame(NULL, NULL);
  1236. }
  1237. catch (PHPUnit_Framework_AssertionFailedError $e) {
  1238. return;
  1239. }
  1240. $this->fail();
  1241. }
  1242. /**
  1243. * @covers PHPUnit_Framework_Assert::assertGreaterThan
  1244. */
  1245. public function testGreaterThan()
  1246. {
  1247. $this->assertGreaterThan(1, 2);
  1248. try {
  1249. $this->assertGreaterThan(2, 1);
  1250. }
  1251. catch (PHPUnit_Framework_AssertionFailedError $e) {
  1252. return;
  1253. }
  1254. $this->fail();
  1255. }
  1256. /**
  1257. * @covers PHPUnit_Framework_Assert::assertAttributeGreaterThan
  1258. */
  1259. public function testAttributeGreaterThan()
  1260. {
  1261. $this->assertAttributeGreaterThan(
  1262. 1, 'bar', new ClassWithNonPublicAttributes
  1263. );
  1264. try {
  1265. $this->assertAttributeGreaterThan(
  1266. 1, 'foo', new ClassWithNonPublicAttributes
  1267. );
  1268. }
  1269. catch (PHPUnit_Framework_AssertionFailedError $e) {
  1270. return;
  1271. }
  1272. $this->fail();
  1273. }
  1274. /**
  1275. * @covers PHPUnit_Framework_Assert::assertGreaterThanOrEqual
  1276. */
  1277. public function testGreaterThanOrEqual()
  1278. {
  1279. $this->assertGreaterThanOrEqual(1, 2);
  1280. try {
  1281. $this->assertGreaterThanOrEqual(2, 1);
  1282. }
  1283. catch (PHPUnit_Framework_AssertionFailedError $e) {
  1284. return;
  1285. }
  1286. $this->fail();
  1287. }
  1288. /**
  1289. * @covers PHPUnit_Framework_Assert::assertAttributeGreaterThanOrEqual
  1290. */
  1291. public function testAttributeGreaterThanOrEqual()
  1292. {
  1293. $this->assertAttributeGreaterThanOrEqual(
  1294. 1, 'bar', new ClassWithNonPublicAttributes
  1295. );
  1296. try {
  1297. $this->assertAttributeGreaterThanOrEqual(
  1298. 2, 'foo', new ClassWithNonPublicAttributes
  1299. );
  1300. }
  1301. catch (PHPUnit_Framework_AssertionFailedError $e) {
  1302. return;
  1303. }
  1304. $this->fail();
  1305. }
  1306. /**
  1307. * @covers PHPUnit_Framework_Assert::assertLessThan
  1308. */
  1309. public function testLessThan()
  1310. {
  1311. $this->assertLessThan(2, 1);
  1312. try {
  1313. $this->assertLessThan(1, 2);
  1314. }
  1315. catch (PHPUnit_Framework_AssertionFailedError $e) {
  1316. return;
  1317. }
  1318. $this->fail();
  1319. }
  1320. /**
  1321. * @covers PHPUnit_Framework_Assert::assertAttributeLessThan
  1322. */
  1323. public function testAttributeLessThan()
  1324. {
  1325. $this->assertAttributeLessThan(
  1326. 2, 'foo', new ClassWithNonPublicAttributes
  1327. );
  1328. try {
  1329. $this->assertAttributeLessThan(
  1330. 1, 'bar', new ClassWithNonPublicAttributes
  1331. );
  1332. }
  1333. catch (PHPUnit_Framework_AssertionFailedError $e) {
  1334. return;
  1335. }
  1336. $this->fail();
  1337. }
  1338. /**
  1339. * @covers PHPUnit_Framework_Assert::assertLessThanOrEqual
  1340. */
  1341. public function testLessThanOrEqual()
  1342. {
  1343. $this->assertLessThanOrEqual(2, 1);
  1344. try {
  1345. $this->assertLessThanOrEqual(1, 2);
  1346. }
  1347. catch (PHPUnit_Framework_AssertionFailedError $e) {
  1348. return;
  1349. }
  1350. $this->fail();
  1351. }
  1352. /**
  1353. * @covers PHPUnit_Framework_Assert::assertAttributeLessThanOrEqual
  1354. */
  1355. public function testAttributeLessThanOrEqual()
  1356. {
  1357. $this->assertAttributeLessThanOrEqual(
  1358. 2, 'foo', new ClassWithNonPublicAttributes
  1359. );
  1360. try {
  1361. $this->assertAttributeLessThanOrEqual(
  1362. 1, 'bar', new ClassWithNonPublicAttributes
  1363. );
  1364. }
  1365. catch (PHPUnit_Framework_AssertionFailedError $e) {
  1366. return;
  1367. }
  1368. $this->fail();
  1369. }
  1370. /**
  1371. * @covers PHPUnit_Framework_Assert::readAttribute
  1372. */
  1373. public function testReadAttribute()
  1374. {
  1375. $obj = new ClassWithNonPublicAttributes;
  1376. $this->assertEquals('foo', $this->readAttribute($obj, 'publicAttribute'));
  1377. $this->assertEquals('bar', $this->readAttribute($obj, 'protectedAttribute'));
  1378. $this->assertEquals('baz', $this->readAttribute($obj, 'privateAttribute'));
  1379. $this->assertEquals('bar', $this->readAttribute($obj, 'protectedParentAttribute'));
  1380. //$this->assertEquals('bar', $this->readAttribute($obj, 'privateParentAttribute'));
  1381. }
  1382. /**
  1383. * @covers PHPUnit_Framework_Assert::readAttribute
  1384. */
  1385. public function testReadAttribute2()
  1386. {
  1387. $this->assertEquals('foo', $this->readAttribute('ClassWithNonPublicAttributes', 'publicStaticAttribute'));
  1388. $this->assertEquals('bar', $this->readAttribute('ClassWithNonPublicAttributes', 'protectedStaticAttribute'));
  1389. $this->assertEquals('baz', $this->readAttribute('ClassWithNonPublicAttributes', 'privateStaticAttribute'));
  1390. $this->assertEquals('foo', $this->readAttribute('ClassWithNonPublicAttributes', 'protectedStaticParentAttribute'));
  1391. $this->assertEquals('foo', $this->readAttribute('ClassWithNonPublicAttributes', 'privateStaticParentAttribute'));
  1392. }
  1393. /**
  1394. * @covers PHPUnit_Framework_Assert::readAttribute
  1395. * @expectedException PHPUnit_Framework_Exception
  1396. */
  1397. public function testReadAttribute3()
  1398. {
  1399. $this->readAttribute('StdClass', NULL);
  1400. }
  1401. /**
  1402. * @covers PHPUnit_Framework_Assert::readAttribute
  1403. * @expectedException PHPUnit_Framework_Exception
  1404. */
  1405. public function testReadAttribute4()
  1406. {
  1407. $this->readAttribute('NotExistingClass', 'foo');
  1408. }
  1409. /**
  1410. * @covers PHPUnit_Framework_Assert::readAttribute
  1411. * @expectedException PHPUnit_Framework_Exception
  1412. */
  1413. public function testReadAttribute5()
  1414. {
  1415. $this->readAttribute(NULL, 'foo');
  1416. }
  1417. /**
  1418. * @covers PHPUnit_Framework_Assert::assertAttributeContains
  1419. */
  1420. public function testAssertPublicAttributeContains()
  1421. {
  1422. $obj = new ClassWithNonPublicAttributes;
  1423. $this->assertAttributeContains('foo', 'publicArray', $obj);
  1424. try {
  1425. $this->assertAttributeContains('bar', 'publicArray', $obj);
  1426. }
  1427. catch (PHPUnit_Framework_AssertionFailedError $e) {
  1428. return;
  1429. }
  1430. $this->fail();
  1431. }
  1432. /**
  1433. * @covers PHPUnit_Framework_Assert::assertAttributeContainsOnly
  1434. */
  1435. public function testAssertPublicAttributeContainsOnly()
  1436. {
  1437. $obj = new ClassWithNonPublicAttributes;
  1438. $this->assertAttributeContainsOnly('string', 'publicArray', $obj);
  1439. try {
  1440. $this->assertAttributeContainsOnly('integer', 'publicArray', $obj);
  1441. }
  1442. catch (PHPUnit_Framework_AssertionFailedError $e) {
  1443. return;
  1444. }
  1445. $this->fail();
  1446. }
  1447. /**
  1448. * @covers PHPUnit_Framework_Assert::assertAttributeNotContains
  1449. */
  1450. public function testAssertPublicAttributeNotContains()
  1451. {
  1452. $obj = new ClassWithNonPublicAttributes;
  1453. $this->assertAttributeNotContains('bar', 'publicArray', $obj);
  1454. try {
  1455. $this->assertAttributeNotContains('foo', 'publicArray', $obj);
  1456. }
  1457. catch (PHPUnit_Framework_AssertionFailedError $e) {
  1458. return;
  1459. }
  1460. $this->fail();
  1461. }
  1462. /**
  1463. * @covers PHPUnit_Framework_Assert::assertAttributeNotContainsOnly
  1464. */
  1465. public function testAssertPublicAttributeNotContainsOnly()
  1466. {
  1467. $obj = new ClassWithNonPublicAttributes;
  1468. $this->assertAttributeNotContainsOnly('integer', 'publicArray', $obj);
  1469. try {
  1470. $this->assertAttributeNotContainsOnly('string', 'publicArray', $obj);
  1471. }
  1472. catch (PHPUnit_Framework_AssertionFailedError $e) {
  1473. return;
  1474. }
  1475. $this->fail();
  1476. }
  1477. /**
  1478. * @covers PHPUnit_Framework_Assert::assertAttributeContains
  1479. */
  1480. public function testAssertProtectedAttributeContains()
  1481. {
  1482. $obj = new ClassWithNonPublicAttributes;
  1483. $this->assertAttributeContains('bar', 'protectedArray', $obj);
  1484. try {
  1485. $this->assertAttributeContains('foo', 'protectedArray', $obj);
  1486. }
  1487. catch (PHPUnit_Framework_AssertionFailedError $e) {
  1488. return;
  1489. }
  1490. $this->fail();
  1491. }
  1492. /**
  1493. * @covers PHPUnit_Framework_Assert::assertAttributeNotContains
  1494. */
  1495. public function testAssertProtectedAttributeNotContains()
  1496. {
  1497. $obj = new ClassWithNonPublicAttributes;
  1498. $this->assertAttributeNotContains('foo', 'protectedArray', $obj);
  1499. try {
  1500. $this->assertAttributeNotContains('bar', 'protectedArray', $obj);
  1501. }
  1502. catch (PHPUnit_Framework_AssertionFailedError $e) {
  1503. return;
  1504. }
  1505. $this->fail();
  1506. }
  1507. /**
  1508. * @covers PHPUnit_Framework_Assert::assertAttributeContains
  1509. */
  1510. public function testAssertPrivateAttributeContains()
  1511. {
  1512. $obj = new ClassWithNonPublicAttributes;
  1513. $this->assertAttributeContains('baz', 'privateArray', $obj);
  1514. try {
  1515. $this->assertAttributeContains('foo', 'privateArray', $obj);
  1516. }
  1517. catch (PHPUnit_Framework_AssertionFailedError $e) {
  1518. return;
  1519. }
  1520. $this->fail();
  1521. }
  1522. /**
  1523. * @covers PHPUnit_Framework_Assert::assertAttributeNotContains
  1524. */
  1525. public function testAssertPrivateAttributeNotContains()
  1526. {
  1527. $obj = new ClassWithNonPublicAttributes;
  1528. $this->assertAttributeNotContains('foo', 'privateArray', $obj);
  1529. try {
  1530. $this->assertAttributeNotContains('baz', 'privateArray', $obj);
  1531. }
  1532. catch (PHPUnit_Framework_AssertionFailedError $e) {
  1533. return;
  1534. }
  1535. $this->fail();
  1536. }
  1537. /**
  1538. * @covers PHPUnit_Framework_Assert::assertAttributeEquals
  1539. */
  1540. public function testAssertPublicAttributeEquals()
  1541. {
  1542. $obj = new ClassWithNonPublicAttributes;
  1543. $this->assertAttributeEquals('foo', 'publicAttribute', $obj);
  1544. try {
  1545. $this->assertAttributeEquals('bar', 'publicAttribute', $obj);
  1546. }
  1547. catch (PHPUnit_Framework_AssertionFailedError $e) {
  1548. return;
  1549. }
  1550. $this->fail();
  1551. }
  1552. /**
  1553. * @covers PHPUnit_Framework_Assert::assertAttributeNotEquals
  1554. */
  1555. public function testAssertPublicAttributeNotEquals()
  1556. {
  1557. $obj = new ClassWithNonPublicAttributes;
  1558. $this->assertAttributeNotEquals('bar', 'publicAttribute', $obj);
  1559. try {
  1560. $this->assertAttributeNotEquals('foo', 'publicAttribute', $obj);
  1561. }
  1562. catch (PHPUnit_Framework_AssertionFailedError $e) {
  1563. return;
  1564. }
  1565. $this->fail();
  1566. }
  1567. /**
  1568. * @covers PHPUnit_Framework_Assert::assertAttributeSame
  1569. */
  1570. public function testAssertPublicAttributeSame()
  1571. {
  1572. $obj = new ClassWithNonPublicAttributes;
  1573. $this->assertAttributeSame('foo', 'publicAttribute', $obj);
  1574. try {
  1575. $this->assertAttributeSame('bar', 'publicAttribute', $obj);
  1576. }
  1577. catch (PHPUnit_Framework_AssertionFailedError $e) {
  1578. return;
  1579. }
  1580. $this->fail();
  1581. }
  1582. /**
  1583. * @covers PHPUnit_Framework_Assert::assertAttributeNotSame
  1584. */
  1585. public function testAssertPublicAttributeNotSame()
  1586. {
  1587. $obj = new ClassWithNonPublicAttributes;
  1588. $this->assertAttributeNotSame('bar', 'publicAttribute', $obj);
  1589. try {
  1590. $this->assertAttributeNotSame('foo', 'publicAttribute', $obj);
  1591. }
  1592. catch (PHPUnit_Framework_AssertionFailedError $e) {
  1593. return;
  1594. }
  1595. $this->fail();
  1596. }
  1597. /**
  1598. * @covers PHPUnit_Framework_Assert::assertAttributeEquals
  1599. */
  1600. public function testAssertProtectedAttributeEquals()
  1601. {
  1602. $obj = new ClassWithNonPublicAttributes;
  1603. $this->assertAttributeEquals('bar', 'protectedAttribute', $obj);
  1604. try {
  1605. $this->assertAttributeEquals('foo', 'protectedAttribute', $obj);
  1606. }
  1607. catch (PHPUnit_Framework_AssertionFailedError $e) {
  1608. return;
  1609. }
  1610. $this->fail();
  1611. }
  1612. /**
  1613. * @covers PHPUnit_Framework_Assert::assertAttributeNotEquals
  1614. */
  1615. public function testAssertProtectedAttributeNotEquals()
  1616. {
  1617. $obj = new ClassWithNonPublicAttributes;
  1618. $this->assertAttributeNotEquals('foo', 'protectedAttribute', $obj);
  1619. try {
  1620. $this->assertAttributeNotEquals('bar', 'protectedAttribute', $obj);
  1621. }
  1622. catch (PHPUnit_Framework_AssertionFailedError $e) {
  1623. return;
  1624. }
  1625. $this->fail();
  1626. }
  1627. /**
  1628. * @covers PHPUnit_Framework_Assert::assertAttributeEquals
  1629. */
  1630. public function testAssertPrivateAttributeEquals()
  1631. {
  1632. $obj = new ClassWithNonPublicAttributes;
  1633. $this->assertAttributeEquals('baz', 'privateAttribute', $obj);
  1634. try {
  1635. $this->assertAttributeEquals('foo', 'privateAttribute', $obj);
  1636. }
  1637. catch (PHPUnit_Framework_AssertionFailedError $e) {
  1638. return;
  1639. }
  1640. $this->fail();
  1641. }
  1642. /**
  1643. * @covers PHPUnit_Framework_Assert::assertAttributeNotEquals
  1644. */
  1645. public function testAssertPrivateAttributeNotEquals()
  1646. {
  1647. $obj = new ClassWithNonPublicAttributes;
  1648. $this->assertAttributeNotEquals('foo', 'privateAttribute', $obj);
  1649. try {
  1650. $this->assertAttributeNotEquals('baz', 'privateAttribute', $obj);
  1651. }
  1652. catch (PHPUnit_Framework_AssertionFailedError $e) {
  1653. return;
  1654. }
  1655. $this->fail();
  1656. }
  1657. /**
  1658. * @covers PHPUnit_Framework_Assert::assertAttributeEquals
  1659. */
  1660. public function testAssertPublicStaticAttributeEquals()
  1661. {
  1662. $this->assertAttributeEquals('foo', 'publicStaticAttribute', 'ClassWithNonPublicAttributes');
  1663. try {
  1664. $this->assertAttributeEquals('bar', 'publicStaticAttribute', 'ClassWithNonPublicAttributes');
  1665. }
  1666. catch (PHPUnit_Framework_AssertionFailedError $e) {
  1667. return;
  1668. }
  1669. $this->fail();
  1670. }
  1671. /**
  1672. * @covers PHPUnit_Framework_Assert::assertAttributeNotEquals
  1673. */
  1674. public function testAssertPublicStaticAttributeNotEquals()
  1675. {
  1676. $this->assertAttributeNotEquals('bar', 'publicStaticAttribute', 'ClassWithNonPublicAttributes');
  1677. try {
  1678. $this->assertAttributeNotEquals('foo', 'publicStaticAttribute', 'ClassWithNonPublicAttributes');
  1679. }
  1680. catch (PHPUnit_Framework_AssertionFailedError $e) {
  1681. return;
  1682. }
  1683. $this->fail();
  1684. }
  1685. /**
  1686. * @covers PHPUnit_Framework_Assert::assertAttributeEquals
  1687. */
  1688. public function testAssertProtectedStaticAttributeEquals()
  1689. {
  1690. $this->assertAttributeEquals('bar', 'protectedStaticAttribute', 'ClassWithNonPublicAttributes');
  1691. try {
  1692. $this->assertAttributeEquals('foo', 'protectedStaticAttribute', 'ClassWithNonPublicAttributes');
  1693. }
  1694. catch (PHPUnit_Framework_AssertionFailedError $e) {
  1695. return;
  1696. }
  1697. $this->fail();
  1698. }
  1699. /**
  1700. * @covers PHPUnit_Framework_Assert::assertAttributeNotEquals
  1701. */
  1702. public function testAssertProtectedStaticAttributeNotEquals()
  1703. {
  1704. $this->assertAttributeNotEquals('foo', 'protectedStaticAttribute', 'ClassWithNonPublicAttributes');
  1705. try {
  1706. $this->assertAttributeNotEquals('bar', 'protectedStaticAttribute', 'ClassWithNonPublicAttributes');
  1707. }
  1708. catch (PHPUnit_Framework_AssertionFailedError $e) {
  1709. return;
  1710. }
  1711. $this->fail();
  1712. }
  1713. /**
  1714. * @covers PHPUnit_Framework_Assert::assertAttributeEquals
  1715. */
  1716. public function testAssertPrivateStaticAttributeEquals()
  1717. {
  1718. $this->assertAttributeEquals('baz', 'privateStaticAttribute', 'ClassWithNonPublicAttributes');
  1719. try {
  1720. $this->assertAttributeEquals('foo', 'privateStaticAttribute', 'ClassWithNonPublicAttributes');
  1721. }
  1722. catch (PHPUnit_Framework_AssertionFailedError $e) {
  1723. return;
  1724. }
  1725. $this->fail();
  1726. }
  1727. /**
  1728. * @covers PHPUnit_Framework_Assert::assertAttributeNotEquals
  1729. */
  1730. public function testAssertPrivateStaticAttributeNotEquals()
  1731. {
  1732. $this->assertAttributeNotEquals('foo', 'privateStaticAttribute', 'ClassWithNonPublicAttributes');
  1733. try {
  1734. $this->assertAttributeNotEquals('baz', 'privateStaticAttribute', 'ClassWithNonPublicAttributes');
  1735. }
  1736. catch (PHPUnit_Framework_AssertionFailedError $e) {
  1737. return;
  1738. }
  1739. $this->fail();
  1740. }
  1741. /**
  1742. * @covers PHPUnit_Framework_Assert::assertClassHasAttribute
  1743. * @expectedException PHPUnit_Framework_Exception
  1744. */
  1745. public function testAssertClassHasAttributeThrowsException()
  1746. {
  1747. $this->assertClassHasAttribute(NULL, NULL);
  1748. }
  1749. /**
  1750. * @covers PHPUnit_Framework_Assert::assertClassHasAttribute
  1751. * @expectedException PHPUnit_Framework_Exception
  1752. */
  1753. public function testAssertClassHasAttributeThrowsException2()
  1754. {
  1755. $this->assertClassHasAttribute('foo', NULL);
  1756. }
  1757. /**
  1758. * @covers PHPUnit_Framework_Assert::assertClassNotHasAttribute
  1759. * @expectedException PHPUnit_Framework_Exception
  1760. */
  1761. public function testAssertClassNotHasAttributeThrowsException()
  1762. {
  1763. $this->assertClassNotHasAttribute(NULL, NULL);
  1764. }
  1765. /**
  1766. * @covers PHPUnit_Framework_Assert::assertClassNotHasAttribute
  1767. * @expectedException PHPUnit_Framework_Exception
  1768. */
  1769. public function testAssertClassNotHasAttributeThrowsException2()
  1770. {
  1771. $this->assertClassNotHasAttribute('foo', NULL);
  1772. }
  1773. /**
  1774. * @covers PHPUnit_Framework_Assert::assertClassHasStaticAttribute
  1775. * @expectedException PHPUnit_Framework_Exception
  1776. */
  1777. public function testAssertClassHasStaticAttributeThrowsException()
  1778. {
  1779. $this->assertClassHasStaticAttribute(NULL, NULL);
  1780. }
  1781. /**
  1782. * @covers PHPUnit_Framework_Assert::assertClassHasStaticAttribute
  1783. * @expectedException PHPUnit_Framework_Exception
  1784. */
  1785. public function testAssertClassHasStaticAttributeThrowsException2()
  1786. {
  1787. $this->assertClassHasStaticAttribute('foo', NULL);
  1788. }
  1789. /**
  1790. * @covers PHPUnit_Framework_Assert::assertClassNotHasStaticAttribute
  1791. * @expectedException PHPUnit_Framework_Exception
  1792. */
  1793. public function testAssertClassNotHasStaticAttributeThrowsException()
  1794. {
  1795. $this->assertClassNotHasStaticAttribute(NULL, NULL);
  1796. }
  1797. /**
  1798. * @covers PHPUnit_Framework_Assert::assertClassNotHasStaticAttribute
  1799. * @expectedException PHPUnit_Framework_Exception
  1800. */
  1801. public function testAssertClassNotHasStaticAttributeThrowsException2()
  1802. {
  1803. $this->assertClassNotHasStaticAttribute('foo', NULL);
  1804. }
  1805. /**
  1806. * @covers PHPUnit_Framework_Assert::assertObjectHasAttribute
  1807. * @expectedException PHPUnit_Framework_Exception
  1808. */
  1809. public function testAssertObjectHasAttributeThrowsException()
  1810. {
  1811. $this->assertObjectHasAttribute(NULL, NULL);
  1812. }
  1813. /**
  1814. * @covers PHPUnit_Framework_Assert::assertObjectHasAttribute
  1815. * @expectedException PHPUnit_Framework_Exception
  1816. */
  1817. public function testAssertObjectHasAttributeThrowsException2()
  1818. {
  1819. $this->assertObjectHasAttribute('foo', NULL);
  1820. }
  1821. /**
  1822. * @covers PHPUnit_Framework_Assert::assertObjectNotHasAttribute
  1823. * @expectedException PHPUnit_Framework_Exception
  1824. */
  1825. public function testAssertObjectNotHasAttributeThrowsException()
  1826. {
  1827. $this->assertObjectNotHasAttribute(NULL, NULL);
  1828. }
  1829. /**
  1830. * @covers PHPUnit_Framework_Assert::assertObjectNotHasAttribute
  1831. * @expectedException PHPUnit_Framework_Exception
  1832. */
  1833. public function testAssertObjectNotHasAttributeThrowsException2()
  1834. {
  1835. $this->assertObjectNotHasAttribute('foo', NULL);
  1836. }
  1837. /**
  1838. * @covers PHPUnit_Framework_Assert::assertClassHasAttribute
  1839. */
  1840. public function testClassHasPublicAttribute()
  1841. {
  1842. $this->assertClassHasAttribute('publicAttribute', 'ClassWithNonPublicAttributes');
  1843. try {
  1844. $this->assertClassHasAttribute('attribute', 'ClassWithNonPublicAttributes');
  1845. }
  1846. catch (PHPUnit_Framework_AssertionFailedError $e) {
  1847. return;
  1848. }
  1849. $this->fail();
  1850. }
  1851. /**
  1852. * @covers PHPUnit_Framework_Assert::assertClassNotHasAttribute
  1853. */
  1854. public function testClassNotHasPublicAttribute()
  1855. {
  1856. $this->assertClassNotHasAttribute('attribute', 'ClassWithNonPublicAttributes');
  1857. try {
  1858. $this->assertClassNotHasAttribute('publicAttribute', 'ClassWithNonPublicAttributes');
  1859. }
  1860. catch (PHPUnit_Framework_AssertionFailedError $e) {
  1861. return;
  1862. }
  1863. $this->fail();
  1864. }
  1865. /**
  1866. * @covers PHPUnit_Framework_Assert::assertClassHasStaticAttribute
  1867. */
  1868. public function testClassHasPublicStaticAttribute()
  1869. {
  1870. $this->assertClassHasStaticAttribute('publicStaticAttribute', 'ClassWithNonPublicAttributes');
  1871. try {
  1872. $this->assertClassHasStaticAttribute('attribute', 'ClassWithNonPublicAttributes');
  1873. }
  1874. catch (PHPUnit_Framework_AssertionFailedError $e) {
  1875. return;
  1876. }
  1877. $this->fail();
  1878. }
  1879. /**
  1880. * @covers PHPUnit_Framework_Assert::assertClassNotHasStaticAttribute
  1881. */
  1882. public function testClassNotHasPublicStaticAttribute()
  1883. {
  1884. $this->assertClassNotHasStaticAttribute('attribute', 'ClassWithNonPublicAttributes');
  1885. try {
  1886. $this->assertClassNotHasStaticAttribute('publicStaticAttribute', 'ClassWithNonPublicAttributes');
  1887. }
  1888. catch (PHPUnit_Framework_AssertionFailedError $e) {
  1889. return;
  1890. }
  1891. $this->fail();
  1892. }
  1893. /**
  1894. * @covers PHPUnit_Framework_Assert::assertObjectHasAttribute
  1895. */
  1896. public function testObjectHasPublicAttribute()
  1897. {
  1898. $obj = new ClassWithNonPublicAttributes;
  1899. $this->assertObjectHasAttribute('publicAttribute', $obj);
  1900. try {
  1901. $this->assertObjectHasAttribute('attribute', $obj);
  1902. }
  1903. catch (PHPUnit_Framework_AssertionFailedError $e) {
  1904. return;
  1905. }
  1906. $this->fail();
  1907. }
  1908. /**
  1909. * @covers PHPUnit_Framework_Assert::assertObjectNotHasAttribute
  1910. */
  1911. public function testObjectNotHasPublicAttribute()
  1912. {
  1913. $obj = new ClassWithNonPublicAttributes;
  1914. $this->assertObjectNotHasAttribute('attribute', $obj);
  1915. try {
  1916. $this->assertObjectNotHasAttribute('publicAttribute', $obj);
  1917. }
  1918. catch (PHPUnit_Framework_AssertionFailedError $e) {
  1919. return;
  1920. }
  1921. $this->fail();
  1922. }
  1923. /**
  1924. * @covers PHPUnit_Framework_Assert::assertObjectHasAttribute
  1925. */
  1926. public function testObjectHasOnTheFlyAttribute()
  1927. {
  1928. $obj = new StdClass;
  1929. $obj->foo = 'bar';
  1930. $this->assertObjectHasAttribute('foo', $obj);
  1931. try {
  1932. $this->assertObjectHasAttribute('bar', $obj);
  1933. }
  1934. catch (PHPUnit_Framework_AssertionFailedError $e) {
  1935. return;
  1936. }
  1937. $this->fail();
  1938. }
  1939. /**
  1940. * @covers PHPUnit_Framework_Assert::assertObjectNotHasAttribute
  1941. */
  1942. public function testObjectNotHasOnTheFlyAttribute()
  1943. {
  1944. $obj = new StdClass;
  1945. $obj->foo = 'bar';
  1946. $this->assertObjectNotHasAttribute('bar', $obj);
  1947. try {
  1948. $this->assertObjectNotHasAttribute('foo', $obj);
  1949. }
  1950. catch (PHPUnit_Framework_AssertionFailedError $e) {
  1951. return;
  1952. }
  1953. $this->fail();
  1954. }
  1955. /**
  1956. * @covers PHPUnit_Framework_Assert::assertObjectHasAttribute
  1957. */
  1958. public function testObjectHasProtectedAttribute()
  1959. {
  1960. $obj = new ClassWithNonPublicAttributes;
  1961. $this->assertObjectHasAttribute('protectedAttribute', $obj);
  1962. try {
  1963. $this->assertObjectHasAttribute('attribute', $obj);
  1964. }
  1965. catch (PHPUnit_Framework_AssertionFailedError $e) {
  1966. return;
  1967. }
  1968. $this->fail();
  1969. }
  1970. /**
  1971. * @covers PHPUnit_Framework_Assert::assertObjectNotHasAttribute
  1972. */
  1973. public function testObjectNotHasProtectedAttribute()
  1974. {
  1975. $obj = new ClassWithNonPublicAttributes;
  1976. $this->assertObjectNotHasAttribute('attribute', $obj);
  1977. try {
  1978. $this->assertObjectNotHasAttribute('protectedAttribute', $obj);
  1979. }
  1980. catch (PHPUnit_Framework_AssertionFailedError $e) {
  1981. return;
  1982. }
  1983. $this->fail();
  1984. }
  1985. /**
  1986. * @covers PHPUnit_Framework_Assert::assertObjectHasAttribute
  1987. */
  1988. public function testObjectHasPrivateAttribute()
  1989. {
  1990. $obj = new ClassWithNonPublicAttributes;
  1991. $this->assertObjectHasAttribute('privateAttribute', $obj);
  1992. try {
  1993. $this->assertObjectHasAttribute('attribute', $obj);
  1994. }
  1995. catch (PHPUnit_Framework_AssertionFailedError $e) {
  1996. return;
  1997. }
  1998. $this->fail();
  1999. }
  2000. /**
  2001. * @covers PHPUnit_Framework_Assert::assertObjectNotHasAttribute
  2002. */
  2003. public function testObjectNotHasPrivateAttribute()
  2004. {
  2005. $obj = new ClassWithNonPublicAttributes;
  2006. $this->assertObjectNotHasAttribute('attribute', $obj);
  2007. try {
  2008. $this->assertObjectNotHasAttribute('privateAttribute', $obj);
  2009. }
  2010. catch (PHPUnit_Framework_AssertionFailedError $e) {
  2011. return;
  2012. }
  2013. $this->fail();
  2014. }
  2015. /**
  2016. * @covers PHPUnit_Framework_Assert::assertThat
  2017. * @covers PHPUnit_Framework_Assert::attribute
  2018. * @covers PHPUnit_Framework_Assert::equalTo
  2019. */
  2020. public function testAssertThatAttributeEquals()
  2021. {
  2022. $this->assertThat(
  2023. new ClassWithNonPublicAttributes,
  2024. $this->attribute(
  2025. $this->equalTo('foo'),
  2026. 'publicAttribute'
  2027. )
  2028. );
  2029. }
  2030. /**
  2031. * @covers PHPUnit_Framework_Assert::assertThat
  2032. * @covers PHPUnit_Framework_Assert::attribute
  2033. * @covers PHPUnit_Framework_Assert::equalTo
  2034. * @expectedException PHPUnit_Framework_AssertionFailedError
  2035. */
  2036. public function testAssertThatAttributeEquals2()
  2037. {
  2038. $this->assertThat(
  2039. new ClassWithNonPublicAttributes,
  2040. $this->attribute(
  2041. $this->equalTo('bar'),
  2042. 'publicAttribute'
  2043. )
  2044. );
  2045. }
  2046. /**
  2047. * @covers PHPUnit_Framework_Assert::assertThat
  2048. * @covers PHPUnit_Framework_Assert::attribute
  2049. * @covers PHPUnit_Framework_Assert::equalTo
  2050. */
  2051. public function testAssertThatAttributeEqualTo()
  2052. {
  2053. $this->assertThat(
  2054. new ClassWithNonPublicAttributes,
  2055. $this->attributeEqualTo('publicAttribute', 'foo')
  2056. );
  2057. }
  2058. /**
  2059. * @covers PHPUnit_Framework_Assert::assertThat
  2060. * @covers PHPUnit_Framework_Assert::anything
  2061. */
  2062. public function testAssertThatAnything()
  2063. {
  2064. $this->assertThat('anything', $this->anything());
  2065. }
  2066. /**
  2067. * @covers PHPUnit_Framework_Assert::assertThat
  2068. * @covers PHPUnit_Framework_Assert::anything
  2069. * @covers PHPUnit_Framework_Assert::logicalAnd
  2070. */
  2071. public function testAssertThatAnythingAndAnything()
  2072. {
  2073. $this->assertThat(
  2074. 'anything',
  2075. $this->logicalAnd(
  2076. $this->anything(), $this->anything()
  2077. )
  2078. );
  2079. }
  2080. /**
  2081. * @covers PHPUnit_Framework_Assert::assertThat
  2082. * @covers PHPUnit_Framework_Assert::anything
  2083. * @covers PHPUnit_Framework_Assert::logicalOr
  2084. */
  2085. public function testAssertThatAnythingOrAnything()
  2086. {
  2087. $this->assertThat(
  2088. 'anything',
  2089. $this->logicalOr(
  2090. $this->anything(), $this->anything()
  2091. )
  2092. );
  2093. }
  2094. /**
  2095. * @covers PHPUnit_Framework_Assert::assertThat
  2096. * @covers PHPUnit_Framework_Assert::anything
  2097. * @covers PHPUnit_Framework_Assert::logicalNot
  2098. * @covers PHPUnit_Framework_Assert::logicalXor
  2099. */
  2100. public function testAssertThatAnythingXorNotAnything()
  2101. {
  2102. $this->assertThat(
  2103. 'anything',
  2104. $this->logicalXor(
  2105. $this->anything(),
  2106. $this->logicalNot($this->anything())
  2107. )
  2108. );
  2109. }
  2110. /**
  2111. * @covers PHPUnit_Framework_Assert::assertThat
  2112. * @covers PHPUnit_Framework_Assert::contains
  2113. */
  2114. public function testAssertThatContains()
  2115. {
  2116. $this->assertThat(array('foo'), $this->contains('foo'));
  2117. }
  2118. /**
  2119. * @covers PHPUnit_Framework_Assert::assertThat
  2120. * @covers PHPUnit_Framework_Assert::stringContains
  2121. */
  2122. public function testAssertThatStringContains()
  2123. {
  2124. $this->assertThat('barfoobar', $this->stringContains('foo'));
  2125. }
  2126. /**
  2127. * @covers PHPUnit_Framework_Assert::assertThat
  2128. * @covers PHPUnit_Framework_Assert::containsOnly
  2129. */
  2130. public function testAssertThatContainsOnly()
  2131. {
  2132. $this->assertThat(array('foo'), $this->containsOnly('string'));
  2133. }
  2134. /**
  2135. * @covers PHPUnit_Framework_Assert::assertThat
  2136. * @covers PHPUnit_Framework_Assert::containsOnlyInstancesOf
  2137. */
  2138. public function testAssertThatContainsOnlyInstancesOf()
  2139. {
  2140. $this->assertThat(array(new Book), $this->containsOnlyInstancesOf('Book'));
  2141. }
  2142. /**
  2143. * @covers PHPUnit_Framework_Assert::assertThat
  2144. * @covers PHPUnit_Framework_Assert::arrayHasKey
  2145. */
  2146. public function testAssertThatArrayHasKey()
  2147. {
  2148. $this->assertThat(array('foo' => 'bar'), $this->arrayHasKey('foo'));
  2149. }
  2150. /**
  2151. * @covers PHPUnit_Framework_Assert::assertThat
  2152. * @covers PHPUnit_Framework_Assert::classHasAttribute
  2153. */
  2154. public function testAssertThatClassHasAttribute()
  2155. {
  2156. $this->assertThat(
  2157. new ClassWithNonPublicAttributes,
  2158. $this->classHasAttribute('publicAttribute')
  2159. );
  2160. }
  2161. /**
  2162. * @covers PHPUnit_Framework_Assert::assertThat
  2163. * @covers PHPUnit_Framework_Assert::classHasStaticAttribute
  2164. */
  2165. public function testAssertThatClassHasStaticAttribute()
  2166. {
  2167. $this->assertThat(
  2168. new ClassWithNonPublicAttributes,
  2169. $this->classHasStaticAttribute('publicStaticAttribute')
  2170. );
  2171. }
  2172. /**
  2173. * @covers PHPUnit_Framework_Assert::assertThat
  2174. * @covers PHPUnit_Framework_Assert::objectHasAttribute
  2175. */
  2176. public function testAssertThatObjectHasAttribute()
  2177. {
  2178. $this->assertThat(
  2179. new ClassWithNonPublicAttributes,
  2180. $this->objectHasAttribute('publicAttribute')
  2181. );
  2182. }
  2183. /**
  2184. * @covers PHPUnit_Framework_Assert::assertThat
  2185. * @covers PHPUnit_Framework_Assert::equalTo
  2186. */
  2187. public function testAssertThatEqualTo()
  2188. {
  2189. $this->assertThat('foo', $this->equalTo('foo'));
  2190. }
  2191. /**
  2192. * @covers PHPUnit_Framework_Assert::assertThat
  2193. * @covers PHPUnit_Framework_Assert::identicalTo
  2194. */
  2195. public function testAssertThatIdenticalTo()
  2196. {
  2197. $value = new StdClass;
  2198. $constraint = $this->identicalTo($value);
  2199. $this->assertThat($value, $constraint);
  2200. }
  2201. /**
  2202. * @covers PHPUnit_Framework_Assert::assertThat
  2203. * @covers PHPUnit_Framework_Assert::isInstanceOf
  2204. */
  2205. public function testAssertThatIsInstanceOf()
  2206. {
  2207. $this->assertThat(new StdClass, $this->isInstanceOf('StdClass'));
  2208. }
  2209. /**
  2210. * @covers PHPUnit_Framework_Assert::assertThat
  2211. * @covers PHPUnit_Framework_Assert::isType
  2212. */
  2213. public function testAssertThatIsType()
  2214. {
  2215. $this->assertThat('string', $this->isType('string'));
  2216. }
  2217. /**
  2218. * @covers PHPUnit_Framework_Assert::assertThat
  2219. * @covers PHPUnit_Framework_Assert::fileExists
  2220. */
  2221. public function testAssertThatFileExists()
  2222. {
  2223. $this->assertThat(__FILE__, $this->fileExists());
  2224. }
  2225. /**
  2226. * @covers PHPUnit_Framework_Assert::assertThat
  2227. * @covers PHPUnit_Framework_Assert::greaterThan
  2228. */
  2229. public function testAssertThatGreaterThan()
  2230. {
  2231. $this->assertThat(2, $this->greaterThan(1));
  2232. }
  2233. /**
  2234. * @covers PHPUnit_Framework_Assert::assertThat
  2235. * @covers PHPUnit_Framework_Assert::greaterThanOrEqual
  2236. */
  2237. public function testAssertThatGreaterThanOrEqual()
  2238. {
  2239. $this->assertThat(2, $this->greaterThanOrEqual(1));
  2240. }
  2241. /**
  2242. * @covers PHPUnit_Framework_Assert::assertThat
  2243. * @covers PHPUnit_Framework_Assert::lessThan
  2244. */
  2245. public function testAssertThatLessThan()
  2246. {
  2247. $this->assertThat(1, $this->lessThan(2));
  2248. }
  2249. /**
  2250. * @covers PHPUnit_Framework_Assert::assertThat
  2251. * @covers PHPUnit_Framework_Assert::lessThanOrEqual
  2252. */
  2253. public function testAssertThatLessThanOrEqual()
  2254. {
  2255. $this->assertThat(1, $this->lessThanOrEqual(2));
  2256. }
  2257. /**
  2258. * @covers PHPUnit_Framework_Assert::assertThat
  2259. * @covers PHPUnit_Framework_Assert::matchesRegularExpression
  2260. */
  2261. public function testAssertThatMatchesRegularExpression()
  2262. {
  2263. $this->assertThat('foobar', $this->matchesRegularExpression('/foo/'));
  2264. }
  2265. /**
  2266. * @covers PHPUnit_Framework_Assert::assertTag
  2267. */
  2268. public function testAssertTagTypeTrue()
  2269. {
  2270. $matcher = array('tag' => 'html');
  2271. $this->assertTag($matcher, $this->html);
  2272. }
  2273. /**
  2274. * @covers PHPUnit_Framework_Assert::assertTag
  2275. * @expectedException PHPUnit_Framework_AssertionFailedError
  2276. */
  2277. public function testAssertTagTypeFalse()
  2278. {
  2279. $matcher = array('tag' => 'code');
  2280. $this->assertTag($matcher, $this->html);
  2281. }
  2282. /**
  2283. * @covers PHPUnit_Framework_Assert::assertTag
  2284. */
  2285. public function testAssertTagIdTrue()
  2286. {
  2287. $matcher = array('id' => 'test_text');
  2288. $this->assertTag($matcher, $this->html);
  2289. }
  2290. /**
  2291. * @covers PHPUnit_Framework_Assert::assertTag
  2292. * @expectedException PHPUnit_Framework_AssertionFailedError
  2293. */
  2294. public function testAssertTagIdFalse()
  2295. {
  2296. $matcher = array('id' => 'test_text_doesnt_exist');
  2297. $this->assertTag($matcher, $this->html);
  2298. }
  2299. /**
  2300. * @covers PHPUnit_Framework_Assert::assertTag
  2301. */
  2302. public function testAssertTagStringContentTrue()
  2303. {
  2304. $matcher = array('id' => 'test_text',
  2305. 'content' => 'My test tag content');
  2306. $this->assertTag($matcher, $this->html);
  2307. }
  2308. /**
  2309. * @covers PHPUnit_Framework_Assert::assertTag
  2310. * @expectedException PHPUnit_Framework_AssertionFailedError
  2311. */
  2312. public function testAssertTagStringContentFalse()
  2313. {
  2314. $matcher = array('id' => 'test_text',
  2315. 'content' => 'My non existent tag content');
  2316. $this->assertTag($matcher, $this->html);
  2317. }
  2318. /**
  2319. * @covers PHPUnit_Framework_Assert::assertTag
  2320. */
  2321. public function testAssertTagRegexpContentTrue()
  2322. {
  2323. $matcher = array('id' => 'test_text',
  2324. 'content' => 'regexp:/test tag/');
  2325. $this->assertTag($matcher, $this->html);
  2326. }
  2327. /**
  2328. * @covers PHPUnit_Framework_Assert::assertTag
  2329. */
  2330. public function testAssertTagRegexpModifierContentTrue()
  2331. {
  2332. $matcher = array('id' => 'test_text',
  2333. 'content' => 'regexp:/TEST TAG/i');
  2334. $this->assertTag($matcher, $this->html);
  2335. }
  2336. /**
  2337. * @covers PHPUnit_Framework_Assert::assertTag
  2338. * @expectedException PHPUnit_Framework_AssertionFailedError
  2339. */
  2340. public function testAssertTagRegexpContentFalse()
  2341. {
  2342. $matcher = array('id' => 'test_text',
  2343. 'content' => 'regexp:/asdf/');
  2344. $this->assertTag($matcher, $this->html);
  2345. }
  2346. /**
  2347. * @covers PHPUnit_Framework_Assert::assertTag
  2348. */
  2349. public function testAssertTagAttributesTrueA()
  2350. {
  2351. $matcher = array('tag' => 'span',
  2352. 'attributes' => array('class' => 'test_class'));
  2353. $this->assertTag($matcher, $this->html);
  2354. }
  2355. /**
  2356. * @covers PHPUnit_Framework_Assert::assertTag
  2357. */
  2358. public function testAssertTagAttributesTrueB()
  2359. {
  2360. $matcher = array('tag' => 'div',
  2361. 'attributes' => array('id' => 'test_child_id'));
  2362. $this->assertTag($matcher, $this->html);
  2363. }
  2364. /**
  2365. * @covers PHPUnit_Framework_Assert::assertTag
  2366. * @expectedException PHPUnit_Framework_AssertionFailedError
  2367. */
  2368. public function testAssertTagAttributesFalse()
  2369. {
  2370. $matcher = array('tag' => 'span',
  2371. 'attributes' => array('class' => 'test_missing_class'));
  2372. $this->assertTag($matcher, $this->html);
  2373. }
  2374. /**
  2375. * @covers PHPUnit_Framework_Assert::assertTag
  2376. */
  2377. public function testAssertTagAttributesRegexpTrueA()
  2378. {
  2379. $matcher = array('tag' => 'span',
  2380. 'attributes' => array('class' => 'regexp:/.+_class/'));
  2381. $this->assertTag($matcher, $this->html);
  2382. }
  2383. /**
  2384. * @covers PHPUnit_Framework_Assert::assertTag
  2385. */
  2386. public function testAssertTagAttributesRegexpTrueB()
  2387. {
  2388. $matcher = array('tag' => 'div',
  2389. 'attributes' => array('id' => 'regexp:/.+_child_.+/'));
  2390. $this->assertTag($matcher, $this->html);
  2391. }
  2392. /**
  2393. * @covers PHPUnit_Framework_Assert::assertTag
  2394. */
  2395. public function testAssertTagAttributesRegexpModifierTrue()
  2396. {
  2397. $matcher = array('tag' => 'div',
  2398. 'attributes' => array('id' => 'regexp:/.+_CHILD_.+/i'));
  2399. $this->assertTag($matcher, $this->html);
  2400. }
  2401. /**
  2402. * @covers PHPUnit_Framework_Assert::assertTag
  2403. * @expectedException PHPUnit_Framework_AssertionFailedError
  2404. */
  2405. public function testAssertTagAttributesRegexpModifierFalse()
  2406. {
  2407. $matcher = array('tag' => 'div',
  2408. 'attributes' => array('id' => 'regexp:/.+_CHILD_.+/'));
  2409. $this->assertTag($matcher, $this->html);
  2410. }
  2411. /**
  2412. * @covers PHPUnit_Framework_Assert::assertTag
  2413. * @expectedException PHPUnit_Framework_AssertionFailedError
  2414. */
  2415. public function testAssertTagAttributesRegexpFalse()
  2416. {
  2417. $matcher = array('tag' => 'span',
  2418. 'attributes' => array('class' => 'regexp:/.+_missing_.+/'));
  2419. $this->assertTag($matcher, $this->html);
  2420. }
  2421. /**
  2422. * @covers PHPUnit_Framework_Assert::assertTag
  2423. */
  2424. public function testAssertTagAttributesMultiPartClassTrueA()
  2425. {
  2426. $matcher = array('tag' => 'div',
  2427. 'id' => 'test_multi_class',
  2428. 'attributes' => array('class' => 'multi class'));
  2429. $this->assertTag($matcher, $this->html);
  2430. }
  2431. /**
  2432. * @covers PHPUnit_Framework_Assert::assertTag
  2433. */
  2434. public function testAssertTagAttributesMultiPartClassTrueB()
  2435. {
  2436. $matcher = array('tag' => 'div',
  2437. 'id' => 'test_multi_class',
  2438. 'attributes' => array('class' => 'multi'));
  2439. $this->assertTag($matcher, $this->html);
  2440. }
  2441. /**
  2442. * @covers PHPUnit_Framework_Assert::assertTag
  2443. * @expectedException PHPUnit_Framework_AssertionFailedError
  2444. */
  2445. public function testAssertTagAttributesMultiPartClassFalse()
  2446. {
  2447. $matcher = array('tag' => 'div',
  2448. 'id' => 'test_multi_class',
  2449. 'attributes' => array('class' => 'mul'));
  2450. $this->assertTag($matcher, $this->html);
  2451. }
  2452. /**
  2453. * @covers PHPUnit_Framework_Assert::assertTag
  2454. */
  2455. public function testAssertTagParentTrue()
  2456. {
  2457. $matcher = array('tag' => 'head',
  2458. 'parent' => array('tag' => 'html'));
  2459. $this->assertTag($matcher, $this->html);
  2460. }
  2461. /**
  2462. * @covers PHPUnit_Framework_Assert::assertTag
  2463. * @expectedException PHPUnit_Framework_AssertionFailedError
  2464. */
  2465. public function testAssertTagParentFalse()
  2466. {
  2467. $matcher = array('tag' => 'head',
  2468. 'parent' => array('tag' => 'div'));
  2469. $this->assertTag($matcher, $this->html);
  2470. }
  2471. /**
  2472. * @covers PHPUnit_Framework_Assert::assertTag
  2473. */
  2474. public function testAssertTagMultiplePossibleChildren()
  2475. {
  2476. $matcher = array(
  2477. 'tag' => 'li',
  2478. 'parent' => array(
  2479. 'tag' => 'ul',
  2480. 'id' => 'another_ul'
  2481. )
  2482. );
  2483. $this->assertTag($matcher, $this->html);
  2484. }
  2485. /**
  2486. * @covers PHPUnit_Framework_Assert::assertTag
  2487. */
  2488. public function testAssertTagChildTrue()
  2489. {
  2490. $matcher = array('tag' => 'html',
  2491. 'child' => array('tag' => 'head'));
  2492. $this->assertTag($matcher, $this->html);
  2493. }
  2494. /**
  2495. * @covers PHPUnit_Framework_Assert::assertTag
  2496. * @expectedException PHPUnit_Framework_AssertionFailedError
  2497. */
  2498. public function testAssertTagChildFalse()
  2499. {
  2500. $matcher = array('tag' => 'html',
  2501. 'child' => array('tag' => 'div'));
  2502. $this->assertTag($matcher, $this->html);
  2503. }
  2504. /**
  2505. * @covers PHPUnit_Framework_Assert::assertTag
  2506. */
  2507. public function testAssertTagAncestorTrue()
  2508. {
  2509. $matcher = array('tag' => 'div',
  2510. 'ancestor' => array('tag' => 'html'));
  2511. $this->assertTag($matcher, $this->html);
  2512. }
  2513. /**
  2514. * @covers PHPUnit_Framework_Assert::assertTag
  2515. * @expectedException PHPUnit_Framework_AssertionFailedError
  2516. */
  2517. public function testAssertTagAncestorFalse()
  2518. {
  2519. $matcher = array('tag' => 'html',
  2520. 'ancestor' => array('tag' => 'div'));
  2521. $this->assertTag($matcher, $this->html);
  2522. }
  2523. /**
  2524. * @covers PHPUnit_Framework_Assert::assertTag
  2525. */
  2526. public function testAssertTagDescendantTrue()
  2527. {
  2528. $matcher = array('tag' => 'html',
  2529. 'descendant' => array('tag' => 'div'));
  2530. $this->assertTag($matcher, $this->html);
  2531. }
  2532. /**
  2533. * @covers PHPUnit_Framework_Assert::assertTag
  2534. * @expectedException PHPUnit_Framework_AssertionFailedError
  2535. */
  2536. public function testAssertTagDescendantFalse()
  2537. {
  2538. $matcher = array('tag' => 'div',
  2539. 'descendant' => array('tag' => 'html'));
  2540. $this->assertTag($matcher, $this->html);
  2541. }
  2542. /**
  2543. * @covers PHPUnit_Framework_Assert::assertTag
  2544. */
  2545. public function testAssertTagChildrenCountTrue()
  2546. {
  2547. $matcher = array('tag' => 'ul',
  2548. 'children' => array('count' => 3));
  2549. $this->assertTag($matcher, $this->html);
  2550. }
  2551. /**
  2552. * @covers PHPUnit_Framework_Assert::assertTag
  2553. * @expectedException PHPUnit_Framework_AssertionFailedError
  2554. */
  2555. public function testAssertTagChildrenCountFalse()
  2556. {
  2557. $matcher = array('tag' => 'ul',
  2558. 'children' => array('count' => 5));
  2559. $this->assertTag($matcher, $this->html);
  2560. }
  2561. /**
  2562. * @covers PHPUnit_Framework_Assert::assertTag
  2563. */
  2564. public function testAssertTagChildrenLessThanTrue()
  2565. {
  2566. $matcher = array('tag' => 'ul',
  2567. 'children' => array('less_than' => 10));
  2568. $this->assertTag($matcher, $this->html);
  2569. }
  2570. /**
  2571. * @covers PHPUnit_Framework_Assert::assertTag
  2572. * @expectedException PHPUnit_Framework_AssertionFailedError
  2573. */
  2574. public function testAssertTagChildrenLessThanFalse()
  2575. {
  2576. $matcher = array('tag' => 'ul',
  2577. 'children' => array('less_than' => 2));
  2578. $this->assertTag($matcher, $this->html);
  2579. }
  2580. /**
  2581. * @covers PHPUnit_Framework_Assert::assertTag
  2582. */
  2583. public function testAssertTagChildrenGreaterThanTrue()
  2584. {
  2585. $matcher = array('tag' => 'ul',
  2586. 'children' => array('greater_than' => 2));
  2587. $this->assertTag($matcher, $this->html);
  2588. }
  2589. /**
  2590. * @covers PHPUnit_Framework_Assert::assertTag
  2591. * @expectedException PHPUnit_Framework_AssertionFailedError
  2592. */
  2593. public function testAssertTagChildrenGreaterThanFalse()
  2594. {
  2595. $matcher = array('tag' => 'ul',
  2596. 'children' => array('greater_than' => 10));
  2597. $this->assertTag($matcher, $this->html);
  2598. }
  2599. /**
  2600. * @covers PHPUnit_Framework_Assert::assertTag
  2601. */
  2602. public function testAssertTagChildrenOnlyTrue()
  2603. {
  2604. $matcher = array('tag' => 'ul',
  2605. 'children' => array('only' => array('tag' =>'li')));
  2606. $this->assertTag($matcher, $this->html);
  2607. }
  2608. /**
  2609. * @covers PHPUnit_Framework_Assert::assertTag
  2610. * @expectedException PHPUnit_Framework_AssertionFailedError
  2611. */
  2612. public function testAssertTagChildrenOnlyFalse()
  2613. {
  2614. $matcher = array('tag' => 'ul',
  2615. 'children' => array('only' => array('tag' =>'div')));
  2616. $this->assertTag($matcher, $this->html);
  2617. }
  2618. /**
  2619. * @covers PHPUnit_Framework_Assert::assertTag
  2620. */
  2621. public function testAssertTagTypeIdTrueA()
  2622. {
  2623. $matcher = array('tag' => 'ul', 'id' => 'my_ul');
  2624. $this->assertTag($matcher, $this->html);
  2625. }
  2626. /**
  2627. * @covers PHPUnit_Framework_Assert::assertTag
  2628. */
  2629. public function testAssertTagTypeIdTrueB()
  2630. {
  2631. $matcher = array('id' => 'my_ul', 'tag' => 'ul');
  2632. $this->assertTag($matcher, $this->html);
  2633. }
  2634. /**
  2635. * @covers PHPUnit_Framework_Assert::assertTag
  2636. */
  2637. public function testAssertTagTypeIdTrueC()
  2638. {
  2639. $matcher = array('tag' => 'input', 'id' => 'input_test_id');
  2640. $this->assertTag($matcher, $this->html);
  2641. }
  2642. /**
  2643. * @covers PHPUnit_Framework_Assert::assertTag
  2644. * @expectedException PHPUnit_Framework_AssertionFailedError
  2645. */
  2646. public function testAssertTagTypeIdFalse()
  2647. {
  2648. $matcher = array('tag' => 'div', 'id' => 'my_ul');
  2649. $this->assertTag($matcher, $this->html);
  2650. }
  2651. /**
  2652. * @covers PHPUnit_Framework_Assert::assertTag
  2653. */
  2654. public function testAssertTagContentAttributes()
  2655. {
  2656. $matcher = array('tag' => 'div',
  2657. 'content' => 'Test Id Text',
  2658. 'attributes' => array('id' => 'test_id',
  2659. 'class' => 'my_test_class'));
  2660. $this->assertTag($matcher, $this->html);
  2661. }
  2662. /**
  2663. * @covers PHPUnit_Framework_Assert::assertTag
  2664. */
  2665. public function testAssertParentContentAttributes()
  2666. {
  2667. $matcher = array('tag' => 'div',
  2668. 'content' => 'Test Id Text',
  2669. 'attributes' => array('id' => 'test_id',
  2670. 'class' => 'my_test_class'),
  2671. 'parent' => array('tag' => 'body'));
  2672. $this->assertTag($matcher, $this->html);
  2673. }
  2674. /**
  2675. * @covers PHPUnit_Framework_Assert::assertTag
  2676. */
  2677. public function testAssertChildContentAttributes()
  2678. {
  2679. $matcher = array('tag' => 'div',
  2680. 'content' => 'Test Id Text',
  2681. 'attributes' => array('id' => 'test_id',
  2682. 'class' => 'my_test_class'),
  2683. 'child' => array('tag' => 'div',
  2684. 'attributes' => array('id' => 'test_child_id')));
  2685. $this->assertTag($matcher, $this->html);
  2686. }
  2687. /**
  2688. * @covers PHPUnit_Framework_Assert::assertTag
  2689. */
  2690. public function testAssertChildSubChildren()
  2691. {
  2692. $matcher = array('id' => 'test_id',
  2693. 'child' => array('id' => 'test_child_id',
  2694. 'child' => array('id' => 'test_subchild_id')));
  2695. $this->assertTag($matcher, $this->html);
  2696. }
  2697. /**
  2698. * @covers PHPUnit_Framework_Assert::assertTag
  2699. */
  2700. public function testAssertAncestorContentAttributes()
  2701. {
  2702. $matcher = array('id' => 'test_subchild_id',
  2703. 'content' => 'My Subchild',
  2704. 'attributes' => array('id' => 'test_subchild_id'),
  2705. 'ancestor' => array('tag' => 'div',
  2706. 'attributes' => array('id' => 'test_id')));
  2707. $this->assertTag($matcher, $this->html);
  2708. }
  2709. /**
  2710. * @covers PHPUnit_Framework_Assert::assertTag
  2711. */
  2712. public function testAssertDescendantContentAttributes()
  2713. {
  2714. $matcher = array('id' => 'test_id',
  2715. 'content' => 'Test Id Text',
  2716. 'attributes' => array('id' => 'test_id'),
  2717. 'descendant' => array('tag' => 'span',
  2718. 'attributes' => array('id' => 'test_subchild_id')));
  2719. $this->assertTag($matcher, $this->html);
  2720. }
  2721. /**
  2722. * @covers PHPUnit_Framework_Assert::assertTag
  2723. */
  2724. public function testAssertChildrenContentAttributes()
  2725. {
  2726. $matcher = array('id' => 'test_children',
  2727. 'content' => 'My Children',
  2728. 'attributes' => array('class' => 'children'),
  2729. 'children' => array('less_than' => '25',
  2730. 'greater_than' => '2',
  2731. 'only' => array('tag' => 'div',
  2732. 'attributes' => array('class' => 'my_child'))
  2733. ));
  2734. $this->assertTag($matcher, $this->html);
  2735. }
  2736. /**
  2737. * @covers PHPUnit_Framework_Assert::assertNotTag
  2738. */
  2739. public function testAssertNotTagTypeIdFalse()
  2740. {
  2741. $matcher = array('tag' => 'div', 'id' => 'my_ul');
  2742. $this->assertNotTag($matcher, $this->html);
  2743. }
  2744. /**
  2745. * @covers PHPUnit_Framework_Assert::assertNotTag
  2746. * @expectedException PHPUnit_Framework_AssertionFailedError
  2747. */
  2748. public function testAssertNotTagContentAttributes()
  2749. {
  2750. $matcher = array('tag' => 'div',
  2751. 'content' => 'Test Id Text',
  2752. 'attributes' => array('id' => 'test_id',
  2753. 'class' => 'my_test_class'));
  2754. $this->assertNotTag($matcher, $this->html);
  2755. }
  2756. /**
  2757. * @covers PHPUnit_Framework_Assert::assertSelectCount
  2758. */
  2759. public function testAssertSelectCountPresentTrue()
  2760. {
  2761. $selector = 'div#test_id';
  2762. $count = TRUE;
  2763. $this->assertSelectCount($selector, $count, $this->html);
  2764. }
  2765. /**
  2766. * @covers PHPUnit_Framework_Assert::assertSelectCount
  2767. * @expectedException PHPUnit_Framework_AssertionFailedError
  2768. */
  2769. public function testAssertSelectCountPresentFalse()
  2770. {
  2771. $selector = 'div#non_existent';
  2772. $count = TRUE;
  2773. $this->assertSelectCount($selector, $count, $this->html);
  2774. }
  2775. /**
  2776. * @covers PHPUnit_Framework_Assert::assertSelectCount
  2777. */
  2778. public function testAssertSelectCountNotPresentTrue()
  2779. {
  2780. $selector = 'div#non_existent';
  2781. $count = FALSE;
  2782. $this->assertSelectCount($selector, $count, $this->html);
  2783. }
  2784. /**
  2785. * @covers PHPUnit_Framework_Assert::assertSelectCount
  2786. * @expectedException PHPUnit_Framework_AssertionFailedError
  2787. */
  2788. public function testAssertSelectNotPresentFalse()
  2789. {
  2790. $selector = 'div#test_id';
  2791. $count = FALSE;
  2792. $this->assertSelectCount($selector, $count, $this->html);
  2793. }
  2794. /**
  2795. * @covers PHPUnit_Framework_Assert::assertSelectCount
  2796. */
  2797. public function testAssertSelectCountChildTrue()
  2798. {
  2799. $selector = '#my_ul > li';
  2800. $count = 3;
  2801. $this->assertSelectCount($selector, $count, $this->html);
  2802. }
  2803. /**
  2804. * @covers PHPUnit_Framework_Assert::assertSelectCount
  2805. * @expectedException PHPUnit_Framework_AssertionFailedError
  2806. */
  2807. public function testAssertSelectCountChildFalse()
  2808. {
  2809. $selector = '#my_ul > li';
  2810. $count = 4;
  2811. $this->assertSelectCount($selector, $count, $this->html);
  2812. }
  2813. /**
  2814. * @covers PHPUnit_Framework_Assert::assertSelectCount
  2815. */
  2816. public function testAssertSelectCountDescendantTrue()
  2817. {
  2818. $selector = '#my_ul li';
  2819. $count = 3;
  2820. $this->assertSelectCount($selector, $count, $this->html);
  2821. }
  2822. /**
  2823. * @covers PHPUnit_Framework_Assert::assertSelectCount
  2824. * @expectedException PHPUnit_Framework_AssertionFailedError
  2825. */
  2826. public function testAssertSelectCountDescendantFalse()
  2827. {
  2828. $selector = '#my_ul li';
  2829. $count = 4;
  2830. $this->assertSelectCount($selector, $count, $this->html);
  2831. }
  2832. /**
  2833. * @covers PHPUnit_Framework_Assert::assertSelectCount
  2834. */
  2835. public function testAssertSelectCountGreaterThanTrue()
  2836. {
  2837. $selector = '#my_ul > li';
  2838. $range = array('>' => 2);
  2839. $this->assertSelectCount($selector, $range, $this->html);
  2840. }
  2841. /**
  2842. * @covers PHPUnit_Framework_Assert::assertSelectCount
  2843. * @expectedException PHPUnit_Framework_AssertionFailedError
  2844. */
  2845. public function testAssertSelectCountGreaterThanFalse()
  2846. {
  2847. $selector = '#my_ul > li';
  2848. $range = array('>' => 3);
  2849. $this->assertSelectCount($selector, $range, $this->html);
  2850. }
  2851. /**
  2852. * @covers PHPUnit_Framework_Assert::assertSelectCount
  2853. */
  2854. public function testAssertSelectCountGreaterThanEqualToTrue()
  2855. {
  2856. $selector = '#my_ul > li';
  2857. $range = array('>=' => 3);
  2858. $this->assertSelectCount($selector, $range, $this->html);
  2859. }
  2860. /**
  2861. * @covers PHPUnit_Framework_Assert::assertSelectCount
  2862. * @expectedException PHPUnit_Framework_AssertionFailedError
  2863. */
  2864. public function testAssertSelectCountGreaterThanEqualToFalse()
  2865. {
  2866. $selector = '#my_ul > li';
  2867. $range = array('>=' => 4);
  2868. $this->assertSelectCount($selector, $range, $this->html);
  2869. }
  2870. /**
  2871. * @covers PHPUnit_Framework_Assert::assertSelectCount
  2872. */
  2873. public function testAssertSelectCountLessThanTrue()
  2874. {
  2875. $selector = '#my_ul > li';
  2876. $range = array('<' => 4);
  2877. $this->assertSelectCount($selector, $range, $this->html);
  2878. }
  2879. /**
  2880. * @covers PHPUnit_Framework_Assert::assertSelectCount
  2881. * @expectedException PHPUnit_Framework_AssertionFailedError
  2882. */
  2883. public function testAssertSelectCountLessThanFalse()
  2884. {
  2885. $selector = '#my_ul > li';
  2886. $range = array('<' => 3);
  2887. $this->assertSelectCount($selector, $range, $this->html);
  2888. }
  2889. /**
  2890. * @covers PHPUnit_Framework_Assert::assertSelectCount
  2891. */
  2892. public function testAssertSelectCountLessThanEqualToTrue()
  2893. {
  2894. $selector = '#my_ul > li';
  2895. $range = array('<=' => 3);
  2896. $this->assertSelectCount($selector, $range, $this->html);
  2897. }
  2898. /**
  2899. * @covers PHPUnit_Framework_Assert::assertSelectCount
  2900. * @expectedException PHPUnit_Framework_AssertionFailedError
  2901. */
  2902. public function testAssertSelectCountLessThanEqualToFalse()
  2903. {
  2904. $selector = '#my_ul > li';
  2905. $range = array('<=' => 2);
  2906. $this->assertSelectCount($selector, $range, $this->html);
  2907. }
  2908. /**
  2909. * @covers PHPUnit_Framework_Assert::assertSelectCount
  2910. */
  2911. public function testAssertSelectCountRangeTrue()
  2912. {
  2913. $selector = '#my_ul > li';
  2914. $range = array('>' => 2, '<' => 4);
  2915. $this->assertSelectCount($selector, $range, $this->html);
  2916. }
  2917. /**
  2918. * @covers PHPUnit_Framework_Assert::assertSelectCount
  2919. * @expectedException PHPUnit_Framework_AssertionFailedError
  2920. */
  2921. public function testAssertSelectCountRangeFalse()
  2922. {
  2923. $selector = '#my_ul > li';
  2924. $range = array('>' => 1, '<' => 3);
  2925. $this->assertSelectCount($selector, $range, $this->html);
  2926. }
  2927. /**
  2928. * @covers PHPUnit_Framework_Assert::assertSelectEquals
  2929. */
  2930. public function testAssertSelectEqualsContentPresentTrue()
  2931. {
  2932. $selector = 'span.test_class';
  2933. $content = 'Test Class Text';
  2934. $this->assertSelectEquals($selector, $content, TRUE, $this->html);
  2935. }
  2936. /**
  2937. * @covers PHPUnit_Framework_Assert::assertSelectEquals
  2938. * @expectedException PHPUnit_Framework_AssertionFailedError
  2939. */
  2940. public function testAssertSelectEqualsContentPresentFalse()
  2941. {
  2942. $selector = 'span.test_class';
  2943. $content = 'Test Nonexistent';
  2944. $this->assertSelectEquals($selector, $content, TRUE, $this->html);
  2945. }
  2946. /**
  2947. * @covers PHPUnit_Framework_Assert::assertSelectEquals
  2948. */
  2949. public function testAssertSelectEqualsContentNotPresentTrue()
  2950. {
  2951. $selector = 'span.test_class';
  2952. $content = 'Test Nonexistent';
  2953. $this->assertSelectEquals($selector, $content, FALSE, $this->html);
  2954. }
  2955. /**
  2956. * @covers PHPUnit_Framework_Assert::assertSelectEquals
  2957. * @expectedException PHPUnit_Framework_AssertionFailedError
  2958. */
  2959. public function testAssertSelectEqualsContentNotPresentFalse()
  2960. {
  2961. $selector = 'span.test_class';
  2962. $content = 'Test Class Text';
  2963. $this->assertSelectEquals($selector, $content, FALSE, $this->html);
  2964. }
  2965. /**
  2966. * @covers PHPUnit_Framework_Assert::assertSelectRegExp
  2967. */
  2968. public function testAssertSelectRegExpContentPresentTrue()
  2969. {
  2970. $selector = 'span.test_class';
  2971. $regexp = '/Test.*Text/';
  2972. $this->assertSelectRegExp($selector, $regexp, TRUE, $this->html);
  2973. }
  2974. /**
  2975. * @covers PHPUnit_Framework_Assert::assertSelectRegExp
  2976. */
  2977. public function testAssertSelectRegExpContentPresentFalse()
  2978. {
  2979. $selector = 'span.test_class';
  2980. $regexp = '/Nonexistant/';
  2981. $this->assertSelectRegExp($selector, $regexp, FALSE, $this->html);
  2982. }
  2983. /**
  2984. * @covers PHPUnit_Framework_Assert::assertFileEquals
  2985. */
  2986. public function testAssertFileEquals()
  2987. {
  2988. $this->assertFileEquals(
  2989. $this->filesDirectory . 'foo.xml',
  2990. $this->filesDirectory . 'foo.xml'
  2991. );
  2992. try {
  2993. $this->assertFileEquals(
  2994. $this->filesDirectory . 'foo.xml',
  2995. $this->filesDirectory . 'bar.xml'
  2996. );
  2997. }
  2998. catch (PHPUnit_Framework_AssertionFailedError $e) {
  2999. return;
  3000. }
  3001. $this->fail();
  3002. }
  3003. /**
  3004. * @covers PHPUnit_Framework_Assert::assertFileNotEquals
  3005. */
  3006. public function testAssertFileNotEquals()
  3007. {
  3008. $this->assertFileNotEquals(
  3009. $this->filesDirectory . 'foo.xml',
  3010. $this->filesDirectory . 'bar.xml'
  3011. );
  3012. try {
  3013. $this->assertFileNotEquals(
  3014. $this->filesDirectory . 'foo.xml',
  3015. $this->filesDirectory . 'foo.xml'
  3016. );
  3017. }
  3018. catch (PHPUnit_Framework_AssertionFailedError $e) {
  3019. return;
  3020. }
  3021. $this->fail();
  3022. }
  3023. /**
  3024. * @covers PHPUnit_Framework_Assert::assertStringEqualsFile
  3025. */
  3026. public function testAssertStringEqualsFile()
  3027. {
  3028. $this->assertStringEqualsFile(
  3029. $this->filesDirectory . 'foo.xml',
  3030. file_get_contents($this->filesDirectory . 'foo.xml')
  3031. );
  3032. try {
  3033. $this->assertStringEqualsFile(
  3034. $this->filesDirectory . 'foo.xml',
  3035. file_get_contents($this->filesDirectory . 'bar.xml')
  3036. );
  3037. }
  3038. catch (PHPUnit_Framework_AssertionFailedError $e) {
  3039. return;
  3040. }
  3041. $this->fail();
  3042. }
  3043. /**
  3044. * @covers PHPUnit_Framework_Assert::assertStringNotEqualsFile
  3045. */
  3046. public function testAssertStringNotEqualsFile()
  3047. {
  3048. $this->assertStringNotEqualsFile(
  3049. $this->filesDirectory . 'foo.xml',
  3050. file_get_contents($this->filesDirectory . 'bar.xml')
  3051. );
  3052. try {
  3053. $this->assertStringNotEqualsFile(
  3054. $this->filesDirectory . 'foo.xml',
  3055. file_get_contents($this->filesDirectory . 'foo.xml')
  3056. );
  3057. }
  3058. catch (PHPUnit_Framework_AssertionFailedError $e) {
  3059. return;
  3060. }
  3061. $this->fail();
  3062. }
  3063. /**
  3064. * @covers PHPUnit_Framework_Assert::assertStringStartsWith
  3065. * @expectedException PHPUnit_Framework_Exception
  3066. */
  3067. public function testAssertStringStartsWithThrowsException()
  3068. {
  3069. $this->assertStringStartsWith(NULL, NULL);
  3070. }
  3071. /**
  3072. * @covers PHPUnit_Framework_Assert::assertStringStartsWith
  3073. * @expectedException PHPUnit_Framework_Exception
  3074. */
  3075. public function testAssertStringStartsWithThrowsException2()
  3076. {
  3077. $this->assertStringStartsWith('', NULL);
  3078. }
  3079. /**
  3080. * @covers PHPUnit_Framework_Assert::assertStringStartsNotWith
  3081. * @expectedException PHPUnit_Framework_Exception
  3082. */
  3083. public function testAssertStringStartsNotWithThrowsException()
  3084. {
  3085. $this->assertStringStartsNotWith(NULL, NULL);
  3086. }
  3087. /**
  3088. * @covers PHPUnit_Framework_Assert::assertStringStartsNotWith
  3089. * @expectedException PHPUnit_Framework_Exception
  3090. */
  3091. public function testAssertStringStartsNotWithThrowsException2()
  3092. {
  3093. $this->assertStringStartsNotWith('', NULL);
  3094. }
  3095. /**
  3096. * @covers PHPUnit_Framework_Assert::assertStringEndsWith
  3097. * @expectedException PHPUnit_Framework_Exception
  3098. */
  3099. public function testAssertStringEndsWithThrowsException()
  3100. {
  3101. $this->assertStringEndsWith(NULL, NULL);
  3102. }
  3103. /**
  3104. * @covers PHPUnit_Framework_Assert::assertStringEndsWith
  3105. * @expectedException PHPUnit_Framework_Exception
  3106. */
  3107. public function testAssertStringEndsWithThrowsException2()
  3108. {
  3109. $this->assertStringEndsWith('', NULL);
  3110. }
  3111. /**
  3112. * @covers PHPUnit_Framework_Assert::assertStringEndsNotWith
  3113. * @expectedException PHPUnit_Framework_Exception
  3114. */
  3115. public function testAssertStringEndsNotWithThrowsException()
  3116. {
  3117. $this->assertStringEndsNotWith(NULL, NULL);
  3118. }
  3119. /**
  3120. * @covers PHPUnit_Framework_Assert::assertStringEndsNotWith
  3121. * @expectedException PHPUnit_Framework_Exception
  3122. */
  3123. public function testAssertStringEndsNotWithThrowsException2()
  3124. {
  3125. $this->assertStringEndsNotWith('', NULL);
  3126. }
  3127. /**
  3128. * @covers PHPUnit_Framework_Assert::assertStringStartsWith
  3129. */
  3130. public function testAssertStringStartsWith()
  3131. {
  3132. $this->assertStringStartsWith('prefix', 'prefixfoo');
  3133. try {
  3134. $this->assertStringStartsWith('prefix', 'foo');
  3135. }
  3136. catch (PHPUnit_Framework_AssertionFailedError $e) {
  3137. return;
  3138. }
  3139. $this->fail();
  3140. }
  3141. /**
  3142. * @covers PHPUnit_Framework_Assert::assertStringStartsNotWith
  3143. */
  3144. public function testAssertStringStartsNotWith()
  3145. {
  3146. $this->assertStringStartsNotWith('prefix', 'foo');
  3147. try {
  3148. $this->assertStringStartsNotWith('prefix', 'prefixfoo');
  3149. }
  3150. catch (PHPUnit_Framework_AssertionFailedError $e) {
  3151. return;
  3152. }
  3153. $this->fail();
  3154. }
  3155. /**
  3156. * @covers PHPUnit_Framework_Assert::assertStringEndsWith
  3157. */
  3158. public function testAssertStringEndsWith()
  3159. {
  3160. $this->assertStringEndsWith('suffix', 'foosuffix');
  3161. try {
  3162. $this->assertStringEndsWith('suffix', 'foo');
  3163. }
  3164. catch (PHPUnit_Framework_AssertionFailedError $e) {
  3165. return;
  3166. }
  3167. $this->fail();
  3168. }
  3169. /**
  3170. * @covers PHPUnit_Framework_Assert::assertStringEndsNotWith
  3171. */
  3172. public function testAssertStringEndsNotWith()
  3173. {
  3174. $this->assertStringEndsNotWith('suffix', 'foo');
  3175. try {
  3176. $this->assertStringEndsNotWith('suffix', 'foosuffix');
  3177. }
  3178. catch (PHPUnit_Framework_AssertionFailedError $e) {
  3179. return;
  3180. }
  3181. $this->fail();
  3182. }
  3183. /**
  3184. * @covers PHPUnit_Framework_Assert::assertStringMatchesFormat
  3185. */
  3186. public function testAssertStringMatchesFormat()
  3187. {
  3188. $this->assertStringMatchesFormat('*%s*', '***');
  3189. }
  3190. /**
  3191. * @covers PHPUnit_Framework_Assert::assertStringMatchesFormat
  3192. * @expectedException PHPUnit_Framework_AssertionFailedError
  3193. */
  3194. public function testAssertStringMatchesFormatFailure()
  3195. {
  3196. $this->assertStringMatchesFormat('*%s*', '**');
  3197. }
  3198. /**
  3199. * @covers PHPUnit_Framework_Assert::assertStringNotMatchesFormat
  3200. */
  3201. public function testAssertStringNotMatchesFormat()
  3202. {
  3203. $this->assertStringNotMatchesFormat('*%s*', '**');
  3204. try {
  3205. $this->assertStringMatchesFormat('*%s*', '**');
  3206. }
  3207. catch (PHPUnit_Framework_AssertionFailedError $e) {
  3208. return;
  3209. }
  3210. $this->fail();
  3211. }
  3212. /**
  3213. * @covers PHPUnit_Framework_Assert::assertEmpty
  3214. */
  3215. public function testAssertEmpty()
  3216. {
  3217. $this->assertEmpty(array());
  3218. try {
  3219. $this->assertEmpty(array('foo'));
  3220. }
  3221. catch (PHPUnit_Framework_AssertionFailedError $e) {
  3222. return;
  3223. }
  3224. $this->fail();
  3225. }
  3226. /**
  3227. * @covers PHPUnit_Framework_Assert::assertNotEmpty
  3228. */
  3229. public function testAssertNotEmpty()
  3230. {
  3231. $this->assertNotEmpty(array('foo'));
  3232. try {
  3233. $this->assertNotEmpty(array());
  3234. }
  3235. catch (PHPUnit_Framework_AssertionFailedError $e) {
  3236. return;
  3237. }
  3238. $this->fail();
  3239. }
  3240. /**
  3241. * @covers PHPUnit_Framework_Assert::assertAttributeEmpty
  3242. */
  3243. public function testAssertAttributeEmpty()
  3244. {
  3245. $o = new StdClass;
  3246. $o->a = array();
  3247. $this->assertAttributeEmpty('a', $o);
  3248. try {
  3249. $o->a = array('b');
  3250. $this->assertAttributeEmpty('a', $o);
  3251. }
  3252. catch (PHPUnit_Framework_AssertionFailedError $e) {
  3253. return;
  3254. }
  3255. $this->fail();
  3256. }
  3257. /**
  3258. * @covers PHPUnit_Framework_Assert::assertAttributeNotEmpty
  3259. */
  3260. public function testAssertAttributeNotEmpty()
  3261. {
  3262. $o = new StdClass;
  3263. $o->a = array('b');
  3264. $this->assertAttributeNotEmpty('a', $o);
  3265. try {
  3266. $o->a = array();
  3267. $this->assertAttributeNotEmpty('a', $o);
  3268. }
  3269. catch (PHPUnit_Framework_AssertionFailedError $e) {
  3270. return;
  3271. }
  3272. $this->fail();
  3273. }
  3274. /**
  3275. * @covers PHPUnit_Framework_Assert::markTestIncomplete
  3276. */
  3277. public function testMarkTestIncomplete()
  3278. {
  3279. try {
  3280. $this->markTestIncomplete('incomplete');
  3281. }
  3282. catch (PHPUnit_Framework_IncompleteTestError $e) {
  3283. $this->assertEquals('incomplete', $e->getMessage());
  3284. return;
  3285. }
  3286. $this->fail();
  3287. }
  3288. /**
  3289. * @covers PHPUnit_Framework_Assert::markTestSkipped
  3290. */
  3291. public function testMarkTestSkipped()
  3292. {
  3293. try {
  3294. $this->markTestSkipped('skipped');
  3295. }
  3296. catch (PHPUnit_Framework_SkippedTestError $e) {
  3297. $this->assertEquals('skipped', $e->getMessage());
  3298. return;
  3299. }
  3300. $this->fail();
  3301. }
  3302. /**
  3303. * @covers PHPUnit_Framework_Assert::assertCount
  3304. */
  3305. public function testAssertCount()
  3306. {
  3307. $this->assertCount(2, array(1,2));
  3308. try {
  3309. $this->assertCount(2, array(1,2,3));
  3310. }
  3311. catch (PHPUnit_Framework_AssertionFailedError $e) {
  3312. return;
  3313. }
  3314. $this->fail();
  3315. }
  3316. /**
  3317. * @covers PHPUnit_Framework_Assert::assertCount
  3318. */
  3319. public function testAssertCountThrowsExceptionIfExpectedCountIsNoInteger()
  3320. {
  3321. try {
  3322. $this->assertCount('a', array());
  3323. }
  3324. catch (PHPUnit_Framework_Exception $e) {
  3325. $this->assertEquals('Argument #1 of PHPUnit_Framework_Assert::assertCount() must be a integer', $e->getMessage());
  3326. return;
  3327. }
  3328. $this->fail();
  3329. }
  3330. /**
  3331. * @covers PHPUnit_Framework_Assert::assertCount
  3332. */
  3333. public function testAssertCountThrowsExceptionIfElementIsNotCountable()
  3334. {
  3335. try {
  3336. $this->assertCount(2, '');
  3337. }
  3338. catch (PHPUnit_Framework_Exception $e) {
  3339. $this->assertEquals('Argument #2 of PHPUnit_Framework_Assert::assertCount() must be a countable', $e->getMessage());
  3340. return;
  3341. }
  3342. $this->fail();
  3343. }
  3344. /**
  3345. * @covers PHPUnit_Framework_Assert::assertJsonStringEqualsJsonString
  3346. */
  3347. public function testAssertJsonStringEqualsJsonString()
  3348. {
  3349. $expected = '{"Mascott" : "Tux"}';
  3350. $actual = '{"Mascott" : "Tux"}';
  3351. $message = 'Given Json strings do not match';
  3352. $this->assertJsonStringEqualsJsonString($expected, $actual, $message);
  3353. }
  3354. /**
  3355. * @dataProvider validInvalidJsonDataprovider
  3356. * @covers PHPUnit_Framework_Assert::assertJsonStringEqualsJsonString
  3357. */
  3358. public function testAssertJsonStringEqualsJsonStringErrorRaised($expected, $actual)
  3359. {
  3360. try {
  3361. $this->assertJsonStringEqualsJsonString($expected, $actual);
  3362. } catch (PHPUnit_Framework_ExpectationFailedException $e) {
  3363. return;
  3364. }
  3365. $this->fail('Expected exception not found');
  3366. }
  3367. /**
  3368. * @covers PHPUnit_Framework_Assert::assertJsonStringNotEqualsJsonString
  3369. */
  3370. public function testAssertJsonStringNotEqualsJsonString()
  3371. {
  3372. $expected = '{"Mascott" : "Beastie"}';
  3373. $actual = '{"Mascott" : "Tux"}';
  3374. $message = 'Given Json strings do match';
  3375. $this->assertJsonStringNotEqualsJsonString($expected, $actual, $message);
  3376. }
  3377. /**
  3378. * @dataProvider validInvalidJsonDataprovider
  3379. * @covers PHPUnit_Framework_Assert::assertJsonStringNotEqualsJsonString
  3380. */
  3381. public function testAssertJsonStringNotEqualsJsonStringErrorRaised($expected, $actual)
  3382. {
  3383. $this->assertJsonStringNotEqualsJsonString($expected, $actual);
  3384. }
  3385. /**
  3386. * @covers PHPUnit_Framework_Assert::assertJsonStringEqualsJsonFile
  3387. */
  3388. public function testAssertJsonStringEqualsJsonFile()
  3389. {
  3390. $file = __DIR__ . '/../_files/JsonData/simpleObject.js';
  3391. $actual = json_encode(array("Mascott" => "Tux"));
  3392. $message = '';
  3393. $this->assertJsonStringEqualsJsonFile($file, $actual, $message);
  3394. }
  3395. /**
  3396. * @covers PHPUnit_Framework_Assert::assertJsonStringEqualsJsonFile
  3397. */
  3398. public function testAssertJsonStringEqualsJsonFileExpectingExpectationFailedException()
  3399. {
  3400. $file = __DIR__ . '/../_files/JsonData/simpleObject.js';
  3401. $actual = json_encode(array("Mascott" => "Beastie"));
  3402. $message = '';
  3403. try {
  3404. $this->assertJsonStringEqualsJsonFile($file, $actual, $message);
  3405. } catch (PHPUnit_Framework_ExpectationFailedException $e) {
  3406. $this->assertEquals(
  3407. 'Failed asserting that \'{"Mascott":"Beastie"}\' matches JSON string "{"Mascott":"Tux"}".',
  3408. $e->getMessage()
  3409. );
  3410. return;
  3411. }
  3412. $this->fail('Expected Exception not thrown.');
  3413. }
  3414. /**
  3415. * @covers PHPUnit_Framework_Assert::assertJsonStringEqualsJsonFile
  3416. */
  3417. public function testAssertJsonStringEqualsJsonFileExpectingException()
  3418. {
  3419. $file = __DIR__ . '/../_files/JsonData/simpleObject.js';
  3420. try {
  3421. $this->assertJsonStringEqualsJsonFile($file, NULL);
  3422. } catch (PHPUnit_Framework_Exception $e) {
  3423. return;
  3424. }
  3425. $this->fail('Expected Exception not thrown.');
  3426. }
  3427. /**
  3428. * @covers PHPUnit_Framework_Assert::assertJsonStringNotEqualsJsonFile
  3429. */
  3430. public function testAssertJsonStringNotEqualsJsonFile()
  3431. {
  3432. $file = __DIR__ . '/../_files/JsonData/simpleObject.js';
  3433. $actual = json_encode(array("Mascott" => "Beastie"));
  3434. $message = '';
  3435. $this->assertJsonStringNotEqualsJsonFile($file, $actual, $message);
  3436. }
  3437. /**
  3438. * @covers PHPUnit_Framework_Assert::assertJsonStringNotEqualsJsonFile
  3439. */
  3440. public function testAssertJsonStringNotEqualsJsonFileExpectingException()
  3441. {
  3442. $file = __DIR__ . '/../_files/JsonData/simpleObject.js';
  3443. try {
  3444. $this->assertJsonStringNotEqualsJsonFile($file, NULL);
  3445. } catch (PHPUnit_Framework_Exception $e) {
  3446. return;
  3447. }
  3448. $this->fail('Expected exception not found.');
  3449. }
  3450. /**
  3451. * @covers PHPUnit_Framework_Assert::assertJsonFileNotEqualsJsonFile
  3452. */
  3453. public function testAssertJsonFileNotEqualsJsonFile()
  3454. {
  3455. $fileExpected = __DIR__ . '/../_files/JsonData/simpleObject.js';
  3456. $fileActual = __DIR__ . '/../_files/JsonData/arrayObject.js';
  3457. $message = '';
  3458. $this->assertJsonFileNotEqualsJsonFile($fileExpected, $fileActual, $message);
  3459. }
  3460. /**
  3461. * @covers PHPUnit_Framework_Assert::assertJsonFileEqualsJsonFile
  3462. */
  3463. public function testAssertJsonFileEqualsJsonFile()
  3464. {
  3465. $file = __DIR__ . '/../_files/JsonData/simpleObject.js';
  3466. $message = '';
  3467. $this->assertJsonFileEqualsJsonFile($file, $file, $message);
  3468. }
  3469. public static function validInvalidJsonDataprovider()
  3470. {
  3471. return array(
  3472. 'error syntax in expected JSON' => array('{"Mascott"::}', '{"Mascott" : "Tux"}'),
  3473. 'error UTF-8 in actual JSON' => array('{"Mascott" : "Tux"}', '{"Mascott" : :}'),
  3474. );
  3475. }
  3476. }