Exemplo n.º 1
0
 /**
  * @covers ::merge
  * @dataProvider providerTestMerge
  *
  * This only tests at a high level, because it reuses existing logic. Detailed
  * tests exist for the existing logic:
  *
  * @see \Drupal\Tests\Core\Cache\CacheTest::testMergeTags()
  * @see \Drupal\Tests\Core\Cache\CacheTest::testMergeMaxAges()
  * @see \Drupal\Tests\Core\Cache\CacheContextsTest
  * @see \Drupal\Tests\Core\Render\RendererPlaceholdersTest
  * @see testMergeAttachmentsLibraryMerging()
  * @see testMergeAttachmentsFeedMerging()
  * @see testMergeAttachmentsHtmlHeadMerging()
  * @see testMergeAttachmentsHtmlHeadLinkMerging()
  * @see testMergeAttachmentsHttpHeaderMerging()
  */
 public function testMerge(BubbleableMetadata $a, CacheableMetadata $b, BubbleableMetadata $expected)
 {
     // Verify that if the second operand is a CacheableMetadata object, not a
     // BubbleableMetadata object, that BubbleableMetadata::merge() doesn't
     // attempt to merge assets.
     if (!$b instanceof BubbleableMetadata) {
         $renderer = $this->getMockBuilder('Drupal\\Core\\Render\\Renderer')->disableOriginalConstructor()->getMock();
         $renderer->expects($this->never())->method('mergeAttachments');
     } else {
         $renderer = $this->getMockBuilder('Drupal\\Core\\Render\\Renderer')->disableOriginalConstructor()->setMethods(NULL)->getMock();
     }
     $cache_contexts_manager = $this->getMockBuilder('Drupal\\Core\\Cache\\Context\\CacheContextsManager')->disableOriginalConstructor()->getMock();
     $container = new ContainerBuilder();
     $container->set('cache_contexts_manager', $cache_contexts_manager);
     $container->set('renderer', $renderer);
     \Drupal::setContainer($container);
     $this->assertEquals($expected, $a->merge($b));
 }