コード例 #1
0
        private async Task <ScItemsResponse> GetItemByIdWithItemSource(ItemSource itemSource)
        {
            var session = SitecoreSSCSessionBuilder.AuthenticatedSessionWithHost(testData.InstanceUrl)
                          .Credentials(testData.Users.Admin)
                          .DefaultLanguage(itemSource.Language)
                          .DefaultDatabase(itemSource.Database)
                          .BuildReadonlySession();

            IReadItemsByIdRequest request = null;

            if (null == itemSource.VersionNumber)
            {
                request = this.requestWithItemId;
            }
            else
            {
                request = ItemSSCRequestBuilder.ReadItemsRequestWithId(testData.Items.ItemWithVersions.Id)
                          .Version(itemSource.VersionNumber.Value)
                          .Build();
            }

            var response = await session.ReadItemAsync(request);

            return(response);
        }
コード例 #2
0
        private async Task <ISitecoreItem> CreateItem(string database, string itemName, ISitecoreItem parentItem = null)
        {
            using (var session = SitecoreSSCSessionBuilder.AuthenticatedSessionWithHost(testData.InstanceUrl)
                                 .Credentials(testData.Users.Admin)
                                 .DefaultDatabase("master")
                                 .BuildSession())
            {
                string parentPath = (parentItem == null) ? this.testData.Items.CreateItemsHere.Path : parentItem.Path;

                var request = ItemSSCRequestBuilder.CreateItemRequestWithParentPath(parentPath)
                              .ItemTemplateId(testData.Items.Home.TemplateId)
                              .ItemName(itemName)
                              .Database(database)
                              .Build();

                var createResponse = await session.CreateItemAsync(request);

                Assert.IsTrue(createResponse.Created);

                var readRequest = ItemSSCRequestBuilder.ReadItemsRequestWithPath(parentPath + "/" + itemName)
                                  .Database(database)
                                  .Build();

                var readResponse = await session.ReadItemAsync(readRequest);

                return(readResponse[0]);
            }
        }
コード例 #3
0
        public async void TestWithHttpsInUrlById()
        {
            //      var url = "https://sc81151003sec.test24dk1.dk.sitecore.net";
            var url = this.testData.InstanceUrl;

            // @adk : inlined due to
            //
            // Failed UrlAutocompleteTest.TestWithHttpsInUrlById
            //
            // MESSAGE:
            // System.Threading.Tasks.TaskCanceledException : A task was canceled.
            // +++++++++++++++++++
            // STACK TRACE:
            //    at Microsoft.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
            //    at Microsoft.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccess(Task task)
            //    at Sitecore.MobileSDK.ScApiSession.<ReadItemAsync>d__a.MoveNext() in c:\dev\Jenkins\jobs\XamarinSDK-FullBuild\workspace\lib\SitecoreMobileSDK-PCL\ScApiSession.cs:line 215
            using
            (
                var session =
                    SitecoreSSCSessionBuilder.AuthenticatedSessionWithHost(url)
                    .Credentials(this.testData.Users.Admin)
                    .BuildReadonlySession()
            )
            {
                var requestWithItemId = ItemSSCRequestBuilder.ReadItemsRequestWithId(this.testData.Items.Home.Id).Build();
                var response          = await session.ReadItemAsync(requestWithItemId);

                testData.AssertItemsCount(1, response);
                testData.AssertItemsAreEqual(testData.Items.Home, response[0]);
            }
        }
コード例 #4
0
        private async void GetSitecoreContent()
        {
            string instanceUrl = "https://xp930.sc";

            using (var credentials = new ScUnsecuredCredentialsProvider("admin", "b", "sitecore"))

                using (var session =
                           SitecoreSSCSessionBuilder.AuthenticatedSessionWithHost(instanceUrl)
                           .Credentials(credentials)
                           .DefaultDatabase("master")
                           .DefaultLanguage("en")
                           .MediaLibraryRoot("/sitecore/media library")
                           .MediaPrefix("~/media/")
                           .DefaultMediaResourceExtension("ashx")
                           .BuildReadonlySession())
                {
                    var             request = ItemSSCRequestBuilder.ReadItemsRequestWithPath("/sitecore/content/home").Build();
                    ScItemsResponse items   = await session.ReadItemAsync(request);

                    string fieldContent = items[0]["Text"].RawValue;
                    string itemName     = "Home Item Text";

                    var dialogBuilder = new AlertDialog.Builder(this);
                    dialogBuilder.SetTitle(itemName);
                    dialogBuilder.SetMessage(fieldContent);
                    dialogBuilder.Create().Show();
                }
        }
コード例 #5
0
        private ISitecoreSSCSession CreateSession()
        {
            var result = SitecoreSSCSessionBuilder.AnonymousSessionWithHost("http://cms82u1.test24dk1.dk.sitecore.net")
                         .BuildSession();

            return(result);
        }
コード例 #6
0
        public void TestGetPublicKeyWithNotExistentUrl()
        {
            using
            (
                var session = SitecoreSSCSessionBuilder.AuthenticatedSessionWithHost("http://mobilesdk-notexistent.com")
                              .Credentials(testData.Users.Admin)
                              .BuildReadonlySession()
            )
            {
                TestDelegate testCode = async() =>
                {
                    await session.AuthenticateAsync();
                };
                Exception exception = Assert.Throws <RsaHandshakeException>(testCode);
                Assert.True(exception.Message.Contains("ASPXAUTH not received properly"));


                // TODO : create platform specific files for this test case
                // Windows : System.Net.Http.HttpRequestException
                // iOS : System.Net.WebException

                //Assert.AreEqual("System.Net.Http.HttpRequestException", exception.InnerException.GetType().ToString());
                bool testCorrect = exception.InnerException.GetType().ToString().Equals("System.Net.Http.HttpRequestException");
                testCorrect = testCorrect || exception.InnerException.GetType().ToString().Equals("System.Net.WebException");
                Assert.IsTrue(testCorrect, "exception.InnerException is wrong");

                bool messageCorrect = exception.InnerException.Message.Contains("An error occurred while sending the request");
                messageCorrect = messageCorrect || exception.InnerException.Message.Contains("NameResolutionFailure");
                Assert.IsTrue(messageCorrect, "exception message is not correct");
            }
        }
コード例 #7
0
        public async void TestOverrideVersionAndDbInRequestById()
        {
            const string Db       = "master";
            const string Language = "en";
            const int    Version  = 2;
            var          source   = new ItemSource("web", Language, 1);

            var session = SitecoreSSCSessionBuilder.AuthenticatedSessionWithHost(testData.InstanceUrl)
                          .Credentials(testData.Users.Admin)
                          .DefaultDatabase(source.Database)
                          .DefaultLanguage(source.Language)
                          .BuildReadonlySession();

            var request = ItemSSCRequestBuilder.ReadItemsRequestWithId(testData.Items.ItemWithVersions.Id)
                          .Version(Version)
                          .Database(Db)
                          .Build();
            var response = await session.ReadItemAsync(request);

            testData.AssertItemsCount(1, response);
            var resultItem = response[0];

            testData.AssertItemsAreEqual(testData.Items.ItemWithVersions, resultItem);
            var sourceExpected = new ItemSource(Db, Language, Version);

            testData.AssertItemSourcesAreEqual(sourceExpected, resultItem.Source);
            Assert.AreEqual("English version 2 master", resultItem["Title"].RawValue);
        }
コード例 #8
0
 private ISitecoreSSCSession CreateSession()
 {
     return(SitecoreSSCSessionBuilder.AuthenticatedSessionWithHost(testData.InstanceUrl)
            .Credentials(testData.Users.Admin)
            .DefaultDatabase("master")
            .BuildSession());
 }
コード例 #9
0
        public void TestBuildSessionWithEmptyUrlReturnsException()
        {
            var exception = Assert.Throws <ArgumentException>(() => SitecoreSSCSessionBuilder.AuthenticatedSessionWithHost("")
                                                              .Credentials(new SSCCredentialsPOD("Username", "Password", "sitecore"))
                                                              );

            Assert.AreEqual("SessionBuilder.InstanceUrl : The input cannot be empty.", exception.Message);
        }
コード例 #10
0
        public void TestBuildSessionWithNullUrlReturnsException()
        {
            var exception = Assert.Throws <ArgumentNullException>(() => SitecoreSSCSessionBuilder.AuthenticatedSessionWithHost(null)
                                                                  .Credentials(new SSCCredentialsPOD("Username", "Password", "sitecore"))
                                                                  );

            Assert.IsTrue(exception.Message.Contains("SessionBuilder.InstanceUrl"));
        }
コード例 #11
0
        private ISitecoreSSCSession CreateSession()
        {
            var result = SitecoreSSCSessionBuilder.AuthenticatedSessionWithHost(testData.InstanceUrl)
                         .Credentials(testData.Users.Admin)
                         .BuildSession();

            return(result);
        }
コード例 #12
0
 public void Setup()
 {
     testData = TestEnvironment.DefaultTestEnvironment();
     this.sessionAuthenticatedUser =
         SitecoreSSCSessionBuilder.AuthenticatedSessionWithHost(this.testData.InstanceUrl)
         .Credentials(this.testData.Users.Admin)
         .BuildReadonlySession();
 }
コード例 #13
0
        public ISitecoreSSCSession GetAnonymousSession()
        {
            var result = SitecoreSSCSessionBuilder.AnonymousSessionWithHost(this.instanceUrl)
                         .DefaultDatabase(this.instanceDataBase)
                         .DefaultLanguage(this.instanceLanguage)
                         .BuildSession();

            return(result);
        }
コード例 #14
0
        private ISitecoreSSCReadonlySession CreateCreatorexSession()
        {
            var session =
                SitecoreSSCSessionBuilder.AuthenticatedSessionWithHost(testData.InstanceUrl)
                .Credentials(this.testData.Users.Creatorex)
                .DefaultDatabase("web")
                .DefaultLanguage("en")
                .BuildReadonlySession();

            return(session);
        }
コード例 #15
0
 public void TestSiteDoNotThrowsExceptionForNullInput()
 {
     using
     (
         var session = SitecoreSSCSessionBuilder.AuthenticatedSessionWithHost("sitecore.net")
                       .Credentials(this.adminCredentials)
                       .BuildSession()
     )
     {
         Assert.IsNotNull(session);
     }
 }
コード例 #16
0
        public void Setup()
        {
            using (new FunctionTracer("CancelOperationsTest->setup()", DebugWriteLineBlock))
            {
                this.testData = TestEnvironment.DefaultTestEnvironment();

                this.session =
                    SitecoreSSCSessionBuilder.AuthenticatedSessionWithHost(this.testData.InstanceUrl)
                    .Credentials(this.testData.Users.Admin)
                    .BuildReadonlySession();
            }
        }
コード例 #17
0
        public async void TestGetAuthenticationWithNotExistentUsername()
        {
            using
            (
                var session = SitecoreSSCSessionBuilder.AuthenticatedSessionWithHost(testData.InstanceUrl)
                              .Credentials(testData.Users.NotExistent)
                              .BuildReadonlySession()
            ) {
                var response = await session.AuthenticateAsync();

                Assert.False(response.IsSuccessful);
            }
        }
コード例 #18
0
 public void TestMediaExtDonotThrowsExceptionForNullInput()
 {
     using
     (
         var session = SitecoreSSCSessionBuilder.AuthenticatedSessionWithHost("sitecore.net")
                       .Credentials(this.adminCredentials)
                       .DefaultMediaResourceExtension(null)
                       .BuildSession()
     )
     {
         Assert.IsNotNull(session);
     }
 }
コード例 #19
0
        public void TestSSCVersionThrowsExceptionForNullInput()
        {
            Assert.Throws <ArgumentNullException>(() =>
                                                  SitecoreSSCSessionBuilder.AuthenticatedSessionWithHost("sitecore.net")
                                                  .Credentials(this.adminCredentials)
                                                  .SSCVersion(null)
                                                  );

            Assert.Throws <ArgumentNullException>(() =>
                                                  SitecoreSSCSessionBuilder.AnonymousSessionWithHost("sitecore.net")
                                                  .SSCVersion(null)
                                                  );
        }
コード例 #20
0
        public void Setup()
        {
            this.testData = TestEnvironment.DefaultTestEnvironment();

            this.sessionAuthenticatedUser =
                SitecoreSSCSessionBuilder.AuthenticatedSessionWithHost(testData.InstanceUrl)
                .Credentials(testData.Users.Admin)
                .DefaultDatabase("web")
                .DefaultLanguage("en")
                .BuildReadonlySession();

            this.requestWithItemId = ItemSSCRequestBuilder.ReadItemsRequestWithId(testData.Items.ItemWithVersions.Id)
                                     .Build();
        }
コード例 #21
0
        public async void TestGetAuthenticationAsUserInSitecoreDomainToWebsite()
        {
            using
            (
                var session = SitecoreSSCSessionBuilder.AuthenticatedSessionWithHost(testData.InstanceUrl)
                              .Credentials(testData.Users.SitecoreCreator)
                              .BuildReadonlySession()
            )
            {
                var response = await session.AuthenticateAsync();

                Assert.True(response.IsSuccessful);
            }
        }
コード例 #22
0
        public async void TestGetAuthenticationWithInvalidUsername()
        {
            using
            (
                var session = SitecoreSSCSessionBuilder.AuthenticatedSessionWithHost(testData.InstanceUrl)
                              .Credentials(new SSCCredentialsPOD("Username $#%^&^*", testData.Users.Admin.Password, "sitecore"))
                              .BuildReadonlySession()
            )
            {
                var response = await session.AuthenticateAsync();

                Assert.False(response.IsSuccessful);
            }
        }
コード例 #23
0
        public async void TestGetAuthenticationWithNotExistentPassword()
        {
            using
            (
                var session = SitecoreSSCSessionBuilder.AuthenticatedSessionWithHost(testData.InstanceUrl)
                              .Credentials(new SSCCredentialsPOD(testData.Users.Admin.Username, "wrongpassword", "sitecore"))
                              .BuildReadonlySession()
            )
            {
                var response = await session.AuthenticateAsync();

                Assert.False(response.IsSuccessful);
            }
        }
コード例 #24
0
        public async void TestCheckValidCredentials()
        {
            using
            (
                var session = SitecoreSSCSessionBuilder.AuthenticatedSessionWithHost(testData.InstanceUrl)
                              .Credentials(testData.Users.Admin)
                              .BuildReadonlySession()
            )
            {
                var response = await session.AuthenticateAsync();

                Assert.True(response.IsSuccessful);
            }
        }
コード例 #25
0
        private async void Authenticate()
        {
            var instanceUrl = this.instanceUrlField.Text;
            var login       = this.loginField.Text;
            var password    = this.passwordField.Text;
            var site        = this.siteField.Text;

            if (string.IsNullOrEmpty(instanceUrl))
            {
                Toast.MakeText(this, "Please provide instance url", ToastLength.Long).Show();
                return;
            }

            if (string.IsNullOrEmpty(login) && string.IsNullOrEmpty(password))
            {
                Toast.MakeText(this, "Please provide both login and password", ToastLength.Long).Show();
                return;
            }

            try
            {
                using (var credentials = new ScUnsecuredCredentialsProvider(login, password, site))
                    using (var session = SitecoreSSCSessionBuilder.AuthenticatedSessionWithHost(instanceUrl)
                                         .Credentials(credentials)
                                         .BuildReadonlySession())
                    {
                        this.SetProgressBarIndeterminateVisibility(true);

                        var response = await session.AuthenticateAsync();

                        this.SetProgressBarIndeterminateVisibility(false);
                        if (response.IsSuccessful)
                        {
                            DialogHelper.ShowSimpleDialog(this, "Success", "This user exists");
                        }
                        else
                        {
                            DialogHelper.ShowSimpleDialog(this, "Failed", "This user doesn't exist");
                        }
                    }
            }
            catch (System.Exception exception)
            {
                this.SetProgressBarIndeterminateVisibility(false);

                var title = this.GetString(Resource.String.text_error);
                DialogHelper.ShowSimpleDialog(this, title, exception.Message);
            }
        }
コード例 #26
0
        public void TestDatabaseIsWriteOnce()
        {
            Assert.Throws <InvalidOperationException>(() =>
                                                      SitecoreSSCSessionBuilder.AuthenticatedSessionWithHost("sitecore.net")
                                                      .Credentials(this.adminCredentials)
                                                      .DefaultDatabase("web")
                                                      .DefaultDatabase("web")
                                                      );

            Assert.Throws <InvalidOperationException>(() =>
                                                      SitecoreSSCSessionBuilder.AnonymousSessionWithHost("sitecore.net")
                                                      .DefaultDatabase("master")
                                                      .DefaultDatabase("core")
                                                      );
        }
コード例 #27
0
        public async void TestCreateItemByPathWithUserWithoutCreateAccessReturnsException()
        {
            var anonymousSession = SitecoreSSCSessionBuilder.AuthenticatedSessionWithHost(testData.InstanceUrl)
                                   .Credentials(testData.Users.NoCreateAccess)
                                   .BuildSession();
            var request = ItemSSCRequestBuilder.CreateItemRequestWithParentPath(this.testData.Items.CreateItemsHere.Path)
                          .ItemTemplateId(testData.Items.Home.TemplateId)
                          .ItemName("item created with nocreate user")
                          .Database("master")
                          .Build();

            var result = await anonymousSession.CreateItemAsync(request);

            Assert.IsFalse(result.Created);
        }
コード例 #28
0
        public void TestLanguageIsWriteOnce()
        {
            Assert.Throws <InvalidOperationException>(() =>
                                                      SitecoreSSCSessionBuilder.AuthenticatedSessionWithHost("sitecore.net")
                                                      .Credentials(this.adminCredentials)
                                                      .DefaultLanguage("en")
                                                      .DefaultLanguage("es")
                                                      );

            Assert.Throws <InvalidOperationException>(() =>
                                                      SitecoreSSCSessionBuilder.AnonymousSessionWithHost("sitecore.net")
                                                      .DefaultLanguage("en")
                                                      .DefaultLanguage("en")
                                                      );
        }
コード例 #29
0
        public void TestMediaExtIsWriteOnce()
        {
            Assert.Throws <InvalidOperationException>(() =>
                                                      SitecoreSSCSessionBuilder.AuthenticatedSessionWithHost("sitecore.net")
                                                      .Credentials(this.adminCredentials)
                                                      .DefaultMediaResourceExtension("ashx")
                                                      .DefaultMediaResourceExtension("pdf")
                                                      );

            Assert.Throws <InvalidOperationException>(() =>
                                                      SitecoreSSCSessionBuilder.AnonymousSessionWithHost("sitecore.net")
                                                      .DefaultMediaResourceExtension("jpeg")
                                                      .DefaultMediaResourceExtension("jpg")
                                                      );
        }
コード例 #30
0
        public void TestMediaRootIsWriteOnce()
        {
            Assert.Throws <InvalidOperationException>(() =>
                                                      SitecoreSSCSessionBuilder.AuthenticatedSessionWithHost("sitecore.net")
                                                      .Credentials(this.adminCredentials)
                                                      .MediaLibraryRoot("/sitecore/media library")
                                                      .MediaLibraryRoot("/sitecore/other media library")
                                                      );

            Assert.Throws <InvalidOperationException>(() =>
                                                      SitecoreSSCSessionBuilder.AnonymousSessionWithHost("sitecore.net")
                                                      .MediaLibraryRoot("/dev/null")
                                                      .MediaLibraryRoot("/sitecore/media library")
                                                      );
        }