d4675899dcc3ded30cbba4b048fe3eeb0fbdaee8
[lhc/web/wiklou.git] / maintenance / tests / selenium / SeleniumTestListener.php
1 <?php
2 if (!defined('MEDIAWIKI') || !defined('SELENIUMTEST')) {
3 echo "This script cannot be run standalone";
4 exit(1);
5 }
6
7 class SeleniumTestListener implements PHPUnit_Framework_TestListener
8 {
9 private $logger;
10 private $tests_ok = 0;
11 private $tests_failed = 0;
12
13 public function __construct($loggerInstance)
14 {
15 $this->logger = $loggerInstance;
16 }
17
18 public function addError(PHPUnit_Framework_Test $test, Exception $e, $time)
19 {
20 $this->logger->write("Error: ".$e->getMessage());
21 $this->tests_failed++;
22 }
23
24 public function addFailure(PHPUnit_Framework_Test $test, PHPUnit_Framework_AssertionFailedError $e, $time)
25 {
26 $this->logger->write("Failed: ".$e->getMessage());
27 $this->tests_failed++;
28
29 }
30
31 public function addIncompleteTest(PHPUnit_Framework_Test $test, Exception $e, $time)
32 {
33 $this->logger->write("Incomplete.");
34 $this->tests_failed++;
35 }
36
37 public function addSkippedTest(PHPUnit_Framework_Test $test, Exception $e, $time)
38 {
39 $this->logger->write("Skipped.");
40 $this->tests_failed++;
41 }
42
43 public function startTest(PHPUnit_Framework_Test $test)
44 {
45 $this->logger->write("Testing ".$test->getName()." ... ", MW_TESTLOGGER_CONTINUE_LINE);
46 }
47
48 public function endTest(PHPUnit_Framework_Test $test, $time)
49 {
50 if (!$test->hasFailed())
51 {
52 $this->logger->write("OK", MW_TESTLOGGER_RESULT_OK);
53 $this->tests_ok++;
54 }
55 }
56
57 public function startTestSuite(PHPUnit_Framework_TestSuite $suite)
58 {
59 $this->logger->write("Testsuite ".$suite->getName()." started.");
60 $this->tests_ok = 0;
61 }
62
63 public function endTestSuite(PHPUnit_Framework_TestSuite $suite)
64 {
65 $this->logger->write("Testsuite ".$suite->getName()." ended. OK: ".$this->tests_ok." Failed: ".$this->tests_failed);
66
67 }
68
69 public function statusMessage($message)
70 {
71 $this->logger->write($message);
72 }
73 }
74