/** * Tests term matcher with bundle filer. */ function testTermMatcherWidthBundleFiler() { /** @var \Drupal\linkit\MatcherInterface $plugin */ $plugin = $this->manager->createInstance('entity:taxonomy_term', [ 'settings' => [ 'bundles' => [ 'testing_vocabulary_1' => 'testing_vocabulary_1' ], ], ]); $matches = $plugin->getMatches('foo'); $this->assertEqual(3, count($matches), 'Correct number of matches'); }
/** * Builds the table rows. * * @return array * An array of table rows. */ private function buildRows() { $rows = []; $all_plugins = $this->manager->getDefinitions(); uasort($all_plugins, function ($a, $b) { return strnatcasecmp($a['label'], $b['label']); }); foreach ($all_plugins as $definition) { /** @var \Drupal\linkit\MatcherInterface $plugin */ $plugin = $this->manager->createInstance($definition['id']); $row = [ 'label' => $plugin->getLabel(), ]; $rows[$plugin->getPluginId()] = $row; } return $rows; }
/** * Tests node matcher with include unpublished setting activated. */ function testNodeMatcherWidthIncludeUnpublished() { /** @var \Drupal\linkit\MatcherInterface $plugin */ $plugin = $this->manager->createInstance('entity:node', [ 'settings' => [ 'include_unpublished' => TRUE, ], ]); // Test without permissions to see unpublished nodes. $matches = $plugin->getMatches('Lorem'); $this->assertEqual(3, count($matches), 'Correct number of matches'); $account = $this->drupalCreateUser(['bypass node access']); $this->drupalLogin($account); // Test with permissions to see unpublished nodes. $matches = $plugin->getMatches('Lorem'); $this->assertEqual(4, count($matches), 'Correct number of matches'); }
/** * Tests user matcher with include blocked setting activated. */ function testUserMatcherWidthIncludeBlocked() { /** @var \Drupal\linkit\MatcherInterface $plugin */ $plugin = $this->manager->createInstance('entity:user', [ 'settings' => [ 'include_blocked' => TRUE, ], ]); // Test without permissions to see blocked users. $matches = $plugin->getMatches('blocked'); $this->assertEqual(0, count($matches), 'Correct number of matches'); $account = $this->drupalCreateUser(['administer users']); $this->drupalLogin($account); // Test with permissions to see blocked users. $matches = $plugin->getMatches('blocked'); $this->assertEqual(1, count($matches), 'Correct number of matches'); }
/** * Test delete a matcher from a profile. */ function testDelete() { /** @var \Drupal\linkit\AttributeInterface $plugin */ $plugin = $this->manager->createInstance('dummy_matcher'); $profile = $this->createProfile(); $plugin_uuid = $profile->addMatcher($plugin->getConfiguration()); $profile->save(); // Try delete a matcher that is not attached to the profile. $this->drupalGet(Url::fromRoute('linkit.matcher.delete', [ 'linkit_profile' => $profile->id(), 'plugin_instance_id' => 'doesntexists' ])); $this->assertResponse('404'); // Go to the delete page, but press cancel. $this->drupalGet(Url::fromRoute('linkit.matcher.delete', [ 'linkit_profile' => $profile->id(), 'plugin_instance_id' => $plugin_uuid, ])); $this->clickLink(t('Cancel')); $this->assertUrl(Url::fromRoute('linkit.matchers', [ 'linkit_profile' => $profile->id(), ])); // Delete the matcher from the profile. $this->drupalGet(Url::fromRoute('linkit.matcher.delete', [ 'linkit_profile' => $profile->id(), 'plugin_instance_id' => $plugin_uuid, ])); $this->drupalPostForm(NULL, [], t('Confirm')); $this->assertRaw(t('The matcher %plugin has been deleted.', ['%plugin' => $plugin->getLabel()])); $this->assertUrl(Url::fromRoute('linkit.matchers', [ 'linkit_profile' => $profile->id(), ])); $this->assertText(t('No matchers added.')); /** @var \Drupal\linkit\Entity\Profile $updated_profile */ $updated_profile = Profile::load($profile->id()); $this->assertFalse($updated_profile->getMatchers()->has($plugin_uuid), 'The user matcher is deleted from the profile'); }