public async Task PathMustBeAllowed() { RequireCcsTestInfrastructure(); const string path = @"C:\Not\Allowed\Path"; Assert.True(Disable()); CcsUser user = await CcsUser.Get(); dynamic ccsInfo = new { path = path, identity = new { username = user.Username, password = user.Password }, private_key_password = PVK_PASS }; using (var client = ApiHttpClient.Create()) { JObject webserver = client.Get($"{Configuration.Instance().TEST_SERVER_URL}/api/webserver/"); string ccsLink = Utils.GetLink(webserver, "central_certificates"); HttpResponseMessage res = client.PostRaw(ccsLink, (object)ccsInfo); Assert.True((int)res.StatusCode == 403); } }
public async Task CanEnable() { RequireCcsTestInfrastructure(); CcsUser user = await CcsUser.Get(); Assert.True(Disable()); Assert.True(Enable(FOLDER_PATH, user.Username, user.Password, PVK_PASS)); }
public async Task CanCreateCcsBinding() { RequireCcsTestInfrastructure(); CcsUser user = await CcsUser.Get(); Assert.True(Enable(FOLDER_PATH, user.Username, user.Password, PVK_PASS)); JObject site; const string siteName = "CcsBindingTestSite"; using (var client = ApiHttpClient.Create()) { Sites.EnsureNoSite(client, siteName); site = Sites.CreateSite(_output, client, siteName, Utils.GetAvailablePort(), Sites.TEST_SITE_PATH); Assert.NotNull(site); try { JObject cert = GetCertificates().FirstOrDefault(c => { return(c.Value <string>("alias").Equals(CERT_NAME + ".pfx") && c.Value <JObject>("store").Value <string>("name").Equals(NAME, StringComparison.OrdinalIgnoreCase)); }); Assert.NotNull(cert); site["bindings"] = JToken.FromObject(new object[] { new { port = 443, protocol = "https", ip_address = "*", hostname = CERT_NAME, certificate = cert, require_sni = true } }); site = client.Patch(Utils.Self(site), site); Assert.NotNull(site); string index = Path.Combine(site.Value <string>("physical_path"), "index.html"); if (!File.Exists(index)) { File.WriteAllText(index, $"<h1>{siteName}</h1>"); } site = client.Get(Utils.Self(site)); JObject binding = site["bindings"].ToObject <IEnumerable <JObject> >().First(); Assert.NotNull(binding["certificate"]); Assert.True(binding.Value <bool>("require_sni")); JObject certificate = client.Get(Utils.Self(binding.Value <JObject>("certificate"))); Assert.NotNull(certificate); Assert.True(certificate["store"].Value <string>("name").Equals(NAME)); } finally { Sites.EnsureNoSite(client, siteName); } } }
public static async Task <CcsUser> Get() { var user = new CcsUser(); user.Username = CentralCertificates.CcsTestUsername; user.Password = Guid.NewGuid().ToString(); await CreateLocalUser(user.Username, user.Password); return(user); }
public async Task CcsCertificatesShown() { RequireCcsTestInfrastructure(); CcsUser user = await CcsUser.Get(); Assert.True(Enable(FOLDER_PATH, user.Username, user.Password, PVK_PASS)); Assert.True(GetCertificates().Any(cert => { return(cert.Value <string>("alias").Equals(CERT_NAME + ".pfx") && cert.Value <JObject>("store").Value <string>("name").Equals(NAME, StringComparison.OrdinalIgnoreCase)); })); }
public async Task DynamicallyAddsToStores() { RequireCcsTestInfrastructure(); CcsUser user = await CcsUser.Get(); Assert.True(Disable()); Assert.False(GetStores().Any(store => store.Value <string>("name").Equals(NAME, StringComparison.OrdinalIgnoreCase))); Assert.True(Enable(FOLDER_PATH, user.Username, user.Password, PVK_PASS)); Assert.True(GetStores().Any(store => store.Value <string>("name").Equals(NAME, StringComparison.OrdinalIgnoreCase))); Assert.True(Disable()); Assert.False(GetStores().Any(store => store.Value <string>("name").Equals(NAME, StringComparison.OrdinalIgnoreCase))); }