From 0e323943f48d2c429d1606e5cad2c9e646984a74 Mon Sep 17 00:00:00 2001 From: Shane Tomlinson <stomlinson@mozilla.com> Date: Mon, 16 Jul 2012 14:02:10 +0100 Subject: [PATCH] Update frontend ejs library to deal with <%- <%- is an alias for <%=. Update one unit test so all frontend tests pass. --- resources/static/common/js/lib/ejs.js | 11 ++++++++++- .../test/cases/pages/js/verify_secondary_address.js | 2 +- 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/resources/static/common/js/lib/ejs.js b/resources/static/common/js/lib/ejs.js index 31a9df53f..d2396e0bd 100644 --- a/resources/static/common/js/lib/ejs.js +++ b/resources/static/common/js/lib/ejs.js @@ -152,9 +152,16 @@ EJS.Scanner = function(source, left, right) { double_left: left+'%%', double_right: '%%'+right, left_equal: left+'%=', + // set - Persona addition. The backend understands <%-, which acts + // identical to the frontend's <%=. <%= on the backend escapes + // characters to their HTML code equivalents. For unit testing, we + // write backend templates on the front end, so we have to be able to + // process <%-. Creating an alias here. Using it wherever + // left_equal is found. + left_dash: left+'%-', left_comment: left+'%#'}) - this.SplitRegexp = left=='[' ? /(\[%%)|(%%\])|(\[%=)|(\[%#)|(\[%)|(%\]\n)|(%\])|(\n)/ : new RegExp('('+this.double_left+')|(%%'+this.double_right+')|('+this.left_equal+')|('+this.left_comment+')|('+this.left_delimiter+')|('+this.right_delimiter+'\n)|('+this.right_delimiter+')|(\n)') ; + this.SplitRegexp = left=='[' ? /(\[%%)|(%%\])|(\[%=)|(\[%#)|(\[%)|(%\]\n)|(%\])|(\n)/ : new RegExp('('+this.double_left+')|(%%'+this.double_right+')|('+this.left_equal+')|('+this.left_dash+')|('+this.left_comment+')|('+this.left_delimiter+')|('+this.right_delimiter+'\n)|('+this.right_delimiter+')|(\n)') ; this.source = source; this.stag = null; @@ -297,6 +304,7 @@ EJS.Compiler.prototype = { break; case scanner.left_delimiter: case scanner.left_equal: + case scanner.left_dash: case scanner.left_comment: scanner.stag = token; if (content.length > 0) @@ -328,6 +336,7 @@ EJS.Compiler.prototype = { buff.push(content); } break; + case scanner.left_dash: case scanner.left_equal: buff.push(insert_cmd + "(EJS.Scanner.to_text(" + content + ")))"); break; diff --git a/resources/static/test/cases/pages/js/verify_secondary_address.js b/resources/static/test/cases/pages/js/verify_secondary_address.js index 8afe1e7f1..c9227af84 100644 --- a/resources/static/test/cases/pages/js/verify_secondary_address.js +++ b/resources/static/test/cases/pages/js/verify_secondary_address.js @@ -84,7 +84,7 @@ createController(config, function() { testVisible("#congrats"); testHasClass("body", "complete"); - equal($(".website").text(), returnTo, "website is updated"); + equal($(".website").eq(0).text(), returnTo, "website is updated"); equal(doc.location.href, returnTo, "redirection occurred to correct URL"); equal(storage.getLoggedIn("https://test.domain"), "testuser@testuser.com", "logged in status set"); start(); -- GitLab