public void GetUrl_GeneratesIdentifiableSystemSecret() { string secretValue = string.Empty; var webHookProvider = CreateDefaultScriptWebHookProvider(out Mock <ISecretManager> mockSecretManager, out HostSecretsInfo hostSecrets); mockSecretManager.Setup(p => p.GetHostSecretsAsync()).ReturnsAsync(hostSecrets); mockSecretManager.Setup(p => p.AddOrUpdateFunctionSecretAsync( "testextension_extension", It.IsAny <string>(), HostKeyScopes.SystemKeys, ScriptSecretsType.Host)) .Callback <string, string, string, ScriptSecretsType>((key, secret, scope, type) => secretValue = secret) .Returns(() => Task.FromResult(new KeyOperationResult(secretValue, OperationResult.Created))); // When an extension has no existing secret, one should be generated using // the Azure Functions system key seed and standard fixed signature. var configProvider = new TestExtensionConfigProvider(); var url = webHookProvider.GetUrl(configProvider); Assert.Equal($"{TestUrlRoot}{secretValue}", url.ToString()); Assert.True(IdentifiableSecrets.ValidateBase64Key(secretValue, SecretGenerator.SystemKeySeed, SecretGenerator.AzureFunctionsSignature, encodeForUrl: true)); }
public void GetUrl_ReturnsExpectedResult() { _hostSecrets.SystemKeys = new Dictionary <string, string> { { "testextension_extension", "abc123" } }; var configProvider = new TestExtensionConfigProvider(); var url = _webHookProvider.GetUrl(configProvider); Assert.Equal("https://test.azurewebsites.net/runtime/webhooks/testextension?code=abc123", url.ToString()); }
public void GetUrl_ReturnsExpectedResult() { var webHookProvider = CreateDefaultScriptWebHookProvider(out Mock <ISecretManager> mockSecretManager, out HostSecretsInfo hostSecrets); mockSecretManager.Setup(p => p.GetHostSecretsAsync()).ReturnsAsync(hostSecrets); // When an extension has an existing secret, it should be returned. hostSecrets.SystemKeys = new Dictionary <string, string> { { "testextension_extension", "abc123" } }; var configProvider = new TestExtensionConfigProvider(); var url = webHookProvider.GetUrl(configProvider); Assert.Equal($"{TestUrlRoot}abc123", url.ToString()); }
public void GetUrl_ReturnsExpectedResult() { _hostSecrets.SystemKeys = new Dictionary <string, string> { { "testextension_extension", "abc123" } }; var vars = new Dictionary <string, string> { { EnvironmentSettingNames.AzureWebsiteHostName, "test.azurewebsites.net" } }; using (var env = new TestScopedEnvironmentVariable(vars)) { var configProvider = new TestExtensionConfigProvider(); var url = _webHookProvider.GetUrl(configProvider); Assert.Equal("https://test.azurewebsites.net/runtime/webhooks/testextension?code=abc123", url.ToString()); } }