class ViewsBlockTest

Same name in this branch
  1. 8.9.x core/modules/views/tests/src/Kernel/Plugin/ViewsBlockTest.php \Drupal\Tests\views\Kernel\Plugin\ViewsBlockTest
Same name in other branches
  1. 9 core/modules/views/tests/src/Unit/Plugin/Block/ViewsBlockTest.php \Drupal\Tests\views\Unit\Plugin\Block\ViewsBlockTest
  2. 9 core/modules/views/tests/src/Kernel/Plugin/ViewsBlockTest.php \Drupal\Tests\views\Kernel\Plugin\ViewsBlockTest
  3. 10 core/modules/views/tests/src/Unit/Plugin/Block/ViewsBlockTest.php \Drupal\Tests\views\Unit\Plugin\Block\ViewsBlockTest
  4. 10 core/modules/views/tests/src/Kernel/Plugin/ViewsBlockTest.php \Drupal\Tests\views\Kernel\Plugin\ViewsBlockTest
  5. 11.x core/modules/views/tests/src/Unit/Plugin/Block/ViewsBlockTest.php \Drupal\Tests\views\Unit\Plugin\Block\ViewsBlockTest
  6. 11.x core/modules/views/tests/src/Kernel/Plugin/ViewsBlockTest.php \Drupal\Tests\views\Kernel\Plugin\ViewsBlockTest
  7. 11.x core/modules/views_ui/tests/src/Kernel/ViewsBlockTest.php \Drupal\Tests\views_ui\Kernel\ViewsBlockTest
  8. 10 core/modules/views_ui/tests/src/Kernel/ViewsBlockTest.php \Drupal\Tests\views_ui\Kernel\ViewsBlockTest

@coversDefaultClass \Drupal\views\Plugin\block\ViewsBlock @group views

Hierarchy

Expanded class hierarchy of ViewsBlockTest

File

core/modules/views/tests/src/Unit/Plugin/Block/ViewsBlockTest.php, line 13

Namespace

Drupal\Tests\views\Unit\Plugin\Block
View source
class ViewsBlockTest extends UnitTestCase {
    
    /**
     * The view executable.
     *
     * @var \Drupal\views\ViewExecutable|\PHPUnit\Framework\MockObject\MockObject
     */
    protected $executable;
    
    /**
     * The view executable factory.
     *
     * @var \Drupal\views\ViewExecutableFactory|\PHPUnit\Framework\MockObject\MockObject
     */
    protected $executableFactory;
    
    /**
     * The view entity.
     *
     * @var \Drupal\views\ViewEntityInterface|\PHPUnit\Framework\MockObject\MockObject
     */
    protected $view;
    
    /**
     * The view storage.
     *
     * @var \Drupal\Core\Entity\EntityStorageInterface|\PHPUnit\Framework\MockObject\MockObject
     */
    protected $storage;
    
    /**
     * The mocked user account.
     *
     * @var \Drupal\Core\Session\AccountInterface|\PHPUnit\Framework\MockObject\MockObject
     */
    protected $account;
    
    /**
     * The mocked display handler.
     *
     * @var \Drupal\views\Plugin\views\display\Block|\PHPUnit\Framework\MockObject\MockObject
     */
    protected $displayHandler;
    
    /**
     * {@inheritdoc}
     */
    protected function setUp() {
        // TODO: Change the autogenerated stub.
        parent::setUp();
        $condition_plugin_manager = $this->createMock('Drupal\\Core\\Executable\\ExecutableManagerInterface');
        $condition_plugin_manager->expects($this->any())
            ->method('getDefinitions')
            ->will($this->returnValue([]));
        $container = new ContainerBuilder();
        $container->set('plugin.manager.condition', $condition_plugin_manager);
        \Drupal::setContainer($container);
        $this->executable = $this->getMockBuilder('Drupal\\views\\ViewExecutable')
            ->disableOriginalConstructor()
            ->setMethods([
            'buildRenderable',
            'setDisplay',
            'setItemsPerPage',
            'getShowAdminLinks',
        ])
            ->getMock();
        $this->executable
            ->expects($this->any())
            ->method('setDisplay')
            ->with('block_1')
            ->will($this->returnValue(TRUE));
        $this->executable
            ->expects($this->any())
            ->method('getShowAdminLinks')
            ->willReturn(FALSE);
        $this->executable->display_handler = $this->getMockBuilder('Drupal\\views\\Plugin\\views\\display\\Block')
            ->disableOriginalConstructor()
            ->setMethods(NULL)
            ->getMock();
        $this->view = $this->getMockBuilder('Drupal\\views\\Entity\\View')
            ->disableOriginalConstructor()
            ->getMock();
        $this->view
            ->expects($this->any())
            ->method('id')
            ->willReturn('test_view');
        $this->executable->storage = $this->view;
        $this->executableFactory = $this->getMockBuilder('Drupal\\views\\ViewExecutableFactory')
            ->disableOriginalConstructor()
            ->getMock();
        $this->executableFactory
            ->expects($this->any())
            ->method('get')
            ->with($this->view)
            ->will($this->returnValue($this->executable));
        $this->displayHandler = $this->getMockBuilder('Drupal\\views\\Plugin\\views\\display\\Block')
            ->disableOriginalConstructor()
            ->getMock();
        $this->displayHandler
            ->expects($this->any())
            ->method('blockSettings')
            ->willReturn([]);
        $this->displayHandler
            ->expects($this->any())
            ->method('getPluginId')
            ->willReturn('block');
        $this->displayHandler
            ->expects($this->any())
            ->method('getHandlers')
            ->willReturn([]);
        $this->executable->display_handler = $this->displayHandler;
        $this->storage = $this->getMockBuilder('Drupal\\Core\\Config\\Entity\\ConfigEntityStorage')
            ->disableOriginalConstructor()
            ->getMock();
        $this->storage
            ->expects($this->any())
            ->method('load')
            ->with('test_view')
            ->will($this->returnValue($this->view));
        $this->account = $this->createMock('Drupal\\Core\\Session\\AccountInterface');
    }
    
    /**
     * Tests the build method.
     *
     * @see \Drupal\views\Plugin\block\ViewsBlock::build()
     */
    public function testBuild() {
        $output = $this->randomMachineName(100);
        $build = [
            'view_build' => $output,
            '#view_id' => 'test_view',
            '#view_display_plugin_class' => '\\Drupal\\views\\Plugin\\views\\display\\Block',
            '#view_display_show_admin_links' => FALSE,
            '#view_display_plugin_id' => 'block',
            '#pre_rendered' => TRUE,
        ];
        $this->executable
            ->expects($this->once())
            ->method('buildRenderable')
            ->with('block_1', [])
            ->willReturn($build);
        $block_id = 'views_block:test_view-block_1';
        $config = [];
        $definition = [];
        $definition['provider'] = 'views';
        $plugin = new ViewsBlock($config, $block_id, $definition, $this->executableFactory, $this->storage, $this->account);
        $this->assertEquals($build, $plugin->build());
    }
    
    /**
     * Tests the build method.
     *
     * @covers ::build
     */
    public function testBuildEmpty() {
        $build = [
            'view_build' => [],
            '#view_id' => 'test_view',
            '#view_display_plugin_class' => '\\Drupal\\views\\Plugin\\views\\display\\Block',
            '#view_display_show_admin_links' => FALSE,
            '#view_display_plugin_id' => 'block',
            '#pre_rendered' => TRUE,
            '#cache' => [
                'contexts' => [
                    'user',
                ],
            ],
        ];
        $this->executable
            ->expects($this->once())
            ->method('buildRenderable')
            ->with('block_1', [])
            ->willReturn($build);
        $block_id = 'views_block:test_view-block_1';
        $config = [];
        $definition = [];
        $definition['provider'] = 'views';
        $plugin = new ViewsBlock($config, $block_id, $definition, $this->executableFactory, $this->storage, $this->account);
        $this->assertEquals(array_intersect_key($build, [
            '#cache' => TRUE,
        ]), $plugin->build());
    }
    
    /**
     * Tests the build method with a failed execution.
     *
     * @see \Drupal\views\Plugin\block\ViewsBlock::build()
     */
    public function testBuildFailed() {
        $output = FALSE;
        $this->executable
            ->expects($this->once())
            ->method('buildRenderable')
            ->with('block_1', [])
            ->willReturn($output);
        $block_id = 'views_block:test_view-block_1';
        $config = [];
        $definition = [];
        $definition['provider'] = 'views';
        $plugin = new ViewsBlock($config, $block_id, $definition, $this->executableFactory, $this->storage, $this->account);
        $this->assertEquals([], $plugin->build());
    }

}

Members

Title Sort descending Deprecated Modifiers Object type Summary Overriden Title Overrides
PhpunitCompatibilityTrait::getMock Deprecated public function Returns a mock object for the specified class using the available method.
PhpunitCompatibilityTrait::setExpectedException Deprecated public function Compatibility layer for PHPUnit 6 to support PHPUnit 4 code.
UnitTestCase::$randomGenerator protected property The random generator.
UnitTestCase::$root protected property The app root. 1
UnitTestCase::assertArrayEquals protected function Asserts if two arrays are equal by sorting them first.
UnitTestCase::getBlockMockWithMachineName Deprecated protected function Mocks a block with a block plugin. 1
UnitTestCase::getClassResolverStub protected function Returns a stub class resolver.
UnitTestCase::getConfigFactoryStub public function Returns a stub config factory that behaves according to the passed array.
UnitTestCase::getConfigStorageStub public function Returns a stub config storage that returns the supplied configuration.
UnitTestCase::getContainerWithCacheTagsInvalidator protected function Sets up a container with a cache tags invalidator.
UnitTestCase::getRandomGenerator protected function Gets the random generator for the utility methods.
UnitTestCase::getStringTranslationStub public function Returns a stub translation manager that just returns the passed string.
UnitTestCase::randomMachineName public function Generates a unique random string containing letters and numbers.
ViewsBlockTest::$account protected property The mocked user account.
ViewsBlockTest::$displayHandler protected property The mocked display handler.
ViewsBlockTest::$executable protected property The view executable.
ViewsBlockTest::$executableFactory protected property The view executable factory.
ViewsBlockTest::$storage protected property The view storage.
ViewsBlockTest::$view protected property The view entity.
ViewsBlockTest::setUp protected function Overrides UnitTestCase::setUp
ViewsBlockTest::testBuild public function Tests the build method.
ViewsBlockTest::testBuildEmpty public function Tests the build method.
ViewsBlockTest::testBuildFailed public function Tests the build method with a failed execution.

Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.