You are here

class AggregatorPluginSettingsBaseTest in Drupal 8

Same name and namespace in other branches
  1. 9 core/modules/aggregator/tests/src/Unit/Plugin/AggregatorPluginSettingsBaseTest.php \Drupal\Tests\aggregator\Unit\Plugin\AggregatorPluginSettingsBaseTest

Tests settings configuration of individual aggregator plugins.

@group aggregator

Hierarchy

Expanded class hierarchy of AggregatorPluginSettingsBaseTest

File

core/modules/aggregator/tests/src/Unit/Plugin/AggregatorPluginSettingsBaseTest.php, line 15

Namespace

Drupal\Tests\aggregator\Unit\Plugin
View source
class AggregatorPluginSettingsBaseTest extends UnitTestCase {

  /**
   * The aggregator settings form object under test.
   *
   * @var \Drupal\aggregator\Form\SettingsForm
   */
  protected $settingsForm;

  /**
   * The stubbed config factory object.
   *
   * @var \PHPUnit\Framework\MockObject\MockBuilder
   */
  protected $configFactory;

  /**
   * The stubbed aggregator plugin managers array.
   *
   * @var array
   */
  protected $managers;

  /**
   * {@inheritdoc}
   */
  protected function setUp() {
    $this->configFactory = $this
      ->getConfigFactoryStub([
      'aggregator.settings' => [
        'processors' => [
          'aggregator_test',
        ],
      ],
      'aggregator_test.settings' => [],
    ]);
    foreach ([
      'fetcher',
      'parser',
      'processor',
    ] as $type) {
      $this->managers[$type] = $this
        ->getMockBuilder('Drupal\\aggregator\\Plugin\\AggregatorPluginManager')
        ->disableOriginalConstructor()
        ->getMock();
      $this->managers[$type]
        ->expects($this
        ->once())
        ->method('getDefinitions')
        ->will($this
        ->returnValue([
        'aggregator_test' => [
          'title' => '',
          'description' => '',
        ],
      ]));
    }

    /** @var \Drupal\Core\Messenger\MessengerInterface|\PHPUnit\Framework\MockObject\MockBuilder $messenger */
    $messenger = $this
      ->createMock(MessengerInterface::class);
    $messenger
      ->expects($this
      ->any())
      ->method('addMessage');
    $this->settingsForm = new SettingsForm($this->configFactory, $this->managers['fetcher'], $this->managers['parser'], $this->managers['processor'], $this
      ->getStringTranslationStub());
    $this->settingsForm
      ->setMessenger($messenger);
  }

  /**
   * Test for AggregatorPluginSettingsBase.
   *
   * Ensure that the settings form calls build, validate and submit methods on
   * plugins that extend AggregatorPluginSettingsBase.
   */
  public function testSettingsForm() {

    // Emulate a form state of a submitted form.
    $form_state = (new FormState())
      ->setValues([
      'dummy_length' => '',
      'aggregator_allowed_html_tags' => '',
    ]);
    $test_processor = $this
      ->getMockBuilder('Drupal\\aggregator_test\\Plugin\\aggregator\\processor\\TestProcessor')
      ->setMethods([
      'buildConfigurationForm',
      'validateConfigurationForm',
      'submitConfigurationForm',
    ])
      ->setConstructorArgs([
      [],
      'aggregator_test',
      [
        'description' => '',
      ],
      $this->configFactory,
    ])
      ->getMock();
    $test_processor
      ->expects($this
      ->at(0))
      ->method('buildConfigurationForm')
      ->with($this
      ->anything(), $form_state)
      ->will($this
      ->returnArgument(0));
    $test_processor
      ->expects($this
      ->at(1))
      ->method('validateConfigurationForm')
      ->with($this
      ->anything(), $form_state);
    $test_processor
      ->expects($this
      ->at(2))
      ->method('submitConfigurationForm')
      ->with($this
      ->anything(), $form_state);
    $this->managers['processor']
      ->expects($this
      ->once())
      ->method('createInstance')
      ->with($this
      ->equalTo('aggregator_test'))
      ->will($this
      ->returnValue($test_processor));
    $form = $this->settingsForm
      ->buildForm([], $form_state);
    $this->settingsForm
      ->validateForm($form, $form_state);
    $this->settingsForm
      ->submitForm($form, $form_state);
  }

}

Members

Namesort descending Modifiers Type Description Overrides
AggregatorPluginSettingsBaseTest::$configFactory protected property The stubbed config factory object.
AggregatorPluginSettingsBaseTest::$managers protected property The stubbed aggregator plugin managers array.
AggregatorPluginSettingsBaseTest::$settingsForm protected property The aggregator settings form object under test.
AggregatorPluginSettingsBaseTest::setUp protected function Overrides UnitTestCase::setUp
AggregatorPluginSettingsBaseTest::testSettingsForm public function Test for AggregatorPluginSettingsBase.
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.