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