Chris@0
|
1 <?php
|
Chris@0
|
2
|
Chris@0
|
3 namespace Drupal\Tests\simpletest\Unit;
|
Chris@0
|
4
|
Chris@0
|
5 use Drupal\Tests\UnitTestCase;
|
Chris@0
|
6
|
Chris@0
|
7 /**
|
Chris@0
|
8 * @requires extension curl
|
Chris@0
|
9 * @coversDefaultClass \Drupal\simpletest\TestBase
|
Chris@0
|
10 * @group simpletest
|
Chris@18
|
11 * @group TestBase
|
Chris@0
|
12 */
|
Chris@0
|
13 class TestBaseTest extends UnitTestCase {
|
Chris@0
|
14
|
Chris@0
|
15 /**
|
Chris@0
|
16 * Helper method for constructing a mock TestBase object.
|
Chris@0
|
17 *
|
Chris@0
|
18 * TestBase is abstract, so we have to mock it. We'll also
|
Chris@0
|
19 * mock the storeAssertion() method so we don't need the database.
|
Chris@0
|
20 *
|
Chris@0
|
21 * @param string $test_id
|
Chris@0
|
22 * An identifying name for the mocked test.
|
Chris@0
|
23 *
|
Chris@0
|
24 * @return object
|
Chris@0
|
25 * Mock of Drupal\simpletest\TestBase.
|
Chris@0
|
26 */
|
Chris@0
|
27 public function getTestBaseForAssertionTests($test_id) {
|
Chris@0
|
28 $mock_test_base = $this->getMockBuilder('Drupal\simpletest\TestBase')
|
Chris@0
|
29 ->setConstructorArgs([$test_id])
|
Chris@0
|
30 ->setMethods(['storeAssertion'])
|
Chris@0
|
31 ->getMockForAbstractClass();
|
Chris@0
|
32 // Override storeAssertion() so we don't need a database.
|
Chris@0
|
33 $mock_test_base->expects($this->any())
|
Chris@0
|
34 ->method('storeAssertion')
|
Chris@0
|
35 ->will($this->returnValue(NULL));
|
Chris@0
|
36 return $mock_test_base;
|
Chris@0
|
37 }
|
Chris@0
|
38
|
Chris@0
|
39 /**
|
Chris@0
|
40 * Invoke methods that are protected or private.
|
Chris@0
|
41 *
|
Chris@0
|
42 * @param object $object
|
Chris@0
|
43 * Object on which to invoke the method.
|
Chris@0
|
44 * @param string $method_name
|
Chris@0
|
45 * Name of the method to invoke.
|
Chris@0
|
46 * @param array $arguments
|
Chris@0
|
47 * Array of arguments to be passed to the method.
|
Chris@0
|
48 *
|
Chris@0
|
49 * @return mixed
|
Chris@0
|
50 * Value returned by the invoked method.
|
Chris@0
|
51 */
|
Chris@0
|
52 public function invokeProtectedMethod($object, $method_name, array $arguments) {
|
Chris@0
|
53 $ref_method = new \ReflectionMethod($object, $method_name);
|
Chris@0
|
54 $ref_method->setAccessible(TRUE);
|
Chris@0
|
55 return $ref_method->invokeArgs($object, $arguments);
|
Chris@0
|
56 }
|
Chris@0
|
57
|
Chris@0
|
58 /**
|
Chris@0
|
59 * Provides data for the random string validation test.
|
Chris@0
|
60 *
|
Chris@0
|
61 * @return array
|
Chris@0
|
62 * - The expected result of the validation.
|
Chris@0
|
63 * - The string to validate.
|
Chris@0
|
64 */
|
Chris@0
|
65 public function providerRandomStringValidate() {
|
Chris@0
|
66 return [
|
Chris@0
|
67 [FALSE, ' curry paste'],
|
Chris@0
|
68 [FALSE, 'curry paste '],
|
Chris@0
|
69 [FALSE, 'curry paste'],
|
Chris@0
|
70 [FALSE, 'curry paste'],
|
Chris@0
|
71 [TRUE, 'curry paste'],
|
Chris@0
|
72 [TRUE, 'thai green curry paste'],
|
Chris@0
|
73 [TRUE, '@startswithat'],
|
Chris@0
|
74 [TRUE, 'contains@at'],
|
Chris@0
|
75 ];
|
Chris@0
|
76 }
|
Chris@0
|
77
|
Chris@0
|
78 /**
|
Chris@0
|
79 * @covers ::randomStringValidate
|
Chris@0
|
80 * @dataProvider providerRandomStringValidate
|
Chris@0
|
81 */
|
Chris@0
|
82 public function testRandomStringValidate($expected, $string) {
|
Chris@0
|
83 $mock_test_base = $this->getMockForAbstractClass('Drupal\simpletest\TestBase');
|
Chris@0
|
84 $actual = $mock_test_base->randomStringValidate($string);
|
Chris@0
|
85 $this->assertEquals($expected, $actual);
|
Chris@0
|
86 }
|
Chris@0
|
87
|
Chris@0
|
88 /**
|
Chris@0
|
89 * Provides data for testRandomString() and others.
|
Chris@0
|
90 *
|
Chris@0
|
91 * @return array
|
Chris@0
|
92 * - The number of items (characters, object properties) we expect any of
|
Chris@0
|
93 * the random functions to give us.
|
Chris@0
|
94 */
|
Chris@0
|
95 public function providerRandomItems() {
|
Chris@0
|
96 return [
|
Chris@0
|
97 [NULL],
|
Chris@0
|
98 [0],
|
Chris@0
|
99 [1],
|
Chris@0
|
100 [2],
|
Chris@0
|
101 [3],
|
Chris@0
|
102 [4],
|
Chris@0
|
103 [7],
|
Chris@0
|
104 ];
|
Chris@0
|
105 }
|
Chris@0
|
106
|
Chris@0
|
107 /**
|
Chris@0
|
108 * @covers ::randomString
|
Chris@0
|
109 * @dataProvider providerRandomItems
|
Chris@0
|
110 */
|
Chris@0
|
111 public function testRandomString($length) {
|
Chris@0
|
112 $mock_test_base = $this->getMockForAbstractClass('Drupal\simpletest\TestBase');
|
Chris@0
|
113 $string = $mock_test_base->randomString($length);
|
Chris@0
|
114 $this->assertEquals($length, strlen($string));
|
Chris@0
|
115 // randomString() should always include an ampersand ('&') and a
|
Chris@0
|
116 // greater than ('>') if $length is greater than 3.
|
Chris@0
|
117 if ($length > 4) {
|
Chris@0
|
118 $this->assertContains('&', $string);
|
Chris@0
|
119 $this->assertContains('>', $string);
|
Chris@0
|
120 }
|
Chris@0
|
121 }
|
Chris@0
|
122
|
Chris@0
|
123 /**
|
Chris@0
|
124 * @covers ::randomObject
|
Chris@0
|
125 * @dataProvider providerRandomItems
|
Chris@0
|
126 */
|
Chris@0
|
127 public function testRandomObject($size) {
|
Chris@0
|
128 $test_base = $this->getTestBaseForAssertionTests('test_id');
|
Chris@0
|
129 // Note: count((array)object) works for now, maybe not later.
|
Chris@0
|
130 $this->assertEquals($size, count((array) $test_base->randomObject($size)));
|
Chris@0
|
131 }
|
Chris@0
|
132
|
Chris@0
|
133 /**
|
Chris@0
|
134 * @covers ::checkRequirements
|
Chris@0
|
135 */
|
Chris@0
|
136 public function testCheckRequirements() {
|
Chris@0
|
137 $test_base = $this->getTestBaseForAssertionTests('test_id');
|
Chris@0
|
138 $this->assertInternalType(
|
Chris@0
|
139 'array',
|
Chris@0
|
140 $this->invokeProtectedMethod($test_base, 'checkRequirements', [])
|
Chris@0
|
141 );
|
Chris@0
|
142 }
|
Chris@0
|
143
|
Chris@0
|
144 /**
|
Chris@0
|
145 * Data provider for testAssert().
|
Chris@0
|
146 *
|
Chris@0
|
147 * @return array
|
Chris@0
|
148 * Standard dataProvider array of arrays:
|
Chris@0
|
149 * - Expected result from assert().
|
Chris@0
|
150 * - Expected status stored in TestBase->assertions.
|
Chris@0
|
151 * - Status, passed to assert().
|
Chris@0
|
152 * - Message, passed to assert().
|
Chris@0
|
153 * - Group, passed to assert().
|
Chris@0
|
154 * - Caller, passed to assert().
|
Chris@0
|
155 */
|
Chris@0
|
156 public function providerAssert() {
|
Chris@0
|
157 return [
|
Chris@0
|
158 [TRUE, 'pass', TRUE, 'Yay pass', 'test', []],
|
Chris@0
|
159 [FALSE, 'fail', FALSE, 'Boo fail', 'test', []],
|
Chris@0
|
160 [TRUE, 'pass', 'pass', 'Yay pass', 'test', []],
|
Chris@0
|
161 [FALSE, 'fail', 'fail', 'Boo fail', 'test', []],
|
Chris@0
|
162 [FALSE, 'exception', 'exception', 'Boo fail', 'test', []],
|
Chris@0
|
163 [FALSE, 'debug', 'debug', 'Boo fail', 'test', []],
|
Chris@0
|
164 ];
|
Chris@0
|
165 }
|
Chris@0
|
166
|
Chris@0
|
167 /**
|
Chris@0
|
168 * @covers ::assert
|
Chris@0
|
169 * @dataProvider providerAssert
|
Chris@0
|
170 */
|
Chris@0
|
171 public function testAssert($expected, $assertion_status, $status, $message, $group, $caller) {
|
Chris@0
|
172 $test_id = 'luke_i_am_your_' . $assertion_status;
|
Chris@0
|
173 $test_base = $this->getTestBaseForAssertionTests($test_id);
|
Chris@0
|
174
|
Chris@0
|
175 // Verify some startup values.
|
Chris@0
|
176 $this->assertAttributeEmpty('assertions', $test_base);
|
Chris@0
|
177 if (is_string($status)) {
|
Chris@0
|
178 $this->assertEquals(0, $test_base->results['#' . $status]);
|
Chris@0
|
179 }
|
Chris@0
|
180
|
Chris@0
|
181 // assert() is protected so we have to make it accessible.
|
Chris@0
|
182 $ref_assert = new \ReflectionMethod($test_base, 'assert');
|
Chris@0
|
183 $ref_assert->setAccessible(TRUE);
|
Chris@0
|
184
|
Chris@0
|
185 // Call assert() from within our hall of mirrors.
|
Chris@0
|
186 $this->assertEquals(
|
Chris@0
|
187 $expected,
|
Chris@0
|
188 $ref_assert->invokeArgs($test_base,
|
Chris@0
|
189 [$status, $message, $group, $caller]
|
Chris@0
|
190 )
|
Chris@0
|
191 );
|
Chris@0
|
192
|
Chris@0
|
193 // Check the side-effects of assert().
|
Chris@0
|
194 if (is_string($status)) {
|
Chris@0
|
195 $this->assertEquals(1, $test_base->results['#' . $status]);
|
Chris@0
|
196 }
|
Chris@0
|
197 $this->assertAttributeNotEmpty('assertions', $test_base);
|
Chris@0
|
198 // Make a ReflectionProperty for the assertions property,
|
Chris@0
|
199 // since it's protected.
|
Chris@0
|
200 $ref_assertions = new \ReflectionProperty($test_base, 'assertions');
|
Chris@0
|
201 $ref_assertions->setAccessible(TRUE);
|
Chris@0
|
202 $assertions = $ref_assertions->getValue($test_base);
|
Chris@0
|
203 $assertion = reset($assertions);
|
Chris@0
|
204 $this->assertEquals($assertion_status, $assertion['status']);
|
Chris@0
|
205 $this->assertEquals($test_id, $assertion['test_id']);
|
Chris@0
|
206 $this->assertEquals(get_class($test_base), $assertion['test_class']);
|
Chris@0
|
207 $this->assertEquals($message, $assertion['message']);
|
Chris@0
|
208 $this->assertEquals($group, $assertion['message_group']);
|
Chris@0
|
209 }
|
Chris@0
|
210
|
Chris@0
|
211 /**
|
Chris@0
|
212 * Data provider for assertTrue().
|
Chris@0
|
213 */
|
Chris@0
|
214 public function providerAssertTrue() {
|
Chris@0
|
215 return [
|
Chris@0
|
216 [TRUE, TRUE],
|
Chris@0
|
217 [FALSE, FALSE],
|
Chris@0
|
218 ];
|
Chris@0
|
219 }
|
Chris@0
|
220
|
Chris@0
|
221 /**
|
Chris@0
|
222 * @covers ::assertTrue
|
Chris@0
|
223 * @dataProvider providerAssertTrue
|
Chris@0
|
224 */
|
Chris@0
|
225 public function testAssertTrue($expected, $value) {
|
Chris@0
|
226 $test_base = $this->getTestBaseForAssertionTests('test_id');
|
Chris@0
|
227 $this->assertEquals(
|
Chris@0
|
228 $expected,
|
Chris@0
|
229 $this->invokeProtectedMethod($test_base, 'assertTrue', [$value])
|
Chris@0
|
230 );
|
Chris@0
|
231 }
|
Chris@0
|
232
|
Chris@0
|
233 /**
|
Chris@0
|
234 * @covers ::assertFalse
|
Chris@0
|
235 * @dataProvider providerAssertTrue
|
Chris@0
|
236 */
|
Chris@0
|
237 public function testAssertFalse($expected, $value) {
|
Chris@0
|
238 $test_base = $this->getTestBaseForAssertionTests('test_id');
|
Chris@0
|
239 $this->assertEquals(
|
Chris@0
|
240 (!$expected),
|
Chris@0
|
241 $this->invokeProtectedMethod($test_base, 'assertFalse', [$value])
|
Chris@0
|
242 );
|
Chris@0
|
243 }
|
Chris@0
|
244
|
Chris@0
|
245 /**
|
Chris@0
|
246 * Data provider for assertNull().
|
Chris@0
|
247 */
|
Chris@0
|
248 public function providerAssertNull() {
|
Chris@0
|
249 return [
|
Chris@0
|
250 [TRUE, NULL],
|
Chris@0
|
251 [FALSE, ''],
|
Chris@0
|
252 ];
|
Chris@0
|
253 }
|
Chris@0
|
254
|
Chris@0
|
255 /**
|
Chris@0
|
256 * @covers ::assertNull
|
Chris@0
|
257 * @dataProvider providerAssertNull
|
Chris@0
|
258 */
|
Chris@0
|
259 public function testAssertNull($expected, $value) {
|
Chris@0
|
260 $test_base = $this->getTestBaseForAssertionTests('test_id');
|
Chris@0
|
261 $this->assertEquals(
|
Chris@0
|
262 $expected,
|
Chris@0
|
263 $this->invokeProtectedMethod($test_base, 'assertNull', [$value])
|
Chris@0
|
264 );
|
Chris@0
|
265 }
|
Chris@0
|
266
|
Chris@0
|
267 /**
|
Chris@0
|
268 * @covers ::assertNotNull
|
Chris@0
|
269 * @dataProvider providerAssertNull
|
Chris@0
|
270 */
|
Chris@0
|
271 public function testAssertNotNull($expected, $value) {
|
Chris@0
|
272 $test_base = $this->getTestBaseForAssertionTests('test_id');
|
Chris@0
|
273 $this->assertEquals(
|
Chris@0
|
274 (!$expected),
|
Chris@0
|
275 $this->invokeProtectedMethod($test_base, 'assertNotNull', [$value])
|
Chris@0
|
276 );
|
Chris@0
|
277 }
|
Chris@0
|
278
|
Chris@0
|
279 /**
|
Chris@0
|
280 * Data provider for tests of equality assertions.
|
Chris@0
|
281 *
|
Chris@0
|
282 * Used by testAssertIdentical(), testAssertEqual(), testAssertNotIdentical(),
|
Chris@0
|
283 * and testAssertNotEqual().
|
Chris@0
|
284 *
|
Chris@0
|
285 * @return
|
Chris@0
|
286 * Array of test data.
|
Chris@0
|
287 * - Expected assertion value for identical comparison.
|
Chris@0
|
288 * - Expected assertion value for equal comparison.
|
Chris@0
|
289 * - First value to compare.
|
Chris@0
|
290 * - Second value to compare.
|
Chris@0
|
291 */
|
Chris@0
|
292 public function providerEqualityAssertions() {
|
Chris@0
|
293 return [
|
Chris@0
|
294 // Integers and floats.
|
Chris@0
|
295 [TRUE, TRUE, 0, 0],
|
Chris@0
|
296 [FALSE, TRUE, 0, 0.0],
|
Chris@0
|
297 [FALSE, TRUE, '0', 0],
|
Chris@0
|
298 [FALSE, TRUE, '0.0', 0.0],
|
Chris@0
|
299 [FALSE, FALSE, 23, 77],
|
Chris@0
|
300 [TRUE, TRUE, 23.0, 23.0],
|
Chris@0
|
301 // Strings.
|
Chris@0
|
302 [FALSE, FALSE, 'foof', 'yay'],
|
Chris@0
|
303 [TRUE, TRUE, 'yay', 'yay'],
|
Chris@0
|
304 // Bools with type conversion.
|
Chris@0
|
305 [TRUE, TRUE, TRUE, TRUE],
|
Chris@0
|
306 [TRUE, TRUE, FALSE, FALSE],
|
Chris@0
|
307 [FALSE, TRUE, NULL, FALSE],
|
Chris@0
|
308 [FALSE, TRUE, 'TRUE', TRUE],
|
Chris@0
|
309 [FALSE, FALSE, 'FALSE', FALSE],
|
Chris@0
|
310 [FALSE, TRUE, 0, FALSE],
|
Chris@0
|
311 [FALSE, TRUE, 1, TRUE],
|
Chris@0
|
312 [FALSE, TRUE, -1, TRUE],
|
Chris@0
|
313 [FALSE, TRUE, '1', TRUE],
|
Chris@0
|
314 [FALSE, TRUE, '1.3', TRUE],
|
Chris@0
|
315 // Null.
|
Chris@0
|
316 [FALSE, FALSE, 'NULL', NULL],
|
Chris@0
|
317 [TRUE, TRUE, NULL, NULL],
|
Chris@0
|
318 ];
|
Chris@0
|
319 }
|
Chris@0
|
320
|
Chris@0
|
321 /**
|
Chris@0
|
322 * @covers ::assertIdentical
|
Chris@0
|
323 * @dataProvider providerEqualityAssertions
|
Chris@0
|
324 */
|
Chris@0
|
325 public function testAssertIdentical($expected_identical, $expected_equal, $first, $second) {
|
Chris@0
|
326 $test_base = $this->getTestBaseForAssertionTests('test_id');
|
Chris@0
|
327 $this->assertEquals(
|
Chris@0
|
328 $expected_identical,
|
Chris@0
|
329 $this->invokeProtectedMethod($test_base, 'assertIdentical', [$first, $second])
|
Chris@0
|
330 );
|
Chris@0
|
331 }
|
Chris@0
|
332
|
Chris@0
|
333 /**
|
Chris@0
|
334 * @covers ::assertNotIdentical
|
Chris@0
|
335 * @dataProvider providerEqualityAssertions
|
Chris@0
|
336 */
|
Chris@0
|
337 public function testAssertNotIdentical($expected_identical, $expected_equal, $first, $second) {
|
Chris@0
|
338 $test_base = $this->getTestBaseForAssertionTests('test_id');
|
Chris@0
|
339 $this->assertEquals(
|
Chris@0
|
340 (!$expected_identical),
|
Chris@0
|
341 $this->invokeProtectedMethod($test_base, 'assertNotIdentical', [$first, $second])
|
Chris@0
|
342 );
|
Chris@0
|
343 }
|
Chris@0
|
344
|
Chris@0
|
345 /**
|
Chris@0
|
346 * @covers ::assertEqual
|
Chris@0
|
347 * @dataProvider providerEqualityAssertions
|
Chris@0
|
348 */
|
Chris@0
|
349 public function testAssertEqual($expected_identical, $expected_equal, $first, $second) {
|
Chris@0
|
350 $test_base = $this->getTestBaseForAssertionTests('test_id');
|
Chris@0
|
351 $this->assertEquals(
|
Chris@0
|
352 $expected_equal,
|
Chris@0
|
353 $this->invokeProtectedMethod($test_base, 'assertEqual', [$first, $second])
|
Chris@0
|
354 );
|
Chris@0
|
355 }
|
Chris@0
|
356
|
Chris@0
|
357 /**
|
Chris@0
|
358 * @covers ::assertNotEqual
|
Chris@0
|
359 * @dataProvider providerEqualityAssertions
|
Chris@0
|
360 */
|
Chris@0
|
361 public function testAssertNotEqual($expected_identical, $expected_equal, $first, $second) {
|
Chris@0
|
362 $test_base = $this->getTestBaseForAssertionTests('test_id');
|
Chris@0
|
363 $this->assertEquals(
|
Chris@0
|
364 (!$expected_equal),
|
Chris@0
|
365 $this->invokeProtectedMethod($test_base, 'assertNotEqual', [$first, $second])
|
Chris@0
|
366 );
|
Chris@0
|
367 }
|
Chris@0
|
368
|
Chris@0
|
369 /**
|
Chris@0
|
370 * Data provider for testAssertIdenticalObject().
|
Chris@0
|
371 */
|
Chris@0
|
372 public function providerAssertIdenticalObject() {
|
Chris@0
|
373 $obj1 = new \stdClass();
|
Chris@0
|
374 $obj1->foof = 'yay';
|
Chris@0
|
375 $obj2 = $obj1;
|
Chris@0
|
376 $obj3 = clone $obj1;
|
Chris@0
|
377 $obj4 = new \stdClass();
|
Chris@0
|
378 return [
|
Chris@0
|
379 [TRUE, $obj1, $obj2],
|
Chris@0
|
380 [TRUE, $obj1, $obj3],
|
Chris@0
|
381 [FALSE, $obj1, $obj4],
|
Chris@0
|
382 ];
|
Chris@0
|
383 }
|
Chris@0
|
384
|
Chris@0
|
385 /**
|
Chris@0
|
386 * @covers ::assertIdenticalObject
|
Chris@0
|
387 * @dataProvider providerAssertIdenticalObject
|
Chris@0
|
388 */
|
Chris@0
|
389 public function testAssertIdenticalObject($expected, $first, $second) {
|
Chris@0
|
390 $test_base = $this->getTestBaseForAssertionTests('test_id');
|
Chris@0
|
391 $this->assertEquals(
|
Chris@0
|
392 $expected,
|
Chris@0
|
393 $this->invokeProtectedMethod($test_base, 'assertIdenticalObject', [$first, $second])
|
Chris@0
|
394 );
|
Chris@0
|
395 }
|
Chris@0
|
396
|
Chris@0
|
397 /**
|
Chris@0
|
398 * @covers ::pass
|
Chris@0
|
399 */
|
Chris@0
|
400 public function testPass() {
|
Chris@0
|
401 $test_base = $this->getTestBaseForAssertionTests('test_id');
|
Chris@0
|
402 $this->assertEquals(
|
Chris@0
|
403 TRUE,
|
Chris@0
|
404 $this->invokeProtectedMethod($test_base, 'pass', [])
|
Chris@0
|
405 );
|
Chris@0
|
406 }
|
Chris@0
|
407
|
Chris@0
|
408 /**
|
Chris@0
|
409 * @covers ::fail
|
Chris@0
|
410 */
|
Chris@0
|
411 public function testFail() {
|
Chris@0
|
412 $test_base = $this->getTestBaseForAssertionTests('test_id');
|
Chris@0
|
413 $this->assertEquals(
|
Chris@0
|
414 FALSE,
|
Chris@0
|
415 $this->invokeProtectedMethod($test_base, 'fail', [])
|
Chris@0
|
416 );
|
Chris@0
|
417 }
|
Chris@0
|
418
|
Chris@0
|
419 /**
|
Chris@0
|
420 * Data provider for testError().
|
Chris@0
|
421 *
|
Chris@0
|
422 * @return array
|
Chris@0
|
423 * - Expected status for assertion.
|
Chris@0
|
424 * - Group for use in assert().
|
Chris@0
|
425 */
|
Chris@0
|
426 public function providerError() {
|
Chris@0
|
427 return [
|
Chris@0
|
428 ['debug', 'User notice'],
|
Chris@0
|
429 ['exception', 'Not User notice'],
|
Chris@0
|
430 ];
|
Chris@0
|
431 }
|
Chris@0
|
432
|
Chris@0
|
433 /**
|
Chris@0
|
434 * @covers ::error
|
Chris@0
|
435 * @dataProvider providerError
|
Chris@0
|
436 */
|
Chris@0
|
437 public function testError($status, $group) {
|
Chris@0
|
438 // Mock up a TestBase object.
|
Chris@0
|
439 $mock_test_base = $this->getMockBuilder('Drupal\simpletest\TestBase')
|
Chris@0
|
440 ->setMethods(['assert'])
|
Chris@0
|
441 ->getMockForAbstractClass();
|
Chris@0
|
442
|
Chris@0
|
443 // Set expectations for assert().
|
Chris@0
|
444 $mock_test_base->expects($this->once())
|
Chris@0
|
445 ->method('assert')
|
Chris@0
|
446 // The first argument to assert() should be the expected $status. This is
|
Chris@0
|
447 // the most important expectation of this test.
|
Chris@0
|
448 ->with($status)
|
Chris@0
|
449 // Arbitrary return value.
|
Chris@0
|
450 ->willReturn("$status:$group");
|
Chris@0
|
451
|
Chris@0
|
452 // Invoke error().
|
Chris@0
|
453 $this->assertEquals(
|
Chris@0
|
454 "$status:$group",
|
Chris@0
|
455 $this->invokeProtectedMethod($mock_test_base, 'error', ['msg', $group])
|
Chris@0
|
456 );
|
Chris@0
|
457 }
|
Chris@0
|
458
|
Chris@0
|
459 /**
|
Chris@0
|
460 * @covers ::getRandomGenerator
|
Chris@0
|
461 */
|
Chris@0
|
462 public function testGetRandomGenerator() {
|
Chris@0
|
463 $test_base = $this->getTestBaseForAssertionTests('test_id');
|
Chris@0
|
464 $this->assertInstanceOf(
|
Chris@0
|
465 'Drupal\Component\Utility\Random',
|
Chris@0
|
466 $this->invokeProtectedMethod($test_base, 'getRandomGenerator', [])
|
Chris@0
|
467 );
|
Chris@0
|
468 }
|
Chris@0
|
469
|
Chris@0
|
470 }
|