def test_handling_of_unicode_app_origin_string(self): good_data = { "origin": "https://example.com", "manifestPath": "/manifest.webapp", "installOrigin": "https://marketplace.mozilla.org", "installedAt": 1330535996745, "modifiedAt": 1330535996945, "name": "Examplinator 3000", "receipts": ["receipt1", "receipt2"], } app1 = AppRecord(good_data) ok, error = app1.validate() self.assertTrue(ok) good_data["origin"] = u"https://\N{SNOWMAN}.com" app2 = AppRecord(good_data) ok, error = app2.validate() self.assertTrue(ok) self.assertTrue(isinstance(app2.get_id(), str)) good_data["origin"] = u"https://example.com" app2 = AppRecord(good_data) ok, error = app2.validate() self.assertTrue(ok) self.assertEquals(app1.get_id(), app2.get_id())
def test_validation_of_app_records(self): app = AppRecord() ok, error = app.validate() self.assertFalse(ok) good_data = { "origin": "https://example.com", "manifestPath": "/manifest.webapp", "installOrigin": "https://marketplace.mozilla.org", "installedAt": 1330535996745, "modifiedAt": 1330535996945, "name": "Examplinator 3000", "receipts": ["receipt1", "receipt2"], } app = AppRecord(good_data) ok, error = app.validate() self.assertTrue(ok) good_data_hidden = good_data.copy() good_data_hidden["hidden"] = True app = AppRecord(good_data_hidden) ok, error = app.validate() self.assertTrue(ok) bad_data = good_data.copy() bad_data.pop("origin") app = AppRecord(bad_data) ok, error = app.validate() self.assertFalse(ok) bad_data = good_data.copy() bad_data["origin"] = 42 app = AppRecord(bad_data) ok, error = app.validate() self.assertFalse(ok) bad_data = good_data.copy() bad_data["name"] = ["name", "must", "be", "a", "string"] app = AppRecord(bad_data) ok, error = app.validate() self.assertFalse(ok) bad_data = good_data.copy() bad_data["installedAt"] = "the recent past" app = AppRecord(bad_data) ok, error = app.validate() self.assertFalse(ok) bad_data = good_data.copy() bad_data["receipts"] = "I HACK YOU GIVE ME ALL THE RECEIPTS" app = AppRecord(bad_data) ok, error = app.validate() self.assertFalse(ok) bad_data = good_data.copy() bad_data["receipts"] = ["I", "HACK", "YOU", 42] app = AppRecord(bad_data) ok, error = app.validate() self.assertFalse(ok) bad_data = good_data.copy() bad_data["hidden"] = "true" app = AppRecord(bad_data) ok, error = app.validate() self.assertFalse(ok)