// trigger the scheduler to run through [Run Now] button of the UI private static HttpWebResponse TriggerScheduler(IDictionary <string, object> scheduleInfo, int moduleId) { var scheduleId = (int)scheduleInfo["ScheduleId"]; var scheduleTypeName = (string)scheduleInfo["TypeFullName"]; var scheduleFriendlyName = (string)scheduleInfo["FriendlyName"]; var objectDependencies = (string)scheduleInfo["ObjectDependencies"]; var fieldsPrefix = string.Format("dnn$ctr{0}$EditSchedule", moduleId); var postData = new Dictionary <string, object> { { fieldsPrefix + "$chkEnabled", "on" }, { fieldsPrefix + "$txtServers", "" }, { fieldsPrefix + "$ddlAttachToEvent", "None" }, { fieldsPrefix + "$ddlRetainHistoryNum", "100" }, { fieldsPrefix + "$ddlRetryTimeLapseMeasurement", "Minutes" }, { fieldsPrefix + "$ddlTimeLapseMeasurement", "Hours" }, { fieldsPrefix + "$startScheduleDatePicker$dateInput", "" }, { fieldsPrefix + "$startScheduleDatePicker", "" }, { fieldsPrefix + "$txtFriendlyName", scheduleFriendlyName }, { fieldsPrefix + "$txtObjectDependencies", objectDependencies }, { fieldsPrefix + "$txtRetryTimeLapse", "30" }, { fieldsPrefix + "$txtTimeLapse", "1" }, { fieldsPrefix + "$txtType", scheduleTypeName }, { "__EVENTTARGET", fieldsPrefix + "$cmdRun" }, // button action; if missing, no click action is performed { "__EVENTARGUMENT", "" }, { "__ASYNCPOST", "" }, // all other inputs/fields are left as is }; var relativeUrl = string.Format( "/Host/Schedule/ctl/Edit/mid/{0}/ScheduleId/{1}/portalid/{2}", moduleId, scheduleId, DnnDataHelper.PortalId); return(WebApiTestHelper.LoginHost().PostUserForm(relativeUrl, postData, null)); }
public void Add_Multi_Pages_For_Exisitng_Shoul_Return_Results() { var rnd = new Random().Next(1000, 10000); var addPagesDto = new BulkPage { BulkPages = "Page_" + rnd, ParentId = -1, Keywords = string.Empty, Tags = string.Empty, IncludeInMenu = true, StartDate = null, EndDate = null, }; Console.WriteLine(@"Add bulk pages request = {0}", JsonConvert.SerializeObject(addPagesDto)); var connector = WebApiTestHelper.LoginHost(); var response = connector.PostJson(AddBulkPagesApi, addPagesDto).Content.ReadAsStringAsync().Result; var result = JsonConvert.DeserializeObject <BulkPageResponseWrapper>(response); Console.WriteLine(@"Add bulk pages ersponse = {0}", response); Assert.AreEqual(0, result.Status); Assert.IsNull(result.Response.Pages.First().ErrorMessage); var response2 = connector.PostJson(VerigyBulkPagesApi, addPagesDto).Content.ReadAsStringAsync().Result; var result2 = JsonConvert.DeserializeObject <BulkPageResponseWrapper>(response2); Console.WriteLine(@"Verify bulk pages ersponse = {0}", response2); Assert.AreEqual(0, int.Parse(result2.Status.ToString())); Assert.IsNotNullOrEmpty(result2.Response.Pages.First().ErrorMessage); }
private IWebApiConnector CreateNewPage(int templateTabId, out int tabId) { var pagesExecuter = new PagesExecuter { Connector = WebApiTestHelper.LoginHost() }; var pageSettingsBuilder = new PageSettingsBuilder(); pageSettingsBuilder.WithPermission(new TabPermissionsBuilder().Build()); if (templateTabId > 0) { pageSettingsBuilder.WithTemplateTabId(templateTabId); var modules = DatabaseHelper.ExecuteQuery <CopyModuleItem>($"SELECT ModuleId, ModuleTitle FROM {{objectQualifier}}TabModules WHERE TabId = {templateTabId}"); pageSettingsBuilder.WithCopyModules(modules.ToList()); } var pageDetail = pagesExecuter.SavePageDetails(pageSettingsBuilder.Build()); Assert.NotNull(pageDetail.Page, "The system must create the page and return its details in the response"); tabId = (int)pageDetail.Page.id; return(pagesExecuter.Connector); }
private static IWebApiConnector PrepareTest(out bool isEnglishEnabled, out dynamic languageSettings) { var connector = WebApiTestHelper.LoginHost(); var response = connector.GetContent(GetLanguagesApi).Content.ReadAsStringAsync().Result; var result = JsonConvert.DeserializeObject <dynamic>(response); isEnglishEnabled = result.Languages[0].Enabled; response = connector.GetContent(GetLanguageSettingsApi).Content.ReadAsStringAsync().Result; result = JsonConvert.DeserializeObject <dynamic>(response); languageSettings = result.Settings; if (string.Compare(languageSettings.SiteDefaultLanguage.Value, EnglishLanguageCode, StringComparison.InvariantCultureIgnoreCase) == 0) { connector.PostJson(AddLanguageApi, new { Code = SpainishLanguageCode }); UpdateLanguageSettings(connector, languageSettings, SpainishLanguageCode); } if (isEnglishEnabled) { EnableEnglish(connector, false); } return(connector); }
private void UpdateContentLocalization(bool enabled) { var connector = WebApiTestHelper.LoginHost(); var postData = new { PortalId = this.PortalId, ContentLocalizationEnabled = false, SystemDefaultLanguage = "English (United States)", SystemDefaultLanguageIcon = "/images/Flags/en-US.gif", SiteDefaultLanguage = "en-US", LanguageDisplayMode = "NATIVE", EnableUrlLanguage = true, EnableBrowserLanguage = true, AllowUserUICulture = false, CultureCode = "en-US", AllowContentLocalization = enabled, }; connector.PostJson("API/PersonaBar/SiteSettings/UpdateLanguageSettings", postData); connector.PostJson( enabled ? $"API/PersonaBar/Languages/EnableLocalizedContent?portalId={this.PortalId}&translatePages=false" : $"API/PersonaBar/Languages/DisableLocalizedContent?portalId={this.PortalId}", new { }); }
public void Using_Logged_Out_Cookie_Should_Be_Unauthorized() { var session = WebApiTestHelper.LoginHost(); Assert.IsTrue(session.IsLoggedIn); // clone the cookies as after closing they will be removed from the container var cookies = new CookieContainer(); cookies.Add(session.SessionCookies.GetCookies(session.Domain)); // make sure the request succeeds when the user is logged in //var result1 = session.GetContent(GetPortaslApi, null, false); -- use same method to validate var result1 = SendDirectGetRequest(session.Domain, GetPortaslApi, session.Timeout, cookies); Assert.IsTrue(result1.IsSuccessStatusCode); Assert.AreEqual(HttpStatusCode.OK, result1.StatusCode); session.Logout(); Assert.IsFalse(session.IsLoggedIn); // make sure the request fails when using the same cookies before logging out var result2 = SendDirectGetRequest(session.Domain, GetPortaslApi, session.Timeout, cookies); Assert.IsFalse(result2.IsSuccessStatusCode); Assert.AreEqual(HttpStatusCode.Unauthorized, result2.StatusCode); }
private bool LanguageEnabled(int portalId, string secondLanguage) { var portalLanguages = CBO.FillDictionary <string, Locale>("CultureCode", DataProvider.Instance().GetLanguagesByPortal(portalId)); if (!portalLanguages.ContainsKey(secondLanguage)) { var connector = WebApiTestHelper.LoginHost(); connector.PostJson($"API/PersonaBar/Extensions/ParseLanguagePackage?cultureCode={secondLanguage}", new { }); connector.PostJson($"API/PersonaBar/Extensions/InstallAvailablePackage", new { PackageType = "CoreLanguagePack", FileName = "installlanguage.resources", }); var language = CBO.FillDictionary <string, Locale>("CultureCode", DataProvider.Instance().GetLanguages())[secondLanguage]; connector.PostJson("API/PersonaBar/SiteSettings/UpdateLanguage", new { PortalId = PortalId, LanguageId = language.LanguageId, Code = language.Code, Enabled = true, IsDefault = false, Roles = "Administrators", }); } return(false); }
private IWebApiConnector AddModuleToPage(int tabId, string moduleName, out int moduleId) { var connector = WebApiTestHelper.LoginHost(); var desktopModuleId = DatabaseHelper.ExecuteScalar <int>($"SELECT DesktopModuleId FROM {{objectQualifier}}DesktopModules WHERE ModuleName = '{moduleName}'"); var postData = new { Visibility = 0, Position = -1, Module = desktopModuleId, Pane = "ContentPane", AddExistingModule = false, CopyModule = false, Sort = -1 }; var headers = new Dictionary <string, string> { { "TabId", tabId.ToString() } }; var response = connector.PostJson("API/internalservices/controlbar/AddModule", postData, headers) .Content.ReadAsStringAsync().Result; moduleId = Json.Deserialize <dynamic>(response).TabModuleID; return(connector); }
public void Journal_Should_Only_Able_See_By_Himself_When_Set_Security_To_Private() { int userId, fileId; string username; var connector = this.PrepareNewUser(out userId, out username, out fileId); // POST JOURNAL var journalText = $"{username} Post"; var postData = new { text = journalText, profileId = userId, groupId = -1, journalType = "file", securitySet = "P", itemData = $"{{\"ImageUrl\":\"\",\"Url\":\"fileid={fileId}\"}}", }; connector.PostJson("/API/Journal/Services/Create", postData, this.GetRequestHeaders()); var response = connector.GetContent($"/Activity-Feed/userId/{userId}").Content.ReadAsStringAsync().Result; Assert.Greater(response.IndexOf(journalText), 0); var hostConnector = WebApiTestHelper.LoginHost(); response = hostConnector.GetContent($"/Activity-Feed/userId/{userId}").Content.ReadAsStringAsync().Result; Assert.AreEqual(response.IndexOf(journalText), -1); }
private void UpdateSslSettings(bool sslEnabled) { var connector = WebApiTestHelper.LoginHost(); var postData = new { SSLEnabled = sslEnabled, SSLEnforced = false, SSLURL = string.Empty, STDURL = string.Empty, SSLOffloadHeader = string.Empty }; connector.PostJson("API/PersonaBar/Security/UpdateSslSettings", postData); }
private void AddUserToGroup(int groupId, int userId) { var connector = WebApiTestHelper.LoginHost(); var url = "/API/PersonaBar/Roles/AddUserToRole?notifyUser=true&isOwner=false"; connector.PostJson(url, new { userId = userId, roleId = groupId, isAdd = true, }); }
public void GetUsersAsHostWithVariousFiltersShoudlReturnExpectedResult(string actionName, int expectedTotal, string apiMethod) { // Arrange: all is done in TestFixtureSetUp() // Act var hostConnector = WebApiTestHelper.LoginHost(); var response = hostConnector.GetContent(apiMethod, null).Content.ReadAsStringAsync().Result; var result = JsonConvert.DeserializeObject <dynamic>(response); // Assert var totalResults = int.Parse(result.TotalResults.ToString()); Assert.AreEqual(expectedTotal, totalResults, $"Total results {totalResults} is incorrect for action [{actionName}]"); }
public override void TestFixtureSetUp() { // clear all existing users except the HOST superuser DatabaseHelper.ExecuteNonQuery("DELETE FROM {objectQualifier}UserRelationships"); DatabaseHelper.ExecuteNonQuery("DELETE FROM {objectQualifier}UserPortals"); DatabaseHelper.ExecuteNonQuery("DELETE FROM {objectQualifier}Users WHERE UserID > 1"); // create MaxUsers new users for (var i = 0; i < MaxUsers; i++) { int userId, fileId; string userName; WebApiTestHelper.PrepareNewUser(out userId, out userName, out fileId); this._userIds[i] = userId; this._userNames[i] = userName; Console.WriteLine(@"Created test users => id: {0}, username: {1}", userId, userName); } var hostConnector = WebApiTestHelper.LoginHost(); var userIdx = 0; // make first user as admin var makeAdminItem = new { RoleId = 0, UserId = this._userIds[userIdx] }; var response = hostConnector.PostJson(MakeAdminApi, makeAdminItem).Content.ReadAsStringAsync().Result; var result = JsonConvert.DeserializeObject <dynamic>(response); Assert.AreEqual(this._userNames[userIdx], result.displayName.ToString()); // Unauthorize the next 2 new users for (userIdx = 1; userIdx <= 2; userIdx++) { var unauthorizeLink = string.Format(UnauthorizeApi, this._userIds[userIdx]); response = hostConnector.PostJson(unauthorizeLink, string.Empty).Content.ReadAsStringAsync().Result; result = JsonConvert.DeserializeObject <dynamic>(response); Assert.IsTrue(bool.Parse(result.Success.ToString())); } // soft delete the next new user var deleteLink = string.Format(DeleteApi, this._userIds[userIdx]); response = hostConnector.PostJson(deleteLink, string.Empty).Content.ReadAsStringAsync().Result; result = JsonConvert.DeserializeObject <dynamic>(response); Assert.IsTrue(bool.Parse(result.Success.ToString())); }
private IWebApiConnector CreateNewSecurePage(out int tabId) { var pagesExecuter = new PagesExecuter { Connector = WebApiTestHelper.LoginHost() }; var pageSettingsBuilder = new PageSettingsBuilder(); pageSettingsBuilder.WithPermission(new TabPermissionsBuilder().Build()); pageSettingsBuilder.WithSecure(true); var pageDetail = pagesExecuter.SavePageDetails(pageSettingsBuilder.Build()); Assert.NotNull(pageDetail.Page, "The system must create the page and return its details in the response"); tabId = (int)pageDetail.Page.id; return(pagesExecuter.Connector); }
private int CreateNewGroup(string roleName) { var connector = WebApiTestHelper.LoginHost(); var url = "/API/PersonaBar/Roles/SaveRole?assignExistUsers=false"; connector.PostJson(url, new { id = -1, name = roleName, groupId = -1, description = roleName, securityMode = 1, status = 1, isPublic = true, autoAssign = false, isSystem = false, }); return(DatabaseHelper.ExecuteScalar <int>($"SELECT RoleId FROM {{objectQualifier}}Roles WHERE RoleName = '{roleName}' AND PortalId = {this.PortalId}")); }