extlink.css | 30 +++++++++++----------- extlink.js | 5 ++-- tests/src/FunctionalJavascript/ExtlinkTest.php | 18 ++++++------- tests/src/FunctionalJavascript/ExtlinkTestBase.php | 10 ++++++++ .../FunctionalJavascript/ExtlinkTestNoFollow.php | 16 ++++++------ .../src/FunctionalJavascript/ExtlinkTestTarget.php | 8 +++--- 6 files changed, 49 insertions(+), 38 deletions(-) diff --git a/extlink.css b/extlink.css index 8a9d71e..9647e02 100644 --- a/extlink.css +++ b/extlink.css @@ -1,22 +1,22 @@ -span.ext { - background: url(extlink_s.png) 2px center no-repeat; - width: 10px; - height: 10px; - padding-right: 12px; - text-decoration: none; +svg.ext { + width: 14px; + height: 14px; + padding-right: 0.2em; + padding-left: 0.2em; + fill: #6f6f6f; } -span.mailto { - background: url(extlink_s.png) -20px center no-repeat; - width: 10px; - height: 10px; - padding-right: 12px; - text-decoration: none; +svg.mailto { + width: 14px; + height: 14px; + padding-right: 0.2em; + padding-left: 0.2em; + fill: #6f6f6f; } -/* Hide the extra spans when printing. */ +/* Hide the extra icons when printing. */ @media print { - span.ext, - span.mailto { + svg.ext, + svg.mailto { display: none; padding: 0; } diff --git a/extlink.js b/extlink.js index 19fecaa..c7c8aa1 100644 --- a/extlink.js +++ b/extlink.js @@ -214,10 +214,11 @@ } else { if (class_name === drupalSettings.data.extlink.mailtoClass) { - $link[icon_placement]('' + drupalSettings.data.extlink.mailtoLabel + ''); + $link[icon_placement]('' + drupalSettings.data.extlink.mailtoLabel + ''); } else { - $link[icon_placement]('' + drupalSettings.data.extlink.extLabel + ''); + $link[icon_placement]('' + drupalSettings.data.extlink.extLabel + ''); + } } } diff --git a/tests/src/FunctionalJavascript/ExtlinkTest.php b/tests/src/FunctionalJavascript/ExtlinkTest.php index 6e9ca14..6f83289 100644 --- a/tests/src/FunctionalJavascript/ExtlinkTest.php +++ b/tests/src/FunctionalJavascript/ExtlinkTest.php @@ -10,7 +10,7 @@ namespace Drupal\Tests\extlink\FunctionalJavascript; class ExtlinkTest extends ExtlinkTestBase { /** - * Checks to see if external link gets extlink span. + * Checks to see if external link gets extlink svg. */ public function testExtlink() { // Login. @@ -37,12 +37,12 @@ class ExtlinkTest extends ExtlinkTestBase { $this->assertTrue($page->hasLink('Google!')); $this->assertTrue($page->hasLink('Send Mail')); - // Test that the page has the external link span. - $externalLink = $page->find('css', 'span.ext'); + // Test that the page has the external link svg. + $externalLink = $page->find('xpath', EXTLINK_EXT_XPATH); $this->assertTrue(!is_null($externalLink) && $externalLink->isVisible(), 'External Link Exists.'); - // Test that the page has the Mailto external link span. - $mailToLink = $page->find('css', 'span.mailto'); + // Test that the page has the Mailto external link svg. + $mailToLink = $page->find('xpath', EXTLINK_MAILTO_XPATH); $this->assertTrue(!is_null($mailToLink) && $mailToLink->isVisible(), 'External Link MailTo Exists.'); } @@ -78,12 +78,12 @@ class ExtlinkTest extends ExtlinkTestBase { $this->assertTrue($page->hasLink('Google!')); $this->assertTrue($page->hasLink('Send Mail')); - // Test that the page has the external link span. - $externalLink = $page->find('css', 'span.ext'); + // Test that the page has the external link svg. + $externalLink = $page->find('xpath', EXTLINK_EXT_XPATH); $this->assertTrue(is_null($externalLink), 'External Link does not exist.'); - // Test that the page has the Mailto external link span. - $mailToLink = $page->find('css', 'span.mailto'); + // Test that the page has the Mailto external link svg. + $mailToLink = $page->find('xpath', EXTLINK_MAILTO_XPATH); $this->assertTrue(is_null($mailToLink), 'External Link MailTo does not exist.'); } diff --git a/tests/src/FunctionalJavascript/ExtlinkTestBase.php b/tests/src/FunctionalJavascript/ExtlinkTestBase.php index 6c6c4b0..c51632a 100644 --- a/tests/src/FunctionalJavascript/ExtlinkTestBase.php +++ b/tests/src/FunctionalJavascript/ExtlinkTestBase.php @@ -43,6 +43,16 @@ abstract class ExtlinkTestBase extends JavascriptTestBase { */ const EXTLINK_ADMIN_PATH = 'admin/config/user-interface/extlink'; + /** + * Xpath for External Links link class. + */ + const EXTLINK_EXT_XPATH = '//*[local-name() = "svg" and @class="ext"]'; + + /** + * Xpath for External Links Mailto class. + */ + const EXTLINK_MAILTO_XPATH = '//*[local-name() = "svg" and @class="mailto"]'; + /** * {@inheritdoc} */ diff --git a/tests/src/FunctionalJavascript/ExtlinkTestNoFollow.php b/tests/src/FunctionalJavascript/ExtlinkTestNoFollow.php index 41164f7..33acb0b 100644 --- a/tests/src/FunctionalJavascript/ExtlinkTestNoFollow.php +++ b/tests/src/FunctionalJavascript/ExtlinkTestNoFollow.php @@ -39,8 +39,8 @@ class ExtlinkTestNoFollow extends ExtlinkTestBase { $this->assertSession()->statusCodeEquals(200); $this->assertTrue($page->hasLink('Google!')); - // Test that the page has the external link span. - $externalLink = $page->find('css', 'span.ext'); + // Test that the page has the external link svg. + $externalLink = $page->find('xpath', EXTLINK_EXT_XPATH); $this->assertTrue(!is_null($externalLink) && $externalLink->isVisible(), 'External Link does not exist.'); // Does the anchor tag have no follow? @@ -81,8 +81,8 @@ class ExtlinkTestNoFollow extends ExtlinkTestBase { $this->assertSession()->statusCodeEquals(200); $this->assertTrue($page->hasLink('Google!')); - // Test that the page has the external link span. - $externalLink = $page->find('css', 'span.ext'); + // Test that the page has the external link svg. + $externalLink = $page->find('xpath', EXTLINK_EXT_XPATH); $this->assertTrue(is_null($externalLink), 'External Link exists.'); // Does the anchor tag have no follow? @@ -124,8 +124,8 @@ class ExtlinkTestNoFollow extends ExtlinkTestBase { $this->assertSession()->statusCodeEquals(200); $this->assertTrue($page->hasLink('Google!')); - // Test that the page doesn't have the external link span. - $externalLink = $page->find('css', 'span.ext'); + // Test that the page doesn't have the external link svg. + $externalLink = $page->find('xpath', EXTLINK_EXT_XPATH); $this->assertTrue(is_null($externalLink), 'External Link exists.'); // Check for no 'nofollow'. @@ -164,8 +164,8 @@ class ExtlinkTestNoFollow extends ExtlinkTestBase { $this->assertSession()->statusCodeEquals(200); $this->assertTrue($page->hasLink('Google!')); - // Test that the page has the external link span. - $externalLink = $page->find('css', 'span.ext'); + // Test that the page has the external link svg. + $externalLink = $page->find('xpath', EXTLINK_EXT_XPATH); $this->assertTrue(!is_null($externalLink) && $externalLink->isVisible(), 'External Link does not exist.'); // Does the anchor tag have no follow? diff --git a/tests/src/FunctionalJavascript/ExtlinkTestTarget.php b/tests/src/FunctionalJavascript/ExtlinkTestTarget.php index b7270c3..c7122a0 100644 --- a/tests/src/FunctionalJavascript/ExtlinkTestTarget.php +++ b/tests/src/FunctionalJavascript/ExtlinkTestTarget.php @@ -39,8 +39,8 @@ class ExtlinkTestTarget extends ExtlinkTestBase { $this->assertSession()->statusCodeEquals(200); $this->assertTrue($page->hasLink('Google!')); - // Test that the page has the external link span. - $externalLink = $page->find('css', 'span.ext'); + // Test that the page has the external link svg. + $externalLink = $page->find('xpath', EXTLINK_EXT_XPATH); $this->assertTrue(!is_null($externalLink) && $externalLink->isVisible(), 'External Link does not exist.'); $link = $page->findLink('Google!'); @@ -82,8 +82,8 @@ class ExtlinkTestTarget extends ExtlinkTestBase { $this->assertSession()->statusCodeEquals(200); $this->assertTrue($page->hasLink('Google!')); - // Test that the page has the external link span. - $externalLink = $page->find('css', 'span.ext'); + // Test that the page has the external link svg. + $externalLink = $page->find('xpath', EXTLINK_EXT_XPATH); $this->assertTrue(!is_null($externalLink) && $externalLink->isVisible(), 'External Link does not exist.'); $link = $page->findLink('Google!');