rebaseline_server: add ImagePair class, a step towards new intermediate JSON schema

See https://goto.google.com/ChangingRbsJson and bug 1919 for additional context

BUG=skia:1919
NOTRY=True
R=rmistry@google.com

Author: epoger@google.com

Review URL: https://codereview.chromium.org/157593006

git-svn-id: http://skia.googlecode.com/svn/trunk@13385 2bbb7eff-a529-9590-31e7-b0007b416f81
diff --git a/gm/rebaseline_server/imagediffdb_test.py b/gm/rebaseline_server/imagediffdb_test.py
index b76a2c0..558a816 100755
--- a/gm/rebaseline_server/imagediffdb_test.py
+++ b/gm/rebaseline_server/imagediffdb_test.py
@@ -26,6 +26,7 @@
 
   def setUp(self):
     self._temp_dir = tempfile.mkdtemp()
+    self.maxDiff = None
 
   def tearDown(self):
     shutil.rmtree(self._temp_dir)
@@ -34,7 +35,20 @@
     """Tell unittest framework to not print docstrings for test cases."""
     return None
 
+  def test_sanitize_locator(self):
+    """Test _sanitize_locator()."""
+    self.assertEqual(imagediffdb._sanitize_locator('simple'), 'simple')
+    self.assertEqual(imagediffdb._sanitize_locator(1234), '1234')
+    self.assertEqual(imagediffdb._sanitize_locator('one/two'),  'one_two')
+    self.assertEqual(imagediffdb._sanitize_locator('one\\two'), 'one_two')
+    self.assertEqual(imagediffdb._sanitize_locator('one_two'),  'one_two')
+
   def test_simple(self):
+    """Test ImageDiffDB, downloading real known images from Google Storage.
+
+    TODO(epoger): Instead of hitting Google Storage, we should read image
+    files from local disk using a file:// IMG_URL_BASE.
+    """
     # params for each self-test:
     # 0. expected image locator
     # 1. expected image URL
@@ -45,16 +59,16 @@
     # 6. expected max_diff_per_channel
     selftests = [
         [
-            '16206093933823793653',
+            'arcofzorro/16206093933823793653',
             IMG_URL_BASE + 'arcofzorro/16206093933823793653.png',
-            '13786535001616823825',
+            'arcofzorro/13786535001616823825',
             IMG_URL_BASE + 'arcofzorro/13786535001616823825.png',
             '0.0662', '0.0113', [255, 255, 247],
         ],
         [
-            '10552995703607727960',
+            'gradients_degenerate_2pt/10552995703607727960',
             IMG_URL_BASE + 'gradients_degenerate_2pt/10552995703607727960.png',
-            '11198253335583713230',
+            'gradients_degenerate_2pt/11198253335583713230',
             IMG_URL_BASE + 'gradients_degenerate_2pt/11198253335583713230.png',
             '100.0000', '66.6667', [255, 0, 255],
         ],