@@ -67,5 +67,43 @@ public void CreateTokenValidationParameters_HasExpectedAudience(bool isPlacehold
6767 }
6868 }
6969 }
70+
71+ [ Theory ]
72+ [ InlineData ( "testsite" , "testsite" ) ]
73+ [ InlineData ( "testsite" , "testsite__5bb5" ) ]
74+ [ InlineData ( "testsite" , null ) ]
75+ [ InlineData ( "testsite" , "" ) ]
76+ public void CreateTokenValidationParameters_NonProductionSlot_HasExpectedAudiences ( string siteName , string runtimeSiteName )
77+ {
78+ string azFuncAudience = string . Format ( ScriptConstants . SiteAzureFunctionsUriFormat , siteName ) ;
79+ string siteAudience = string . Format ( ScriptConstants . SiteUriFormat , siteName ) ;
80+ string runtimeSiteAudience = string . Format ( ScriptConstants . SiteUriFormat , runtimeSiteName ) ;
81+
82+ var testEnv = new Dictionary < string , string > ( StringComparer . OrdinalIgnoreCase )
83+ {
84+ { EnvironmentSettingNames . AzureWebsiteName , siteName } ,
85+ { EnvironmentSettingNames . AzureWebsiteRuntimeSiteName , runtimeSiteName } ,
86+ { ContainerEncryptionKey , Convert . ToBase64String ( TestHelpers . GenerateKeyBytes ( ) ) }
87+ } ;
88+
89+ using ( new TestScopedSettings ( ScriptSettingsManager . Instance , testEnv ) )
90+ {
91+ var tokenValidationParameters = ScriptJwtBearerExtensions . CreateTokenValidationParameters ( ) ;
92+ var audiences = tokenValidationParameters . ValidAudiences . ToArray ( ) ;
93+
94+ Assert . Equal ( audiences [ 0 ] , azFuncAudience ) ;
95+ Assert . Equal ( audiences [ 1 ] , siteAudience ) ;
96+
97+ if ( string . Compare ( siteName , runtimeSiteName , StringComparison . OrdinalIgnoreCase ) == 0 )
98+ {
99+ Assert . Equal ( 2 , audiences . Length ) ;
100+ }
101+ else if ( ! string . IsNullOrEmpty ( runtimeSiteName ) )
102+ {
103+ Assert . Equal ( 3 , audiences . Length ) ;
104+ Assert . Equal ( audiences [ 2 ] , runtimeSiteAudience ) ;
105+ }
106+ }
107+ }
70108 }
71109}
0 commit comments