def testChangingSomeoneElsesProfile(self): setCurrentUser("*****@*****.**", "Administrator") register_new_user('SiteAdmin') site_admin_id = _get_my_profile().key.urlsafe() logoutCurrentUser() setCurrentUser("*****@*****.**", "NewUser1") register_new_user('NewUserOne') new_user_1_id = _get_my_profile().key.urlsafe() role_1_id = create_role("Test Role 1") set_playing(role_1_id) logoutCurrentUser() setCurrentUser("*****@*****.**", "NewUser2") ''' This code simulates an attack against the Model, using the Google Account ID to load another users Profile ''' profile = ndb.Key(urlsafe=new_user_1_id).get() profile.playing = ndb.Key(urlsafe=role_1_id) self.assertRaises(DataModelException, profile.put) profile = ndb.Key(urlsafe=site_admin_id).get() profile.playing = ndb.Key(urlsafe=role_1_id) self.assertRaises(DataModelException, profile.put) register_new_user('NewUserTwo') ''' This code simulates an attack against the Model, using the Google Account ID to load another users Profile ''' profile = ndb.Key(urlsafe=new_user_1_id).get() profile.playing = ndb.Key(urlsafe=role_1_id) self.assertRaises(DataModelException, profile.put) profile = ndb.Key(urlsafe=site_admin_id).get() profile.playing = ndb.Key(urlsafe=role_1_id) self.assertRaises(DataModelException, profile.put)
def testChangeNarrativeBody(self): logoutCurrentUser() setCurrentUser("*****@*****.**", "User1") register_new_user('User1') place1 = create_place("Place 1") role1 = create_role("Role 1") create_presence(role1, place1) set_playing(role1) create_narrative(place1, "Narrative 1 from Role 1 at Place 1") rset = get_first_narrative() self.assertEqual(rset["more"], False) self.assertEqual(len(rset["narrative"]), 1) narrative = rset["narrative"][0] self.assertEqual(narrative["role"], "Role 1") self.assertEqual(narrative["place"], "Place 1") self.assertEqual(narrative["body"], "Narrative 1 from Role 1 at Place 1") self.assertIsNotNone(narrative["created"]) self.assertIsNone(narrative["updated"]) save_narrative(narrative["id"], "Narrative 1 from Role 1 at Place 1 - updated") rset = get_first_narrative() self.assertEqual(rset["more"], False) self.assertEqual(len(rset["narrative"]), 1) narrative = rset["narrative"][0] self.assertEqual(narrative["role"], "Role 1") self.assertEqual(narrative["place"], "Place 1") self.assertEqual(narrative["body"], "Narrative 1 from Role 1 at Place 1 - updated") self.assertIsNotNone(narrative["created"]) self.assertIsNotNone(narrative["updated"])
def testChangeNarrativePlace(self): logoutCurrentUser() setCurrentUser("*****@*****.**", "User1") register_new_user('User1') place1 = create_place("Place 1") place2 = create_place("Place 2") role1 = create_role("Role 1") role2 = create_role("Role 2") create_presence(role1, place1) create_presence(role2, place2) set_playing(role1) create_narrative(place1, "Narrative 1 from Role 1 at Place 1") rset = get_first_narrative() self.assertEqual(len(rset["narrative"]), 1) narrative = rset["narrative"][0] set_playing(role2) rset = get_first_narrative() self.assertEqual(len(rset["narrative"]), 0) set_playing(role1) create_presence(role1, place2) save_narrative(narrative["id"], place_id=place2) rset = get_first_narrative() self.assertEqual(len(rset["narrative"]), 1) set_playing(role2) rset = get_first_narrative() self.assertEqual(len(rset["narrative"]), 1)
def testSetPlaying(self): setCurrentUser("*****@*****.**", "User1") register_new_user('User1') role1 = create_role("Test Role 1") role2 = create_role("Test Role 2") set_playing(role1) self.assertEqual(get_my_roles()[0]["name"], "Test Role 1") set_playing(role2) self.assertEqual(get_my_roles()[1]["name"], "Test Role 2") set_playing(None) self.assertEqual(get_my_roles()[2]["name"], "User1")
def testCreateNarrative(self): logoutCurrentUser() setCurrentUser("*****@*****.**", "User1") user1 = register_new_user('User1') place1 = create_place("Place 1") role1 = create_role("Role 1") place2 = create_place("Place 2") role2 = create_role("Role 2") create_presence(role1, place1) set_playing(role1) create_narrative(place1, "Narrative 1 from Role 1 at Place 1") create_presence(role2, place2) set_playing(role2) create_narrative(place2, "Narrative 1 from Role 2 at Place 2") create_presence(role2, place1) set_playing(role1) create_narrative(place1, "Narrative 2 from Role 1 at Place 1") create_presence(role1, place2) set_playing(role2) create_narrative(place2, "Narrative 2 from Role 2 at Place 2") delete_presence(role2, place1) set_playing(role1) create_narrative(place1, "Narrative 3 from Role 1 at Place 1") delete_presence(role1, place2) set_playing(role2) create_narrative(place2, "Narrative 3 from Role 2 at Place 2") set_playing(role1) rset = get_first_narrative() self.assertEqual(rset["more"], False) self.assertEqual(len(rset["narrative"]), 4) set_playing(role2) rset = get_first_narrative() self.assertEqual(rset["more"], False) self.assertEqual(len(rset["narrative"]), 4) set_playing(user1) rset = get_first_narrative() self.assertEqual(rset["more"], False) self.assertEqual(len(rset["narrative"]), 6) setCurrentUser("*****@*****.**", "Administrator") rset = get_first_narrative() self.assertEqual(rset["more"], False) self.assertEqual(len(rset["narrative"]), 0) setCurrentUser("*****@*****.**", "User1") create_presence(role1, place2) create_presence(role2, place1) set_playing(role1) create_narrative(place1, "Narrative 4 from Role 1 at Place 1") create_narrative(place1, "Narrative 5 from Role 1 at Place 1") create_narrative(place1, "Narrative 6 from Role 1 at Place 1") create_narrative(place1, "Narrative 7 from Role 1 at Place 1") create_narrative(place1, "Narrative 8 from Role 1 at Place 1") create_narrative(place1, "Narrative 9 from Role 1 at Place 1") set_playing(role2) create_narrative(place2, "Narrative 4 from Role 2 at Place 2") create_narrative(place2, "Narrative 5 from Role 2 at Place 2") create_narrative(place2, "Narrative 6 from Role 2 at Place 2") create_narrative(place2, "Narrative 7 from Role 2 at Place 2") create_narrative(place2, "Narrative 8 from Role 2 at Place 2") create_narrative(place2, "Narrative 9 from Role 2 at Place 2") set_playing(role1) rset = get_first_narrative() self.assertEqual(rset["more"], True) self.assertEqual(len(rset["narrative"]), 10) rset = get_more_narrative(rset["next"]) self.assertEqual(rset["more"], False) self.assertEqual(len(rset["narrative"]), 6) set_playing(role2) rset = get_first_narrative() self.assertEqual(rset["more"], True) self.assertEqual(len(rset["narrative"]), 10) rset = get_more_narrative(rset["next"]) self.assertEqual(rset["more"], False) self.assertEqual(len(rset["narrative"]), 6) set_playing(user1) rset = get_first_narrative() self.assertEqual(rset["more"], True) self.assertEqual(len(rset["narrative"]), 10) rset = get_more_narrative(rset["next"]) self.assertEqual(rset["more"], False) self.assertEqual(len(rset["narrative"]), 8) setCurrentUser("*****@*****.**", "Administrator") rset = get_first_narrative() self.assertEqual(rset["more"], False) self.assertEqual(len(rset["narrative"]), 0)