コード例 #1
0
        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 { });
        }
コード例 #2
0
        public void ExtendingTokenWithinLastHourExtendsUpToRenewalExpiry()
        {
            var     token1    = GetAuthorizationTokenFor(_hostName, _hostPass);
            var     parts     = token1.AccessToken.Split('.');
            var     decoded   = DecodeBase64(parts[1]);
            dynamic claims    = JsonConvert.DeserializeObject(decoded);
            string  sessionId = claims.sid;
            var     query     = "UPDATE {objectQualifier}JsonWebTokens SET RenewalExpiry=" +
                                $"'{DateTime.UtcNow.AddMinutes(30).ToString("yyyy-MM-dd HH:mm:ss")}' WHERE TokenId='{sessionId}';";

            DatabaseHelper.ExecuteNonQuery(query);
            WebApiTestHelper.ClearHostCache();

            var token2 = RenewAuthorizationToken(token1);

            parts   = token2.AccessToken.Split('.');
            decoded = DecodeBase64(parts[1]);
            claims  = JsonConvert.DeserializeObject(decoded);
            long claimExpiry   = claims.exp;
            var  expiryInToken = new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc).AddSeconds(claimExpiry);

            Assert.Less(DateTime.UtcNow, expiryInToken);
            Assert.LessOrEqual(expiryInToken, DateTime.UtcNow.AddMinutes(31)); // appears the library rounds the time

            var record        = DatabaseHelper.GetRecordById("JsonWebTokens", "TokenId", sessionId);
            var accessExpiry  = (DateTime)record["TokenExpiry"];
            var renewalExpiry = (DateTime)record["RenewalExpiry"];

            Assert.AreEqual(accessExpiry, renewalExpiry);
            Assert.Less(DateTime.UtcNow, renewalExpiry);
            Assert.LessOrEqual(renewalExpiry, DateTime.UtcNow.AddMinutes(31));
            Assert.AreEqual(accessExpiry, expiryInToken);
        }
コード例 #3
0
        public void Friend_Request_Should_Match_Target_User_Culture()
        {
            PrepareSecondLanguage();
            int    userId1, userId2, fileId1, fileId2;
            string userName1, userName2;

            CreateNewUser(out userId1, out userName1, out fileId1);
            CreateNewUser(out userId2, out userName2, out fileId2);

            UpdateUserProfile(userId1, UserProfile.USERPROFILE_PreferredLocale, FirstLanguage);
            UpdateUserProfile(userId2, UserProfile.USERPROFILE_PreferredLocale, SecondLanguage);
            WebApiTestHelper.ClearHostCache();

            var connector = WebApiTestHelper.LoginUser(userName1);

            connector.PostJson("API/MemberDirectory/MemberDirectory/AddFriend", new
            {
                friendId = userId2
            }, GetRequestHeaders());

            var notificationTitle = GetNotificationTitle(userId1);

            //the notification should use french language: testuser8836 veut être amis avec vous
            Assert.AreEqual($"{userName1} veut être amis", notificationTitle);
        }
コード例 #4
0
        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);
        }
コード例 #5
0
ファイル: DDRMenuTests.cs プロジェクト: thabaum/Dnn.Platform
        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);
        }
コード例 #6
0
        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);
        }
コード例 #7
0
ファイル: DDRMenuTests.cs プロジェクト: thabaum/Dnn.Platform
        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);
        }
コード例 #8
0
ファイル: JwtAuthTest.cs プロジェクト: Mariusz11711/DNN
        public void ValidatingFailureWhenUsingNonExistingMoniker()
        {
            // Arrange
            const string query1 =
                @"SELECT TOP(1) TabModuleId FROM {objectQualifier}TabModules
	                WHERE TabId IN (SELECT TabId FROM {objectQualifier}Tabs WHERE TabName='Activity Feed')
	                  AND ModuleTitle='Journal';"    ;
            var tabModuleId = DatabaseHelper.ExecuteScalar <int>(query1);

            Assert.Greater(tabModuleId, 0);

            // These will set a moniker for the Activity Feed module of the user profile
            DatabaseHelper.ExecuteNonQuery(@"EXEC {objectQualifier}DeleteTabModuleSetting " + tabModuleId + @", 'Moniker'");
            WebApiTestHelper.ClearHostCache();

            // Act
            var token = this.GetAuthorizationTokenFor(this._hostName, this._hostPass);

            this.SetAuthHeaderToken(token.AccessToken);
            this.SetMonikerHeader("myjournal");
            var postItem = new { ProfileId = 1, GroupId = -1, RowIndex = 0, MaxRows = 1 };
            var result   = this._httpClient.PostAsJsonAsync(
                "/API/Journal/Services/GetListForProfile", postItem).Result;
            var content = result.Content.ReadAsStringAsync().Result;

            LogText(@"content => " + content);
            Assert.AreEqual(HttpStatusCode.Unauthorized, result.StatusCode);
        }
コード例 #9
0
        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      = "",
                Tags          = "",
                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);
        }
コード例 #10
0
        // 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));
        }
コード例 #11
0
        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);
        }
コード例 #12
0
 public static void DisableAppStartDelay(bool clearCache = true)
 {
     DatabaseHelper.ExecuteStoredProcedure("UpdateHostSetting", "SchedulerdelayAtAppStart", "0", false, 1);
     if (clearCache)
     {
         WebApiTestHelper.ClearHostCache();
     }
 }
コード例 #13
0
ファイル: ImageHandlerTests.cs プロジェクト: Mariusz11711/DNN
        public void Using_Image_Handler_For_Foreign_Site_ShouldFail()
        {
            var session     = WebApiTestHelper.GetAnnonymousConnector();
            var relativeUrl = string.Format(HandlerPath, "https://google.com");

            var response = session.GetContent(relativeUrl).Content.ReadAsStringAsync().Result;

            Assert.IsTrue(response.StartsWith("�PNG\r\n"), $"Content = {response}");
        }
コード例 #14
0
ファイル: ImageHandlerTests.cs プロジェクト: Mariusz11711/DNN
        public void Using_Image_Handler_For_Main_Alias_ShouldPass()
        {
            var session     = WebApiTestHelper.GetAnnonymousConnector();
            var relativeUrl = string.Format(HandlerPath, AppConfigHelper.SiteUrl);

            var response = session.GetContent(relativeUrl).Content.ReadAsStringAsync().Result;

            Assert.IsTrue(response.StartsWith("GIF89a"), $"Content = {response}");
        }
コード例 #15
0
 public static void EnableScheduler(string schedulerName, bool clearCache = false)
 {
     var query = string.Format(
         "UPDATE {{objectQualifier}}Schedule SET Enabled=1 WHERE FriendlyName = '{0}';", schedulerName);
     DatabaseHelper.ExecuteNonQuery(query);
     if (clearCache)
     {
         WebApiTestHelper.ClearHostCache();
     }
 }
コード例 #16
0
 public static void SetSchedulingMode(SchedulingMode mode, bool clearCache = true)
 {
     var current = GetSchedulingMode();
     if (current != mode)
     {
         DatabaseHelper.ExecuteStoredProcedure("UpdateHostSetting", "SchedulerMode", mode.ToString("D"), false, 1);
         if (clearCache)
         {
             WebApiTestHelper.ClearHostCache(); // must clear the site Cache afterwards
         }
     }
 }
コード例 #17
0
        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,
            });
        }
コード例 #18
0
        /// <summary>
        /// Sets a portal setting value, adding or updating the setting as required
        /// </summary>
        /// <param name="settingName">The name of the setting</param>
        /// <param name="settingValue">The value of the setting</param>
        /// <param name="portalId">The optional PortalId, default to 0</param>
        /// <param name="isSecure">This flag specifies whether the value is encrypted or not, defaults to false.</param>
        public static void SetPortalSetting(string settingName, string settingValue, int portalId = 0, bool isSecure = false)
        {
            var query = string.Format(@"MERGE INTO {{objectQualifier}}PortalSettings s
                    USING (SELECT {2} PortalId, '{0}' SettingName, '{1}' SettingValue, {3} Sec) AS v
                    ON s.SettingName = v.SettingName
                    WHEN MATCHED THEN UPDATE SET s.SettingValue = v.SettingValue, SettingIsSecure = v.Sec
                    WHEN NOT MATCHED THEN INSERT (PortalId, SettingName, SettingValue, SettingIsSecure)
				                          VALUES (v.PortalId, v.SettingName, v.SettingValue, v.Sec);"                ,
                                      settingName, settingValue, portalId, isSecure ? "1" : "0");

            DatabaseHelper.ExecuteNonQuery(query);
            WebApiTestHelper.ClearHostCache();
        }
コード例 #19
0
        public void GetUsersAsAdminWithVariousFiltersShoudlReturnExpectedResult(string actionName, int expectedTotal, string apiMethod)
        {
            // Arrange: all is done in TestFixtureSetUp()

            // Act
            var adminConnector = WebApiTestHelper.LoginUser(this._userNames[0]);
            var response       = adminConnector.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}]");
        }
コード例 #20
0
        private static int CreateRole(string roleName, string roleDescription, int portalId = 0)
        {
            var fileContent  = SqlScripts.SingleRoleCreation;
            var masterScript = new StringBuilder(fileContent)
                               .Replace(PortalIdMarker, portalId.ToString(CultureInfo.InvariantCulture))
                               .Replace("{objectQualifier}", AppConfigHelper.ObjectQualifier)
                               .ToString();

            var script = new StringBuilder(masterScript)
                         .Replace(RoleNameMarker, roleName.Replace("'", "''"))
                         .Replace(RoleDescriptionMarker, roleDescription.Replace("'", "''"));

            DatabaseHelper.ExecuteQuery(script.ToString());
            WebApiTestHelper.ClearHostCache();
            return(GetRoleId(roleName));
        }
コード例 #21
0
        public void TryingToRenewUsingAnExpiredRenewalTokenShouldFail()
        {
            var     token1    = GetAuthorizationTokenFor(_hostName, _hostPass);
            var     parts     = token1.AccessToken.Split('.');
            var     decoded   = DecodeBase64(parts[1]);
            dynamic claims    = JsonConvert.DeserializeObject(decoded);
            string  sessionId = claims.sid;
            var     query     = "UPDATE {objectQualifier}JsonWebTokens SET RenewalExpiry=" +
                                $"'{DateTime.UtcNow.AddMinutes(-1).ToString("yyyy-MM-dd HH:mm:ss")}' WHERE TokenId='{sessionId}';";

            DatabaseHelper.ExecuteNonQuery(query);
            WebApiTestHelper.ClearHostCache();

            SetAuthHeaderToken(token1.AccessToken);
            var result = _httpClient.PostAsJsonAsync(ExtendTokenQuery, new { rtoken = token1.RenewalToken }).Result;

            Assert.AreEqual(HttpStatusCode.Unauthorized, result.StatusCode);
        }
コード例 #22
0
        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()));
        }
コード例 #23
0
        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);
        }
コード例 #24
0
ファイル: JwtAuthTest.cs プロジェクト: Mariusz11711/DNN
        public void UsingExpiredRenewalTokenShouldFail()
        {
            var     token1    = this.GetAuthorizationTokenFor(this._hostName, this._hostPass);
            var     parts     = token1.AccessToken.Split('.');
            var     decoded   = DecodeBase64(parts[1]);
            dynamic claims    = JsonConvert.DeserializeObject(decoded);
            string  sessionId = claims.sid;
            var     query     = "UPDATE {objectQualifier}JsonWebTokens SET RenewalExpiry=" +
                                $"'{DateTime.UtcNow.AddMinutes(-1).ToString("yyyy-MM-dd HH:mm:ss")}' WHERE TokenId='{sessionId}';";

            DatabaseHelper.ExecuteNonQuery(query);
            WebApiTestHelper.ClearHostCache();

            this.SetAuthHeaderToken(token1.AccessToken);
            var result  = this._httpClient.GetAsync(TestGetQuery).Result;
            var content = result.Content.ReadAsStringAsync().Result;

            LogText(@"content => " + content);
            Assert.AreEqual(HttpStatusCode.Unauthorized, result.StatusCode);
        }
コード例 #25
0
        public void File_Url_Should_Update_After_Rename_Folder()
        {
            var connector = WebApiTestHelper.LoginAdministrator();

            var folder   = CreateNewFolder(connector);
            var folderId = Convert.ToInt32(folder.FolderID);
            var filePath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "Files\\Test.png");

            connector.UploadCmsFile(filePath, folder.FolderPath.ToString());
            var fileId = GetFileId(folderId, "Test.png");

            var newFolderName = Guid.NewGuid().ToString();

            RenameFolder(connector, folderId, newFolderName);

            var getUrlApi = "API/DigitalAssets/ContentService/GetUrl";
            var fileUrl   = connector.PostJson(getUrlApi, new { fileId = fileId }, GetRequestHeaders()).Content.ReadAsStringAsync().Result;

            Assert.IsTrue(fileUrl.Contains(newFolderName));
        }
コード例 #26
0
        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}"));
        }
コード例 #27
0
ファイル: ImageHandlerTests.cs プロジェクト: Mariusz11711/DNN
        public void Using_Image_Handler_From_All_Alias_ShouldPass()
        {
            PortalAliasInfo pai;
            var             aliases = PortalAliasHelper.GetPortalAliaes().ToList();

            if (aliases.Count == 1)
            {
                var primary = aliases.First();
                pai = new PortalAliasInfo
                {
                    PortalID    = primary.PortalID,
                    HTTPAlias   = "my-" + primary.HTTPAlias,
                    CultureCode = primary.CultureCode,
                    Skin        = primary.Skin,
                    BrowserType = primary.BrowserType,
                    IsPrimary   = false,
                };
            }
            else
            {
                pai = aliases.First(a => a.PortalAliasID > 1);
            }

            var session = WebApiTestHelper.GetAnnonymousConnector();

            aliases = PortalAliasHelper.GetPortalAliaes().ToList();
            foreach (var alias in aliases)
            {
                var relativeUrl = string.Format(HandlerPath, AppConfigHelper.SiteUrl);
                var absoluteUrl = $"http://{alias.HTTPAlias}{relativeUrl}";
                LogText("Getting image from " + absoluteUrl);

                var response = session.GetContent(absoluteUrl).Content.ReadAsStringAsync().Result;
                Assert.IsTrue(response.StartsWith("GIF89a"), $"Url: {absoluteUrl} / Content = {response}");
            }
        }
コード例 #28
0
        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);
        }
コード例 #29
0
ファイル: FriendsTests.cs プロジェクト: Mariusz11711/DNN
 private IDictionary <string, string> GetRequestHeaders()
 {
     return(WebApiTestHelper.GetRequestHeaders("//ActivityFeed", "Member Directory", PortalId));
 }
コード例 #30
0
ファイル: ModuleController.cs プロジェクト: Mariusz11711/DNN
 /// <summary>
 /// Deletes a module from the specified tab and clears host cache.
 /// </summary>
 /// <param name="tabId">tabId on which module is deleted.</param>
 /// <param name="moduleId">moduleId that is deleted.</param>
 /// <param name="softDelete">if True, then softdeleted, otherwise harddeleted.</param>
 public static void DeleteTabModule(int tabId, int moduleId, bool softDelete)
 {
     DatabaseHelper.ExecuteStoredProcedure("DeleteTabModule", tabId, moduleId, softDelete);
     WebApiTestHelper.ClearHostCache();
 }