@@ -67,5 +67,43 @@ public void CreateTokenValidationParameters_HasExpectedAudience(bool isPlacehold
67
67
}
68
68
}
69
69
}
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
+ }
70
108
}
71
109
}
0 commit comments