Exemple #1
0
        /// <summary>
        /// Constructor for the User Tests to set up the context for the tests
        /// </summary>
        public UserListTests()
        {
            string rootPath = TestConfig.GetConfig().GetRipleyServerPath();
            BBC.Dna.AppContext.OnDnaStartup(rootPath);


            Console.WriteLine("Before RecentSearch - AddRecentSearchTests");

            //Create the mocked _InputContext
            Mockery mock = new Mockery();
            _InputContext = DnaMockery.CreateDatabaseInputContext();

            // Create a mocked site for the context
            ISite mockedSite = DnaMockery.CreateMockedSite(_InputContext, 1, "h2g2", "h2g2", true, "comment");
            Stub.On(_InputContext).GetProperty("CurrentSite").Will(Return.Value(mockedSite));
            Stub.On(mockedSite).GetProperty("ModClassID").Will(Return.Value(1));


            BBC.Dna.User user = new BBC.Dna.User(_InputContext);
            Stub.On(_InputContext).GetProperty("ViewingUser").Will(Return.Value(user));
            Stub.On(_InputContext).GetProperty("CurrentSite").Will(Return.Value(mockedSite));

            //Create sub editor group and users
            //create test sub editors
            DnaTestURLRequest dnaRequest = new DnaTestURLRequest("h2g2");
            dnaRequest.SetCurrentUserEditor();
            TestDataCreator testData = new TestDataCreator(_InputContext);
            int[] userIDs = new int[10];
            Assert.IsTrue(testData.CreateNewUsers(mockedSite.SiteID, ref userIDs), "Test users not created");
            Assert.IsTrue(testData.CreateNewUserGroup(dnaRequest.CurrentUserID, "subs"), "CreateNewUserGroup not created");
            Assert.IsTrue(testData.AddUsersToGroup(userIDs, mockedSite.SiteID, "subs"), "Unable to add users to group not created");


        }
Exemple #2
0
        public void NoData()
        {
            Console.WriteLine("Before missingData - NoData");

            // test variant data
            string postData = "";
            string mimeType = "";
            string url = "http://" + testUtils_CommentsAPI.server + "/dna/api/comments/CommentsService.svc/v1/site/";
            //HttpStatusCode expectedHttpResponse = HttpStatusCode.OK;

            // consistent input data

            // working data
            DnaTestURLRequest request = new DnaTestURLRequest(testUtils_CommentsAPI.sitename);
            request.SetCurrentUserEditor();

            // now get the response - no POST data, nor any clue about the type
            try
            {
                request.RequestPageWithFullURL(url, postData, mimeType);
            }
            catch
            {// Check to make sure that the page returned with the correct information
                Assert.IsTrue(request.CurrentWebResponse.StatusCode == HttpStatusCode.NotFound);
            }
            Console.WriteLine("After missingData - NoData");
        } // ends NoData
Exemple #3
0
        public void CreateEditorsPick()
        {
            //First get a comment.
            CommentsTests_V1 comments = new CommentsTests_V1();
            CommentForumTests_V1 commentForums = new CommentForumTests_V1();

            _commentInfo = comments.CreateCommentHelper(commentForums.CommentForumCreateHelper().Id);

            Assert.IsNotNull(_commentInfo, "Unable to Create Comment");
            
            DnaTestURLRequest request = new DnaTestURLRequest(_sitename);
            request.SetCurrentUserEditor();

             // Setup the request url
            string url = String.Format("http://" + _server + "/dna/api/comments/CommentsService.svc/V1/site/{0}/comments/{1}/editorpicks/", _sitename,_commentInfo.ID);
            
            request.RequestPageWithFullURL(url, "No data to send", "text/xml");

            //Check for Editors Pick presence.
            url = String.Format("http://" + _server + "/dna/api/comments/CommentsService.svc/V1/site/{0}/comments/?filterBy=EditorPicks", _sitename);
            request.RequestPageWithFullURL(url);

            XmlDocument xml = request.GetLastResponseAsXML();
            XmlNamespaceManager nsmgr = new XmlNamespaceManager(xml.NameTable);
            nsmgr.AddNamespace("api", "BBC.Dna.Api");
            
            String xPath = String.Format("api:commentsList/api:comments/api:comment[api:id='{0}']", _commentInfo.ID);
            XmlNode pick = xml.SelectSingleNode(xPath, nsmgr);
            Assert.IsNotNull(pick);
        }
        public void bbActivateBoard()
        {
            aaCreateTopic();
            Console.WriteLine("Before bbActivateBoard");
            //Activate Board 
            string url = "Messageboardadmin?cmd=activateboard&skin=purexml";
            DnaTestURLRequest urlRequest = new DnaTestURLRequest("haveyoursay");
            urlRequest.SetCurrentUserEditor();
            urlRequest.UseEditorAuthentication = true;
            urlRequest.RequestPage(url);
            XmlDocument doc = urlRequest.GetLastResponseAsXML();

            Assert.IsNotNull(doc.SelectSingleNode("/H2G2[BOARDACTIVATED='1']"), "Check Board Activated");

            url = "frontpage?skin=purexml";
            urlRequest.RequestPage(url);
            doc = urlRequest.GetLastResponseAsXML();
            Assert.IsNotNull(doc.SelectSingleNode("/H2G2/TOPICLIST/TOPIC[TITLE='" + topicName + "']"), "Check topic published");
            Assert.IsNotNull(doc.SelectSingleNode("/H2G2/TOPICLIST/TOPIC[TOPICLINKID='" + topicPreviewID + "']"), "Check Preview Topic Link");
            XmlNode node = doc.SelectSingleNode("/H2G2/TOPICLIST/TOPIC[TITLE='" + topicName + "']/FORUMID");
            if (node != null)
            {
                topicForumID = node.InnerText;
            }

            //Check Topic Forum Is Writable.
            url = "F" + topicForumID + "&skin=purexml";
            urlRequest.RequestPage(url);
            doc = urlRequest.GetLastResponseAsXML();
            Assert.IsNotNull(doc.SelectSingleNode("/H2G2/FORUMSOURCE/ARTICLE/ARTICLEINFO[FORUMID='" + topicForumID + "']"), "Check Topic ForumId");
            Assert.IsNotNull(doc.SelectSingleNode("/H2G2/FORUMTHREADS[@CANREAD='1']"), "Check Read Permissions");
            Assert.IsNotNull(doc.SelectSingleNode("/H2G2/FORUMTHREADS[@CANWRITE='1']"), "Check Write Permissions");

            Console.WriteLine("After bbActivateBoard");
        }
        public void aaCreateTopic()
        {
            Console.WriteLine("Before aaCreateTopic");
            topicName = "CreateTopic" + Convert.ToString(DateTime.Now.Ticks);
            string url = "TopicBuilder?_msfinish=yes&_msstage=1&_msxml=+%0D%0A%09%3CMULTI-INPUT%3E%0D%0A%09%09%3CREQUIRED+NAME%3D%27TITLE%27%3E%3CVALIDATE+TYPE%3D%27EMPTY%27+%2F%3E%3C%2FREQUIRED%3E%0D%0A%09%09%3CREQUIRED+NAME%3D%27TEXT%27%3E%3CVALIDATE+TYPE%3D%27EMPTY%27+%2F%3E%3C%2FREQUIRED%3E%0D%0A%09%09%3CREQUIRED+NAME%3D%27TEXTTYPE%27+%3E%3C%2FREQUIRED%3E%09%09%0D%0A%09%09%3CREQUIRED+NAME%3D%27TOPICID%27%3E%3C%2FREQUIRED%3E%09%0D%0A%09%09%3CREQUIRED+NAME%3D%27EDITKEY%27%3E%3C%2FREQUIRED%3E%09%0D%0A%09%3C%2FMULTI-INPUT%3E%0D%0A+&cmd=create&title=" + topicName + "&text=TestBody" + topicName + "&save=+save++&skin=purexml";
            DnaTestURLRequest urlRequest = new DnaTestURLRequest("haveyoursay");
            urlRequest.SetCurrentUserEditor();
            urlRequest.UseEditorAuthentication = true;
            urlRequest.RequestPage(url);
            XmlDocument doc = urlRequest.GetLastResponseAsXML();
            Assert.IsNotNull(doc.SelectSingleNode("/H2G2/TOPIC_PAGE/ACTION[TYPE='created']"),"Check Topic Creation");
            Assert.IsNotNull(doc.SelectSingleNode("/H2G2/TOPIC_PAGE/ACTION[OBJECT='" + topicName + "']"),"Check Topic Creation");
			Assert.IsNull(doc.SelectSingleNode("/H2G2/ERROR"),"Error in Page");

            XmlNode node = doc.SelectSingleNode("/H2G2/TOPIC_PAGE/TOPICLIST/TOPIC[TITLE='" + topicName + "']/EDITKEY");
            if ( node != null )
            {
                topicEditKey = node.InnerText;
            }

            node = doc.SelectSingleNode("/H2G2/TOPIC_PAGE/TOPICLIST/TOPIC[TITLE='" + topicName + "']/TOPICID");
            if ( node != null )
            {
                topicPreviewID = node.InnerText;
            }
            Console.WriteLine("After aaCreateTopic");
        }
        public void EditPost_DoEdit_ReturnsEdittedPost()
        {
            DnaTestURLRequest request = new DnaTestURLRequest(_siteName);
            request.SetCurrentUserEditor();
            var xml = GetPost(request, @"editpost?skin=purexml&postid=" + _postId.ToString());

            Assert.IsNull(xml.SelectSingleNode("H2G2/ERROR"));
            Assert.IsNotNull(xml.SelectSingleNode("H2G2/POST-EDIT-FORM"));

            var editForm = (PostEditForm)StringUtils.DeserializeObjectUsingXmlSerialiser(xml.SelectSingleNode("H2G2/POST-EDIT-FORM").OuterXml, typeof(PostEditForm));
            Assert.AreEqual(_postId, editForm.PostId);

            var postParams = new Queue<KeyValuePair<string, string>>();
            postParams = new Queue<KeyValuePair<string, string>>();
            postParams.Enqueue(new KeyValuePair<string, string>("PostID", editForm.PostId.ToString()));
            postParams.Enqueue(new KeyValuePair<string, string>("Subject", editForm.Subject + "1"));
            postParams.Enqueue(new KeyValuePair<string, string>("Text", editForm.Text + "1"));
            postParams.Enqueue(new KeyValuePair<string, string>("Update", "Update"));
            postParams.Enqueue(new KeyValuePair<string, string>("hidePostReason", ""));
            postParams.Enqueue(new KeyValuePair<string, string>("notes", "test"));

            request.RequestPage("editpost?skin=purexml", false, postParams);
            xml = request.GetLastResponseAsXML();

            var returnedForm = (PostEditForm)StringUtils.DeserializeObjectUsingXmlSerialiser(xml.SelectSingleNode("H2G2/POST-EDIT-FORM").OuterXml, typeof(PostEditForm));
            Assert.AreEqual(_postId, returnedForm.PostId);
            Assert.AreEqual(editForm.Subject + "1", returnedForm.Subject);
            Assert.AreEqual(editForm.Text + "1", returnedForm.Text);
        }
Exemple #7
0
        public void missTrailingSlash()
        {
            Console.WriteLine("Before missingData - missTrailingSlash");

            // working data
            string id = "";
            string title = "";
            string parentUri = "";
            DnaTestURLRequest request = new DnaTestURLRequest(testUtils_CommentsAPI.sitename);

            // fixed input data

            // test variant data
            string postData = testUtils_CommentsAPI.makePostXml(ref id, ref title, ref parentUri);
            string mimeType = "text/xml";
            string url = "http://" + testUtils_CommentsAPI.server + "/dna/api/comments/CommentsService.svc/v1/site/";
            HttpStatusCode expectedHttpResponse = HttpStatusCode.NotFound;

            request.SetCurrentUserEditor();

            try
            {
                request.RequestPageWithFullURL(url, postData, mimeType);
            }
            catch
            {// Check to make sure that the page returned with the correct information
            }

            Assert.IsTrue(request.CurrentWebResponse.StatusCode == expectedHttpResponse,
                "Expected "+expectedHttpResponse+", got " + request.CurrentWebResponse.StatusCode);

            Console.WriteLine("After missingData - missTrailingSlash");
        } // ends missTrailingSlash
 public void EditPost_MissingPostId_ReturnsError()
 {
     DnaTestURLRequest request = new DnaTestURLRequest(_siteName);
     request.SetCurrentUserEditor();
     var xml = GetPost(request, @"editpost?skin=purexml");
     Assert.IsNotNull(xml.SelectSingleNode("H2G2/ERROR"));
     Assert.IsNull(xml.SelectSingleNode("H2G2/POST-EDIT-FORM"));
 }
 public static string CallCommentForumList(DnaTestURLRequest request, string sitename, string contactFormID, string additionalParams)
 {
     string requestURL = "https://" + DnaTestURLRequest.CurrentServer + "/dna/" + sitename + "/commentsforumlist/?s_siteid=1" + additionalParams;
     request.SetCurrentUserEditor();
     request.AssertWebRequestFailure = false;
     request.RequestSecurePage(requestURL);
     return requestURL;
 }
 public static string CallCommentForumList(DnaTestURLRequest request, string additionalParams)
 {
     string requestURL = "admin/commentsforumlist?s_siteid=1" + additionalParams;
     request.SetCurrentUserEditor();
     request.AssertWebRequestFailure = false;
     request.RequestSecurePage(requestURL);
     return requestURL;
 }
Exemple #11
0
        /// <summary>
        /// Helper Function for Tests that require an editors pick.
        /// </summary>
        /// <param name="commentId"></param>
        public void CreateEditorsPickHelper( String siteName, int commentId )
        {
            // Setup the request url
            string url = String.Format("http://" + _server + "/dna/api/comments/CommentsService.svc/V1/site/{0}/comments/{1}/editorpicks/", _sitename, commentId);

            DnaTestURLRequest request = new DnaTestURLRequest(siteName);
            request.SetCurrentUserEditor();
            request.RequestPageWithFullURL(url, "No data to send", "text/xml");
        }
        public void inXMLoutXML()
        {
            Console.WriteLine("Before formatParamTests - inXMLoutXML");

           // test variant data
            string mimeType = "text/xml";
            string formatParam = "XML";

            HttpStatusCode expectedResponseCode = HttpStatusCode.OK;

            // working data
            string id = "";
            string title = "";
            string parentUri = "";

            // make the post as XML data
            string postData = testUtils_ratingsAPI.makeCreatePostXml_minimal(ref id, ref title, ref parentUri);
            
            string url = testUtils_ratingsAPI.makeCreateForumUrl() + "?format=" + formatParam;

            DnaTestURLRequest request = new DnaTestURLRequest(testUtils_ratingsAPI.sitename);

            request.SetCurrentUserEditor();

            try
            {
                request.RequestPageWithFullURL(url, postData, mimeType);
            }
            catch
            {
                string resp = request.GetLastResponseAsString(); // usefull when debugging
                if (expectedResponseCode == HttpStatusCode.OK)
                    Assert.Fail("Fell over: " + resp); 
            }

            Assert.IsTrue(
                request.CurrentWebResponse.StatusCode == expectedResponseCode, 
                "HTTP repsonse. Expected:" + expectedResponseCode + " actually got " + request.CurrentWebResponse.StatusCode
                );

            XmlDocument xml = request.GetLastResponseAsXML();
            DnaXmlValidator validator = new DnaXmlValidator(xml.InnerXml, testUtils_ratingsAPI._schemaRatingForum);
            validator.Validate();

            BBC.Dna.Api.RatingForum returnedForum = 
                (BBC.Dna.Api.RatingForum)StringUtils.DeserializeObject(request.GetLastResponseAsString(), typeof(BBC.Dna.Api.RatingForum)
                );

            Assert.IsTrue(returnedForum.Id == id);
            Assert.IsTrue(returnedForum.Title == title);
            Assert.IsTrue(returnedForum.ParentUri == parentUri);
            Assert.IsTrue(returnedForum.ratingsList.TotalCount == 0);

            Console.WriteLine("After formatParamTests - inXMLoutXML");
        } // ends inXMLoutXML
Exemple #13
0
        public void UserList_AsEditorUser_ReturnsAuthorised()
        {
            var request = new DnaTestURLRequest(_siteName);
            request.SetCurrentUserEditor();
            request.UseEditorAuthentication = true;
            request.RequestPage("userlist?skin=purexml");

            var xml = request.GetLastResponseAsXML();

            CheckNoError(xml);
        }
Exemple #14
0
        public void editorUser()
        {
            Console.WriteLine("Before userTypes - editorUser");

            DnaTestURLRequest request = new DnaTestURLRequest(testUtils_ratingsAPI.sitename);
            request.SetCurrentUserEditor();

            doIt_xml(request, HttpStatusCode.OK);

            Console.WriteLine("After userTypes - editorUser");
        }
        public void TermsFilterAdminPage_WithEditorAuthenticationAsEditor_AccessDenied()
        {
            var siteName = "moderation";
            var request = new DnaTestURLRequest(siteName) { UseEditorAuthentication = true };
            request.SetCurrentUserEditor();

            request.RequestPage("termsfilteradmin?modclassid=2&skin=purexml");
            var doc = request.GetLastResponseAsXML();
            Assert.AreEqual("ERROR",doc.SelectSingleNode("//H2G2").Attributes["TYPE"].Value);
            Assert.IsNotNull(doc.SelectSingleNode("//H2G2/ERROR/ERRORMESSAGE"));
            Assert.IsNull(doc.SelectSingleNode("//H2G2/TERMADMIN"));
        }
        public void TestModerateHomePageNonSecure()
        {
            Console.WriteLine("Before ModerateHome Page Tests - TestModerateHomePageNonSecure");
            DnaTestURLRequest request = new DnaTestURLRequest("haveyoursay");
            request.SetCurrentUserEditor();
            request.UseEditorAuthentication = true;
            request.RequestPage(@"NModerate?skin=purexml");

            XmlDocument xml = request.GetLastResponseAsXML();
            Assert.IsNotNull(xml.SelectSingleNode("H2G2/ERROR"));
            Console.WriteLine("After ModerateHome Page Tests - TestModerateHomePageNonSecure");
        }
        public void TermsFilterImportPage_WithEditorAuthenticationAsEditor_AccessDenied()
        {
            var siteName = "moderation";
            var request = new DnaTestURLRequest(siteName) { UseEditorAuthentication = true };
            request.SetCurrentUserEditor();

            request.RequestPage("termsfilterimport?&skin=purexml");
            var doc = request.GetLastResponseAsXML();
            Assert.IsNotNull(doc.SelectSingleNode("//H2G2/ERROR"));
            Assert.IsNotNull(doc.SelectSingleNode("//H2G2/ERROR/ERRORMESSAGE"));
            Assert.IsNull(doc.SelectSingleNode("//H2G2/TERMADMIN"));
        }
        public void TestModerateHomePageNonSecure()
        {
            Console.WriteLine("Before moderationhome Page Tests - TestModerateHomePageNonSecure");
            DnaTestURLRequest request = new DnaTestURLRequest("moderation");
            request.SetCurrentUserEditor();
            request.UseDebugUserSecureCookie = false;
            request.RequestPage(@"moderationhome?skin=purexml");

            XmlDocument xml = request.GetLastResponseAsXML();
            Assert.IsNotNull(xml.SelectSingleNode("H2G2/ERROR"));
            Console.WriteLine("After moderationhome Page Tests - TestModerateHomePageNonSecure");
        }
        public void TestModerateHomePageSecure()
        {
            Console.WriteLine("Before moderationhome Page Tests - TestModerateHomePageSecure");
            DnaTestURLRequest request = new DnaTestURLRequest("moderation");
            request.UseEditorAuthentication = true;
            request.SetCurrentUserEditor();  

            request.RequestSecurePage(@"moderationhome?skin=purexml");
            XmlDocument xml = request.GetLastResponseAsXML();

            Console.WriteLine("After moderationhome Page Tests - TestModerateHomePageSecure");
        }
        public void Test2_CreateUneditedArticleCount()
        {
            DnaTestURLRequest dnaRequest = new DnaTestURLRequest("h2g2");
            dnaRequest.SetCurrentUserEditor();
            IInputContext context = DnaMockery.CreateDatabaseInputContext();

            //DnaTestURLRequest dnaRequest = new DnaTestURLRequest("h2g2");
            dnaRequest.SetCurrentUserEditor();
            dnaRequest.UseEditorAuthentication = true;
            string relativePath = @"Info?cmd=TUE&skin=purexml";
            dnaRequest.RequestPage(relativePath);
            XmlDocument xmlResponse = dnaRequest.GetLastResponseAsXML();

            //check for error tag
            XmlNode xmlError = xmlResponse.SelectSingleNode("/H2G2/ERROR");
            Assert.IsTrue(xmlError == null, "Incorrect error returned");

            XmlNode xmlSub = xmlResponse.SelectSingleNode("/H2G2/INFO");
            Assert.IsTrue(xmlSub != null, "Incorrect data returned");
            DnaXmlValidator validator = new DnaXmlValidator(xmlSub.OuterXml, "info_uneditedentries.xsd");
            validator.Validate();
        }
        public void TestModeratePostsPageXml()
        {
            DnaTestURLRequest request = new DnaTestURLRequest("haveyoursay");
            request.SetCurrentUserEditor();
            request.UseEditorAuthentication = true;
            request.RequestPage(@"ModeratePosts?modclassid=1&skin=purexml");

            XmlDocument xml = request.GetLastResponseAsXML();
            Assert.IsTrue(xml.SelectSingleNode("H2G2") != null, "The page does not exist!!!");

            DnaXmlValidator validator = new DnaXmlValidator(xml.InnerXml, "H2G2ModeratePosts.xsd");
            validator.Validate();
        }
Exemple #22
0
        public void SiteManager_GetKnownSiteWithEditorUser_ReturnsCorrectError()
        {
            var request = new DnaTestURLRequest(_siteName);
            request.SetCurrentUserEditor();
            request.UseEditorAuthentication = true;

            request.RequestPage("sitemanager?skin=purexml");

            var xmlDoc = request.GetLastResponseAsXML();

            ValidateError(xmlDoc, "INVALID PERMISSIONS");

        }
        public void TestComplaintBannedEmailIsCaught()
        {
            // First make sure that the test user can make a complint before we put the email in the banned emails list
            DnaTestURLRequest request = new DnaTestURLRequest("h2g2");
            request.SetCurrentUserNormal();
            int userID = request.CurrentUserID;
            request.RequestPage("UserComplaintPage?postid=2&skin=purexml");
            XmlDocument xml = request.GetLastResponseAsXML();

            // Check to make sure that no errors came back
            Assert.IsTrue(xml.SelectSingleNode("//USER-COMPLAINT-FORM/ERROR") == null, "There should not be any errors present in the XML!");

            try
            {
                // Now put the users email into the banned emails list for complaints
                IInputContext context = DnaMockery.CreateDatabaseInputContext();
                using (IDnaDataReader reader = context.CreateDnaDataReader("AddEMailToBannedList"))
                {
                    reader.AddParameter("Email", "*****@*****.**");//this is dotnetnormaluser's email
                    reader.AddParameter("SigninBanned", 0);
                    reader.AddParameter("ComplaintBanned", 1);
                    reader.AddParameter("EditorID", 6);
                    reader.AddIntReturnValue();
                    reader.Execute();

                    var duplicate = reader.GetIntReturnValue();
                    Assert.AreEqual(0, duplicate, "The Duplicate result should be false (0)");

                    request.RequestPage("dnasignal?action=recache-bannedEmails");
                }

                // Now try to complain again
                request.RequestPage("UserComplaintPage?postid=2&skin=purexml");
                request.SetCurrentUserEditor();
                xml = request.GetLastResponseAsXML();

                // Check to make sure that no errors came back
                Assert.IsTrue(xml.SelectSingleNode("//ERROR") != null, "There should be an error present in the XML!");
                Assert.IsTrue(xml.SelectSingleNode("//ERROR[@TYPE='EMAILNOTALLOWED']") != null, "There should be an EMAILNOTALLOWED error present in the XML!");

            }
            finally
            {
                IInputContext context = DnaMockery.CreateDatabaseInputContext();
                using (IDnaDataReader reader = context.CreateDnaDataReader(""))
                {
                    reader.ExecuteDEBUGONLY("exec removebannedemail @email='*****@*****.**'");//this is dotnetnormaluser's email
                    request.RequestPage("dnasignal?action=recache-bannedEmails");
                }
            }
        }
Exemple #24
0
        public void GetCallingUserInfo_AsEditor_ReturnsEditorItemInGroup()
        {
            Console.WriteLine("Before GetCallingUserInfo_AsEditor_ReturnsEditorItemInGroup");
            
            DnaTestURLRequest request = new DnaTestURLRequest("h2g2");
            request.SetCurrentUserEditor();
            request.RequestPageWithFullURL(callinguser_url);

            BBC.Dna.Users.User user = (BBC.Dna.Users.User)StringUtils.DeserializeObject(request.GetLastResponseAsXML().OuterXml, typeof(BBC.Dna.Users.User));

            Assert.IsNotNull(user.UsersListOfGroups.Find(x => x.Name.ToLower()  == "editor"));

            Console.WriteLine("After GetCallingUserInfo_AsEditor_ReturnsEditorItemInGroup");
        }
        public void Test02_CorrectReturnViewing()
        {
            DnaTestURLRequest dnaRequest = new DnaTestURLRequest("h2g2");
            dnaRequest.SetCurrentUserEditor();
            IInputContext context = DnaMockery.CreateDatabaseInputContext();

            //DnaTestURLRequest dnaRequest = new DnaTestURLRequest("h2g2");
            dnaRequest.SetCurrentUserEditor();
            dnaRequest.UseEditorAuthentication = true;
            string relativePath = @"AllocateSubs?skin=purexml";
            dnaRequest.RequestPage(relativePath);
            XmlDocument xmlResponse = dnaRequest.GetLastResponseAsXML();

            //check for error tag
            XmlNode xmlError = xmlResponse.SelectSingleNode("/H2G2/ERROR");
            Assert.IsTrue(xmlError == null, "Incorrect error returned");

            XmlNode xmlSub = xmlResponse.SelectSingleNode("/H2G2/SUB-ALLOCATION-FORM");
            Assert.IsTrue(xmlSub != null, "Incorrect data returned");
            DnaXmlValidator validator = new DnaXmlValidator(xmlSub.OuterXml, "AllocateSubs.xsd");
            validator.Validate();


        }
        public void TestModerateHomePageXml()
        {
            DnaTestURLRequest request = new DnaTestURLRequest("moderation");
            //Cookie cookie;
            //string testUserName;
            //SetupIdentityEditorUser(request, out cookie, out testUserName);
            request.UseEditorAuthentication = true;
            request.SetCurrentUserEditor();            
            request.RequestSecurePage(@"moderationhome?skin=purexml");
            XmlDocument xml = request.GetLastResponseAsXML();

            DnaXmlValidator validator = new DnaXmlValidator(xml.InnerXml, "H2G2ModerateHome.xsd");
            validator.Validate();

            //TestUserCreator.DeleteIdentityUser(cookie, testUserName);
        }
        public void AddStickyThread_WithoutSiteOption_ReturnsError()
        {
            var siteName = "mbiplayer";
            var request = new DnaTestURLRequest(siteName);

            request.SetCurrentUserEditor();
            request.RequestPage("NF7325075?cmd=MAKETHREADSTICKY&stickythreadid=34&skin=purexml");
            _forumPageTests.ValidateForumSchema(siteName, request);

            var doc = request.GetLastResponseAsXML();
            Assert.IsNotNull(doc.SelectSingleNode("//H2G2/ERROR"));
            Assert.IsNotNull(doc.SelectSingleNode("//H2G2/ERROR/ERRORMESSAGE"));
            Assert.AreEqual("'EnableStickyThreads' site option is false.", doc.SelectSingleNode("//H2G2/ERROR/ERRORMESSAGE").InnerText);

            
        }
        public void TestModeratePostsPageXml()
        {
            //Get an item in to the queue.
            ModerateItems_V1 exlinks = new ModerateItems_V1();
            exlinks.AddComplaintItemToModQueue();

            //Check the item is in the queue
            DnaTestURLRequest request = new DnaTestURLRequest("moderation");
            request.SetCurrentUserEditor();
            request.UseEditorAuthentication = true;
            request.RequestPage(@"ModerateExLinks?modclassid=1&alerts=1&skin=purexml");

            XmlDocument xml = request.GetLastResponseAsXML();
            Assert.IsTrue(xml.SelectSingleNode("H2G2") != null, "The page does not exist!!!");

            DnaXmlValidator validator = new DnaXmlValidator(xml.InnerXml, "H2G2ModerateExLinksPage.xsd");
            validator.Validate();
        }
Exemple #29
0
        public CommentForum CommentForumCreateHelper()
        {
            string nameSpace = "Tests";
            string id = Guid.NewGuid().ToString();
            ModerationStatus.ForumStatus moderationStatus = ModerationStatus.ForumStatus.Reactive;
            DateTime closingDate = DateTime.MinValue;

            Console.WriteLine("Before CreateCommentForum");

            var request = new DnaTestURLRequest(_sitename);
            request.SetCurrentUserEditor();

            string title = "Functiontest Title";
            string parentUri = "http://www.bbc.co.uk/dna/h2g2/";
            string commentForumXml = String.Format("<commentForum xmlns=\"BBC.Dna.Api\">" +
                                                   "<id>{0}</id>" +
                                                   "<namespace>{3}</namespace>" +
                                                   "<title>{1}</title>" +
                                                   "<parentUri>{2}</parentUri>" +
                                                   "<closeDate>{4}</closeDate>" +
                                                   "<moderationServiceGroup>{5}</moderationServiceGroup>" +
                                                   "</commentForum>", id, title, parentUri, nameSpace,
                                                   closingDate.ToString("yyyy-MM-dd"), moderationStatus);

            // Setup the request url
            string url = String.Format("http://" + _server + "/dna/api/comments/CommentsService.svc/V1/site/{0}/",
                                       _sitename);
            // now get the response
            request.RequestPageWithFullURL(url, commentForumXml, "text/xml");
            // Check to make sure that the page returned with the correct information
            // Check to make sure that the page returned with the correct information
            XmlDocument xml = request.GetLastResponseAsXML();
            var validator = new DnaXmlValidator(xml.InnerXml, _schemaCommentForum);
            validator.Validate();

            var returnedForum =
                (CommentForum) StringUtils.DeserializeObject(request.GetLastResponseAsString(), typeof (CommentForum));
            Assert.IsTrue(returnedForum.Id == id);

            Assert.IsTrue(returnedForum.ParentUri == parentUri);
            Assert.IsTrue(returnedForum.Title == title);
            Assert.IsTrue(returnedForum.ModerationServiceGroup == moderationStatus);
            return returnedForum;
        }
        public void TestMemberDetailsAdminPage()
        {
            DnaTestURLRequest request = new DnaTestURLRequest("moderation");
            request.SetCurrentUserEditor();
            request.UseEditorAuthentication = true;

            string requestURL = "MemberDetails?skin=purexml&userid=" + request.CurrentUserID.ToString();
            request.RequestPage(requestURL);

            XmlDocument doc = request.GetLastResponseAsXML();
            
            //Validate XML
            DnaXmlValidator validator = new DnaXmlValidator(doc.InnerXml, "H2G2MemberDetailsAdmin.xsd");
            validator.Validate();

            //Check at least the user specified is included in the alternate identites.
            XmlNode node = doc.SelectSingleNode("H2G2/MEMBERDETAILSLIST/MEMBERDETAILS/USER[USERID='" + Convert.ToString(request.CurrentUserID) + "']");
            Assert.IsNotNull(node);
        }