4343MOCK_ACTION_CODE_DATA = {
4444 'url' : 'http://localhost' ,
4545 'handle_code_in_app' : True ,
46- 'dynamic_link_domain' : 'http://testly' ,
46+ 'dynamic_link_domain' : 'http://dynamic-link-domain' ,
47+ 'link_domain' : 'http://link-domain' ,
4748 'ios_bundle_id' : 'test.bundle' ,
4849 'android_package_name' : 'test.bundle' ,
4950 'android_minimum_version' : '7' ,
@@ -1363,7 +1364,8 @@ def test_valid_data(self):
13631364 data = {
13641365 'url' : 'http://localhost' ,
13651366 'handle_code_in_app' : True ,
1366- 'dynamic_link_domain' : 'http://testly' ,
1367+ 'dynamic_link_domain' : 'http://dynamic-link-domain' ,
1368+ 'link_domain' : 'http://link-domain' ,
13671369 'ios_bundle_id' : 'test.bundle' ,
13681370 'android_package_name' : 'test.bundle' ,
13691371 'android_minimum_version' : '7' ,
@@ -1374,6 +1376,7 @@ def test_valid_data(self):
13741376 assert parameters ['continueUrl' ] == data ['url' ]
13751377 assert parameters ['canHandleCodeInApp' ] == data ['handle_code_in_app' ]
13761378 assert parameters ['dynamicLinkDomain' ] == data ['dynamic_link_domain' ]
1379+ assert parameters ['linkDomain' ] == data ['link_domain' ]
13771380 assert parameters ['iOSBundleId' ] == data ['ios_bundle_id' ]
13781381 assert parameters ['androidPackageName' ] == data ['android_package_name' ]
13791382 assert parameters ['androidMinimumVersion' ] == data ['android_minimum_version' ]
@@ -1496,6 +1499,23 @@ def test_invalid_dynamic_link(self, user_mgt_app, func):
14961499 assert excinfo .value .http_response is not None
14971500 assert excinfo .value .cause is not None
14981501
1502+ @pytest .mark .parametrize ('func' , [
1503+ auth .generate_sign_in_with_email_link ,
1504+ auth .generate_email_verification_link ,
1505+ auth .generate_password_reset_link ,
1506+ ])
1507+ def test_invalid_hosting_link (self , user_mgt_app , func ):
1508+ resp = '{"error":{"message": "INVALID_HOSTING_LINK_DOMAIN: Because of this reason."}}'
1509+ _instrument_user_manager (user_mgt_app , 500 , resp )
1510+ with pytest .raises (auth .InvalidHostingLinkDomainError ) as excinfo :
1511+ func ('test@test.com' , MOCK_ACTION_CODE_SETTINGS , app = user_mgt_app )
1512+ assert isinstance (excinfo .value , exceptions .InvalidArgumentError )
1513+ assert str (excinfo .value ) == ('The provided hosting link domain is not configured in '
1514+ 'Firebase Hosting or is not owned by the current project '
1515+ '(INVALID_HOSTING_LINK_DOMAIN). Because of this reason.' )
1516+ assert excinfo .value .http_response is not None
1517+ assert excinfo .value .cause is not None
1518+
14991519 @pytest .mark .parametrize ('func' , [
15001520 auth .generate_sign_in_with_email_link ,
15011521 auth .generate_email_verification_link ,
@@ -1534,6 +1554,7 @@ def _validate_request(self, request, settings=None):
15341554 assert request ['continueUrl' ] == settings .url
15351555 assert request ['canHandleCodeInApp' ] == settings .handle_code_in_app
15361556 assert request ['dynamicLinkDomain' ] == settings .dynamic_link_domain
1557+ assert request ['linkDomain' ] == settings .link_domain
15371558 assert request ['iOSBundleId' ] == settings .ios_bundle_id
15381559 assert request ['androidPackageName' ] == settings .android_package_name
15391560 assert request ['androidMinimumVersion' ] == settings .android_minimum_version
0 commit comments