From 5f9bc01887484e397f97805912f1175e1d670ea8 Mon Sep 17 00:00:00 2001 From: demeritcowboy Date: Sat, 20 May 2023 20:05:23 -0400 Subject: [PATCH] fix pluses being turned into spaces in hook_alterAngular --- .../crmSearchAdmin/searchListing/buttons.html | 2 +- tests/phpunit/Civi/Angular/ChangeSetTest.php | 26 +++++++++++++++++++ 2 files changed, 27 insertions(+), 1 deletion(-) diff --git a/ext/search_kit/ang/crmSearchAdmin/searchListing/buttons.html b/ext/search_kit/ang/crmSearchAdmin/searchListing/buttons.html index f77738780c..2499a9f9c8 100644 --- a/ext/search_kit/ang/crmSearchAdmin/searchListing/buttons.html +++ b/ext/search_kit/ang/crmSearchAdmin/searchListing/buttons.html @@ -14,7 +14,7 @@
  • - + {{:: ts('Clone...') }} diff --git a/tests/phpunit/Civi/Angular/ChangeSetTest.php b/tests/phpunit/Civi/Angular/ChangeSetTest.php index 3e7076476b..42fc69496d 100644 --- a/tests/phpunit/Civi/Angular/ChangeSetTest.php +++ b/tests/phpunit/Civi/Angular/ChangeSetTest.php @@ -77,6 +77,32 @@ class ChangeSetTest extends \CiviUnitTestCase { $this->assertEquals(2, $counts['~/foo.html']); } + /** + * Test that href expressions don't get mangled. + */ + public function testHrefExpressions() { + $changeSet = ChangeSet::create(__FUNCTION__); + $counts = ['~/foo.html' => 0]; + + $changeSet->alterHtml('~/foo.html', function (\phpQueryObject $doc, $file) use (&$counts) { + $counts[$file]++; + $doc->find('.foo')->attr('foos', '{{:: row.bars }}'); + }); + + $results = ChangeSet::applyResourceFilters([$changeSet], 'partials', [ + '~/foo.html' => '', + ]); + + $this->assertHtmlEquals( + // This currently fails if using regular href but it's not clear how + // to fix that consistently. ng-href seems more encouraged anyway. + // dev/core#4305 + '', + $results['~/foo.html'] + ); + $this->assertEquals(1, $counts['~/foo.html']); + } + protected function assertHtmlEquals($expected, $actual, $message = '') { $expected = preg_replace(';>[ \r\n\t]+;', '>', $expected); $actual = preg_replace(';>[ \r\n\t]+;', '>', $actual); -- 2.25.1