|
|
@@ -0,0 +1,54 @@ |
|
|
|
# -*- coding: utf-8 -*- |
|
|
|
# Copyright 2020 The Matrix.org Foundation C.I.C. |
|
|
|
# |
|
|
|
# Licensed under the Apache License, Version 2.0 (the "License"); |
|
|
|
# you may not use this file except in compliance with the License. |
|
|
|
# You may obtain a copy of the License at |
|
|
|
# |
|
|
|
# http://www.apache.org/licenses/LICENSE-2.0 |
|
|
|
# |
|
|
|
# Unless required by applicable law or agreed to in writing, software |
|
|
|
# distributed under the License is distributed on an "AS IS" BASIS, |
|
|
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
|
|
|
# See the License for the specific language governing permissions and |
|
|
|
# limitations under the License. |
|
|
|
|
|
|
|
from synapse.module_api import ModuleApi |
|
|
|
|
|
|
|
from tests.unittest import HomeserverTestCase |
|
|
|
|
|
|
|
|
|
|
|
class ModuleApiTestCase(HomeserverTestCase): |
|
|
|
def prepare(self, reactor, clock, homeserver): |
|
|
|
self.store = homeserver.get_datastore() |
|
|
|
self.module_api = ModuleApi(homeserver, homeserver.get_auth_handler()) |
|
|
|
|
|
|
|
def test_can_register_user(self): |
|
|
|
"""Tests that an external module can register a user""" |
|
|
|
# Register a new user |
|
|
|
user_id, access_token = self.get_success( |
|
|
|
self.module_api.register( |
|
|
|
"bob", displayname="Bobberino", emails=["bob@bobinator.bob"] |
|
|
|
) |
|
|
|
) |
|
|
|
|
|
|
|
# Check that the new user exists with all provided attributes |
|
|
|
self.assertEqual(user_id, "@bob:test") |
|
|
|
self.assertTrue(access_token) |
|
|
|
self.assertTrue(self.store.get_user_by_id(user_id)) |
|
|
|
|
|
|
|
# Check that the email was assigned |
|
|
|
emails = self.get_success(self.store.user_get_threepids(user_id)) |
|
|
|
self.assertEqual(len(emails), 1) |
|
|
|
|
|
|
|
email = emails[0] |
|
|
|
self.assertEqual(email["medium"], "email") |
|
|
|
self.assertEqual(email["address"], "bob@bobinator.bob") |
|
|
|
|
|
|
|
# Should these be 0? |
|
|
|
self.assertEqual(email["validated_at"], 0) |
|
|
|
self.assertEqual(email["added_at"], 0) |
|
|
|
|
|
|
|
# Check that the displayname was assigned |
|
|
|
displayname = self.get_success(self.store.get_profile_displayname("bob")) |
|
|
|
self.assertEqual(displayname, "Bobberino") |