class AggregatorPluginSettingsBaseTest

Same name 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

Title Sort descending Deprecated Modifiers Object type Summary Overriden Title 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.

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