From f34b6ded6a3d7a62b82f9d5c235bae3ad195d39f Mon Sep 17 00:00:00 2001
From: Shane Tomlinson <stomlinson@mozilla.com>
Date: Mon, 17 Sep 2012 12:56:09 +0100
Subject: [PATCH] No longer use the email address as an element ID.

* Unit tests now check the displayed order of the addresses against the data model's sorted order.
---
 resources/static/pages/js/manage_account.js          |  3 +--
 .../static/test/cases/pages/js/manage_account.js     | 12 ++++++------
 resources/views/index.ejs                            |  4 ++--
 3 files changed, 9 insertions(+), 10 deletions(-)

diff --git a/resources/static/pages/js/manage_account.js b/resources/static/pages/js/manage_account.js
index 1abd43fca..5582bd363 100644
--- a/resources/static/pages/js/manage_account.js
+++ b/resources/static/pages/js/manage_account.js
@@ -90,8 +90,7 @@ BrowserID.manageAccount = (function() {
 
     _(emails).each(function(item) {
       var e = item.address;
-      var id = e.replace('@', '_').replace('.', '_', 'g');
-      var identity = substitute(template, { email: e, id: id });
+      var identity = substitute(template, { email: e });
 
       var idEl = dom.appendTo(identity, list),
           deleteButton = dom.getDescendentElements(".delete", idEl);
diff --git a/resources/static/test/cases/pages/js/manage_account.js b/resources/static/test/cases/pages/js/manage_account.js
index 42cbd863b..e9e6cd982 100644
--- a/resources/static/test/cases/pages/js/manage_account.js
+++ b/resources/static/test/cases/pages/js/manage_account.js
@@ -9,6 +9,7 @@
   var bid = BrowserID,
       xhr = bid.Mocks.xhr,
       errorScreen = bid.Screens.error,
+      user = bid.User,
       network = bid.Network,
       storage = bid.Storage,
       testHelpers = bid.TestHelpers,
@@ -82,12 +83,11 @@
     xhr.useResult("multiple");
 
     createController(mocks, function() {
-      equal($("#emailList").children().length, 2, "there two children added");
-
-      var firstLI = $("#testuser2_testuser_com");
-      var secondLI = $("#testuser_testuser_com");
-
-      equal(firstLI.next().is(secondLI), true, "names are in alphabetical order");
+      var sortedEmails = user.getSortedEmailKeypairs();
+      _.each(sortedEmails, function(addressInfo, index) {
+        var displayedAddress = $("#emailList .email").get(index).innerHTML;
+        equal(displayedAddress, addressInfo.address, "emails are displayed in sorted order");
+      });
 
       start();
     });
diff --git a/resources/views/index.ejs b/resources/views/index.ejs
index b4d6f2b65..68c5cdcb3 100644
--- a/resources/views/index.ejs
+++ b/resources/views/index.ejs
@@ -19,13 +19,13 @@
       </div>
   </div>
 
-  <!-- 
+  <!--
     These "templates" below aren't available as EJS client-side, since all
     EJS tags are processed when this view is served by the server.
   -->
 
   <script type="text/html" id="templateUser">
-    <li class="identity cf" id="{{id}}">
+    <li class="identity cf">
       <div class="email">{{email}}</div>
       <button class="delete"><%- gettext('remove') %></button>
     </li>
-- 
GitLab