InstallTest.php in Node Option Premium 8
File
tests/src/Functional/InstallTest.php
View source
<?php
namespace Drupal\Tests\nopremium\Functional;
use Drupal\Tests\BrowserTestBase;
class InstallTest extends BrowserTestBase {
public static $modules = [];
protected $defaultTheme = 'stark';
public $moduleHandler;
public $moduleInstaller;
protected function setUp() {
parent::setUp();
$this->moduleHandler = $this->container
->get('module_handler');
$this->moduleInstaller = $this->container
->get('module_installer');
}
protected function reloadServices() {
$this
->rebuildContainer();
$this->moduleHandler = $this->container
->get('module_handler');
$this->moduleInstaller = $this->container
->get('module_installer');
}
public function testInstallation() {
$this
->assertFalse($this->moduleHandler
->moduleExists('nopremium'));
$this
->assertTrue($this->moduleInstaller
->install([
'nopremium',
]));
$this
->reloadServices();
$this
->assertTrue($this->moduleHandler
->moduleExists('nopremium'));
}
public function testInstallationWithExistingNode() {
$this
->assertTrue($this->moduleInstaller
->install([
'node',
'views',
]));
$this
->drupalCreateContentType([
'type' => 'foo',
]);
$node = $this
->drupalCreateNode([
'type' => 'foo',
'body' => [
[
'value' => 'Lorem ipsum',
'format' => filter_default_format(),
],
],
'promote' => TRUE,
]);
$this
->assertTrue($this->moduleInstaller
->install([
'nopremium',
]));
$this
->drupalGet($node
->toUrl());
$this
->assertSession()
->pageTextContains('Lorem ipsum');
$this
->assertSession()
->pageTextNotContains('The full content of this page is available to premium users only.');
$this
->drupalGet('node');
$this
->assertSession()
->pageTextContains('Lorem ipsum');
$this
->assertSession()
->pageTextNotContains('The full content of this page is available to premium users only.');
}
}