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