/**
  * Tests the retrieval of block entities that are context-aware.
  *
  * @covers ::getVisibleBlocksPerRegion
  */
 public function testGetVisibleBlocksPerRegionWithContext()
 {
     $block = $this->getMock('Drupal\\block\\BlockInterface');
     $block->expects($this->once())->method('setContexts')->willReturnSelf();
     $block->expects($this->once())->method('access')->willReturn(TRUE);
     $block->expects($this->once())->method('getRegion')->willReturn('top');
     $blocks['block_id'] = $block;
     $contexts = [];
     $this->blockStorage->expects($this->once())->method('loadByProperties')->with(['theme' => $this->theme])->willReturn($blocks);
     $result = [];
     foreach ($this->blockRepository->getVisibleBlocksPerRegion($contexts) as $region => $resulting_blocks) {
         $result[$region] = [];
         foreach ($resulting_blocks as $plugin_id => $block) {
             $result[$region][] = $plugin_id;
         }
     }
     $expected = ['top' => ['block_id'], 'center' => [], 'bottom' => []];
     $this->assertSame($expected, $result);
 }
 /**
  * Tests the retrieval of block entities that are context-aware.
  *
  * @covers ::getVisibleBlocksPerRegion
  */
 public function testGetVisibleBlocksPerRegionWithContext()
 {
     $block = $this->getMock('Drupal\\block\\BlockInterface');
     $block->expects($this->once())->method('access')->willReturn(AccessResult::allowed()->addCacheTags(['config:block.block.block_id']));
     $block->expects($this->once())->method('getRegion')->willReturn('top');
     $blocks['block_id'] = $block;
     $this->blockStorage->expects($this->once())->method('loadByProperties')->with(['theme' => $this->theme])->willReturn($blocks);
     $result = [];
     $cacheable_metadata = [];
     foreach ($this->blockRepository->getVisibleBlocksPerRegion($cacheable_metadata) as $region => $resulting_blocks) {
         $result[$region] = [];
         foreach ($resulting_blocks as $plugin_id => $block) {
             $result[$region][] = $plugin_id;
         }
     }
     $expected = ['top' => ['block_id'], 'center' => [], 'bottom' => []];
     $this->assertSame($expected, $result);
     // Assert that the cacheable metadata from the block access results was
     // collected.
     $this->assertEquals(['config:block.block.block_id'], $cacheable_metadata['top']->getCacheTags());
 }