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 MakeUserEditorOfSite()
        {
            DnaTestURLRequest request = new DnaTestURLRequest("moderation");
            request.SetCurrentUserSuperUser();

            DnaTestURLRequest request2 = new DnaTestURLRequest("moderation");
            request2.SetCurrentUserNormal();

            request.UseEditorAuthentication = true;
            request.RequestPage(String.Format("ModeratorManagement?manage=editor&giveaccess=1&userid={0}&siteid={1}&skin=purexml",request2.CurrentUserID,_siteId) );

            //Check user is editor of site concerned.
            XmlDocument xml = request.GetLastResponseAsXML();
            Assert.IsNotNull(xml.SelectSingleNode("/H2G2/MODERATOR-LIST[@GROUPNAME='editor']"));
            XmlNode node = xml.SelectSingleNode(String.Format("/H2G2/MODERATOR-LIST/MODERATOR[USER/USERID={0}]/SITES/SITE[@SITEID={1}]",request2.CurrentUserID,_siteId) );
            Assert.IsNotNull(node);

            
            CheckUserPermissions("EDITOR");
            

            //Remove Access
            request.RequestPage(String.Format("ModeratorManagement?manage=editor&removeaccess=1&userid={0}&siteid={1}&skin=purexml", request2.CurrentUserID, 1));
            xml = request.GetLastResponseAsXML();
            node = xml.SelectSingleNode(String.Format("/H2G2/MODERATOR-LIST/MODERATOR[USER/USERID={0}]/SITES/SITE[@SITEID={1}]", request2.CurrentUserID, 1));
            Assert.IsNull(node);
        }
Exemple #3
0
        public void Messageboardschedule_CloseSiteInDB_CheckClosedInCSharp()
        {
            Console.WriteLine("TestCodeSignalSendToRecacheSiteListDataViaDotNet");
            // Get the current open and close times for the h2g2 site
            DnaTestURLRequest request = new DnaTestURLRequest("h2g2");
            request.RequestPage("acs?skin=purexml");
            Assert.IsTrue(request.GetLastResponseAsXML().SelectSingleNode("/H2G2/SITE/SITECLOSED") != null);
            Assert.AreEqual(request.GetLastResponseAsXML().SelectSingleNode("/H2G2/SITE/SITECLOSED").InnerXml, "0");

            // Now check to make sure that the XML for the sitelist has not changed
            request.RequestPage("?skin=purexml");
            Assert.IsTrue(request.GetLastResponseAsXML().SelectSingleNode("/H2G2/SITE-CLOSED") != null);
            Assert.AreEqual(request.GetLastResponseAsXML().SelectSingleNode("/H2G2/SITE-CLOSED").InnerXml, "0");

            // Now set the site to be closed
            Assert.IsTrue(SetSiteEmergencyClosed(true), "Failed to close h2g2");

            // Now check to make sure that the XML for the sitelist has not changed
            request.RequestPage("acs?skin=purexml");
            Assert.IsTrue(request.GetLastResponseAsXML().SelectSingleNode("/H2G2/SITE/SITECLOSED") != null);
            Assert.AreEqual(request.GetLastResponseAsXML().SelectSingleNode("/H2G2/SITE/SITECLOSED").InnerXml, "0");

            // Now check to make sure that the XML for the sitelist has not changed
            request.RequestPage("?skin=purexml");
            Assert.IsTrue(request.GetLastResponseAsXML().SelectSingleNode("/H2G2/SITE-CLOSED") != null);
            Assert.AreEqual(request.GetLastResponseAsXML().SelectSingleNode("/H2G2/SITE-CLOSED").InnerXml, "0");

            // Now send the recache signal and check to make sure that the times are updated!
            using (FullInputContext inputContext = new FullInputContext(false))
            {
                inputContext.SendSignal("action=recache-site");

                // Now check to make sure that the XML for the sitelist has not changed
                request.RequestPage("acs?skin=purexml");
                Assert.IsTrue(request.GetLastResponseAsXML().SelectSingleNode("/H2G2/SITE/SITECLOSED") != null);
                Assert.AreEqual(request.GetLastResponseAsXML().SelectSingleNode("/H2G2/SITE/SITECLOSED").InnerXml, "1");

                // Now check to make sure that the XML for the sitelist has not changed
                request.RequestPage("?skin=purexml");
                Assert.IsTrue(request.GetLastResponseAsXML().SelectSingleNode("/H2G2/SITE-CLOSED") != null);
                Assert.AreEqual(request.GetLastResponseAsXML().SelectSingleNode("/H2G2/SITE-CLOSED").InnerXml, "1");

                // Now set the site to be open
                Assert.IsTrue(SetSiteEmergencyClosed(false), "Failed to open h2g2");

                // Double check to make sure it's back to normal
                // Now send the recache signal and check to make sure that the times are updated!
                inputContext.SendSignal("action=recache-site");
            }
            // Now check to make sure that the closed value has been put back correctly
            request.RequestPage("acs?skin=purexml");
            Assert.IsTrue(request.GetLastResponseAsXML().SelectSingleNode("/H2G2/SITE/SITECLOSED") != null);
            Assert.AreEqual(request.GetLastResponseAsXML().SelectSingleNode("/H2G2/SITE/SITECLOSED").InnerXml, "0");

            // Now check to make sure that the closed value has been put back correctly
            request.RequestPage("?skin=purexml");
            Assert.IsTrue(request.GetLastResponseAsXML().SelectSingleNode("/H2G2/SITE-CLOSED") != null);
            Assert.AreEqual(request.GetLastResponseAsXML().SelectSingleNode("/H2G2/SITE-CLOSED").InnerXml, "0");
        }
        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 #5
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 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 SyncUserDetailsViaBBCDna()
        {
            DnaTestURLRequest request = new DnaTestURLRequest("identity606");
            request.SetCurrentUserAsNewIdentityUser(_userName, _password, _displayName, _email, _dob, TestUserCreator.IdentityPolicies.Adult, "identity606", TestUserCreator.UserType.IdentityOnly);
            string cookie = request.CurrentCookie;
            request.RequestPage("status-n?skin=purexml");
            XmlDocument doc = request.GetLastResponseAsXML();

            Assert.IsNotNull(doc.SelectSingleNode("//VIEWING-USER/USER/USERNAME"), "User name is not correct");
            Assert.AreEqual(_displayName, doc.SelectSingleNode("//VIEWING-USER/USER/USERNAME").InnerText, "User name is not correct");
            Assert.IsNotNull(doc.SelectSingleNode("//VIEWING-USER/SIGNINNAME"), "login name is not correct");
            Assert.AreEqual(_userName, doc.SelectSingleNode("//VIEWING-USER/SIGNINNAME").InnerText, "login name is not correct");
            Assert.IsNull(doc.SelectSingleNode("//VIEWING-USER/USER/FIRSTNAME"), "There shouldn't be a first name");
            Assert.IsNull(doc.SelectSingleNode("//VIEWING-USER/LASTNAME"), "There shouldn't be a last name");
            Thread.Sleep(2000);

            Assert.IsTrue(TestUserCreator.SetIdentityAttribute(_userName, cookie, TestUserCreator.AttributeNames.DisplayName, _displayName));
            Assert.IsTrue(TestUserCreator.SetIdentityAttribute(_userName, cookie, TestUserCreator.AttributeNames.FirstName, _firstName));
            Assert.IsTrue(TestUserCreator.SetIdentityAttribute(_userName, cookie, TestUserCreator.AttributeNames.LastName, _lastName));
            Assert.IsTrue(TestUserCreator.SetIdentityAttribute(_userName, cookie, TestUserCreator.AttributeNames.Email, _newEmail));
            
            request.RequestPage("status-n?skin=purexml");

            doc = request.GetLastResponseAsXML();
            Assert.IsNotNull(doc.SelectSingleNode("//VIEWING-USER/USER/USERNAME"), "User name is not correct");
            Assert.AreEqual(_displayName, doc.SelectSingleNode("//VIEWING-USER/USER/USERNAME").InnerText, "User name is not correct");
            Assert.IsNotNull(doc.SelectSingleNode("//VIEWING-USER/SIGNINNAME"), "login name is not correct");
            Assert.AreEqual(_userName, doc.SelectSingleNode("//VIEWING-USER/SIGNINNAME").InnerText, "login name is not correct");
        }
        public void DuplicatePostParams()
        {
            Console.WriteLine("DuplicatePostParams");
            DnaTestURLRequest request = new DnaTestURLRequest("haveyoursay");

            Queue<KeyValuePair<string, string>> postparams = new Queue<KeyValuePair<string, string> >();
            postparams.Enqueue(new KeyValuePair<string,string>("s_param", "1,1"));
            postparams.Enqueue(new KeyValuePair<string,string>("s_param", "2,2"));
            postparams.Enqueue(new KeyValuePair<string,string>("s_param", "3,3"));
            request.RequestPage("acs?skin=purexml", postparams);

            string paramvalue = "1,1,2,2,3,3";
            XmlDocument doc = request.GetLastResponseAsXML();
            DnaXmlValidator validator = new DnaXmlValidator(doc.InnerXml, "H2G2CommentBoxFlat.xsd");
            validator.Validate();

            validator = new DnaXmlValidator(doc.SelectSingleNode(@"H2G2/PARAMS").OuterXml, "Params.xsd");
            validator.Validate();

            XmlNodeList nodes = doc.SelectNodes(@"H2G2/PARAMS/PARAM");
            foreach (XmlNode node in nodes)
            {
                Assert.AreEqual(paramvalue, node.SelectSingleNode("VALUE").InnerText);
            }
        }
        public static int runningForumCount = 0; // used to see our starting count, before we start adding forums.

        /// <summary>
        /// Simply count the number of commentsForums that have been created so far on this site
        /// </summary>
        /// <param name="SiteName">the name of the sute to query</param>
        /// <returns>teh count</returns>
        public static int countForums(string SiteName)
        {
            string _server = DnaTestURLRequest.CurrentServer;

            DnaTestURLRequest request = new DnaTestURLRequest(SiteName);

            request.SetCurrentUserNormal();

            // Setup the request url
            string url = "http://" + _server + "/dna/api/comments/CommentsService.svc/v1/site/" + SiteName + "/";

            // now get the response - no POST data, nor any clue about the input mime-type
            request.RequestPageWithFullURL(url, "", "");

            Assert.IsTrue(request.CurrentWebResponse.StatusCode == HttpStatusCode.OK);

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

            BBC.Dna.Api.CommentForumList returnedList = (BBC.Dna.Api.CommentForumList)StringUtils.DeserializeObject(request.GetLastResponseAsString(), typeof(BBC.Dna.Api.CommentForumList));
            Assert.IsTrue(returnedList != null);

            return returnedList.TotalCount;
        }
        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);
        }
        public void Test1CreateForumWithNoCloseDate()
        {
            Console.WriteLine("Before CommentForumClosingDateTests - Test1CreateForumWithNoCloseDate");

            // Create a new comment box with no closing date
            DnaTestURLRequest request = new DnaTestURLRequest("haveyoursay");
            request.SetCurrentUserNormal();

            // Setup the request url
            string uid = Guid.NewGuid().ToString();
            string title = "Testing";
            string hosturl = "http://local.bbc.co.uk/dna/haveyoursay/acs";
            string url = "acs?dnauid=" + uid + "&dnainitialtitle=" + title + "&dnahostpageurl=" + hosturl + "&dnaforumduration=0&skin=purexml";

            // now get the response
            request.RequestPage(url);

            // Check to make sure that the page returned with the correct information
            XmlDocument xml = request.GetLastResponseAsXML();
            DnaXmlValidator validator = new DnaXmlValidator(xml.OuterXml, _schemaUri);
            validator.Validate();
            Assert.IsTrue(xml.SelectSingleNode("/H2G2/COMMENTBOX") != null,"Comment box tag doers not exist!");
            //Assert.IsTrue(xml.SelectSingleNode("/H2G2/COMMENTBOX/ENDDATE") != null,"End date missing when specified!");
            Assert.IsTrue(xml.SelectSingleNode("/H2G2/COMMENTBOX/FORUMTHREADPOSTS[@UID='" + uid + "']") != null, "Forums uid does not matched the one used to create!");
            Assert.IsTrue(xml.SelectSingleNode("/H2G2/COMMENTBOX/FORUMTHREADPOSTS[@HOSTPAGEURL='" + hosturl + "']") != null, "Host url does not match the one used to create!");
            Assert.IsTrue(xml.SelectSingleNode("/H2G2/COMMENTBOX/FORUMTHREADPOSTS[@CANWRITE='1']") != null, "The forums can write flag should be set 1");

            Console.WriteLine("After CommentForumClosingDateTests - Test1CreateForumWithNoCloseDate");
        }
 public void TermsFilterImportPage_WithoutEditorAuthenticationAsInSecured_AccessDenied()
 {
     var siteName = "moderation";
     var request = new DnaTestURLRequest(siteName) { UseEditorAuthentication = false, UseDebugUserSecureCookie=false};
     request.SetCurrentUserSuperUser();
     request.RequestPage("termsfilterimport?&skin=purexml", false, null);
     var xml = request.GetLastResponseAsXML();
     Assert.AreEqual("ERROR", xml.DocumentElement.Attributes[0].Value);
 }
        public void TestModeratorManagementPageNonSuperuser()
        {
            DnaTestURLRequest request = new DnaTestURLRequest("moderation");
            request.SetCurrentUserNormal();
            request.UseEditorAuthentication = true;
            request.RequestPage(@"ModeratorManagement?skin=purexml");

            XmlDocument xml = request.GetLastResponseAsXML();
            Assert.IsNotNull(xml.SelectSingleNode("H2G2/ERROR"));
        }
        public void TestModeratePostsPageNonModerator()
        {
            DnaTestURLRequest request = new DnaTestURLRequest("haveyoursay");
            request.SetCurrentUserNormal();
            request.UseEditorAuthentication = true;
            request.RequestPage(@"ModeratePosts?modclassid=1&skin=purexml");

            XmlDocument xml = request.GetLastResponseAsXML();
            Assert.IsNotNull(xml.SelectSingleNode("H2G2/ERROR"));
        }
        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 #16
0
        public void TestSetup()
        {
            // Create the stored procedure reader for the setup
            DnaTestURLRequest request = new DnaTestURLRequest("haveyoursay");
            request.UseIdentitySignIn = true;
            request.SetCurrentUserNormal();

            // Setup the request url
            string uid = Guid.NewGuid().ToString();
            string title = "TestingCommentBox";
            string hosturl = "http://local.bbc.co.uk/dna/haveyoursay/acs";
            string url = "acs?dnauid=" + uid + "&dnainitialtitle=" + title + "&dnahostpageurl=" + hosturl + "&dnaforumduration=0&skin=purexml";

            // Request the page and then post a comment
            request.RequestPage(url);
            XmlDocument xml = request.GetLastResponseAsXML();
            request.RequestSecurePage("acs?dnauid=" + uid + "&dnaaction=add&dnacomment=blahblahblah&dnahostpageurl=" + hosturl + "&skin=purexml");
            XmlDocument xDoc = request.GetLastResponseAsXML();
            _entryID = Convert.ToInt32(xDoc.SelectSingleNode("//POST/@POSTID").InnerText);

            bool haveIpInfo = false;
            IInputContext context = DnaMockery.CreateDatabaseInputContext();
            using (IDnaDataReader reader = context.CreateDnaDataReader(""))
            {
                reader.ExecuteDEBUGONLY("SELECT TOP 1 EntryID FROM ThreadEntriesIpAddress WHERE entryid = " + _entryID.ToString() + " and ipaddress = '12.34.56.78' and bbcuid = '47BEB336-3409-00CF-CAD0-080020C4C7DD'");
                if (reader.Read() && reader.HasRows)
                {
                    haveIpInfo = true;
                }
            }

            // Check to see if we had the ip details added
            if (!haveIpInfo)
            {
                // No details. Insert them manualy
                using (IDnaDataReader reader = context.CreateDnaDataReader(""))
                {
                    reader.ExecuteDEBUGONLY("UPDATE ThreadEntriesIpAddress SET entryid = " + _entryID.ToString() + ", ipaddress = '12.34.56.78', bbcuid = '47BEB336-3409-00CF-CAD0-080020C4C7DD' WHERE EntryID = " + _entryID.ToString());
                    reader.Read();
                }
            }
        }
Exemple #17
0
 public void TestReturnKeyPhrasesInCategoryList()
 {
     Console.WriteLine("Before TestReturnKeyPhrasesInCategoryList");
     // Connect to Actionnetwork and navigate to a known unhidden node
     DnaTestURLRequest request = new DnaTestURLRequest("actionnetwork");
     request.SetCurrentUserNormal();
     request.RequestPage("C36138?skin=purexml");
     XmlDocument xml = request.GetLastResponseAsXML();
     Assert.IsTrue(xml.SelectSingleNode("//HIERARCHYDETAILS/REDIRECTNODEID") == null);
     Console.WriteLine("After TestReturnKeyPhrasesInCategoryList");
 }
Exemple #18
0
 public void SiteOptions_ValidateSiteOptionsXMLFromBBCDNA_ExpectValid()
 {
     // Get the XML from the c#
     DnaTestURLRequest request = new DnaTestURLRequest("h2g2");
     request.RequestPage("Status-n?skin=purexml");
     XmlDocument xDoc = request.GetLastResponseAsXML();
     XmlElement siteoptions = (XmlElement)xDoc.SelectSingleNode("/H2G2/SITE/SITEOPTIONS");
     Assert.IsNotNull(siteoptions, "Failed to get the site options from the XML");
     DnaXmlValidator validator = new DnaXmlValidator(siteoptions, "SiteOptions.xsd");
     validator.Validate();
 }
Exemple #19
0
		public void TestAcsRequest()
		{
			DnaTestURLRequest request = new DnaTestURLRequest("haveyoursay");
			request.RequestPage(@"acs?dnatitle=New+Comment+Box2&dnaurl=http://local.bbc.co.uk:8000/testpage.shtml&dnauid=552F1F05-74AD-410b-880C-F37B83D8B69A&skin=purexml");
			XmlDocument doc = request.GetLastResponseAsXML();
            DnaXmlValidator validator = new DnaXmlValidator(doc.InnerXml, "H2G2CommentBoxFlat.xsd");
            validator.Validate();
			Assert.IsTrue(doc.SelectSingleNode("/H2G2/SERVERNAME") != null, "No SERVERNAME element found");
			Assert.IsTrue(doc.SelectSingleNode("/H2G2/TIMEFORPAGE") != null, "No TIMEFORPAGE element found");
			Assert.IsTrue(doc.SelectSingleNode("/H2G2/USERAGENT") != null, "No USERAGENT element found");
		}
Exemple #20
0
        public void UserList_AsNormalUser_ReturnsUnauthorised()
        {
            var request = new DnaTestURLRequest(_siteName);
            request.SetCurrentUserNormal();
            request.UseEditorAuthentication = true;
            request.RequestPage("userlist?skin=purexml");

            var xml = request.GetLastResponseAsXML();

            CheckForError(xml, "Authorization");
        }
        public void HostDashboardUserActivity_AsNormalUser_ReturnsUnauthorised()
        {
            var request = new DnaTestURLRequest(_siteName);
            request.SetCurrentUserNormal();
            request.UseEditorAuthentication = true;
            request.RequestPage(_normalUserSearch);

            var xml = request.GetLastResponseAsXML();

            CheckForError(xml, "Authorization");
        }
        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 TestModerateHomePageNonModerator()
        {
            Console.WriteLine("Before moderationhome Page Tests - TestModerateHomePageNonModerator");
            DnaTestURLRequest request = new DnaTestURLRequest("moderation");
            request.SetCurrentUserNormal();
            request.UseEditorAuthentication = true;
            request.RequestPage(@"moderationhome?skin=purexml");

            XmlDocument xml = request.GetLastResponseAsXML();
            Assert.IsNotNull(xml.SelectSingleNode("H2G2/ERROR"));
            Console.WriteLine("After moderationhome Page Tests - TestModerateHomePageNonModerator");
        }
Exemple #24
0
        public void SiteManager_GetKnownSite_ReturnsCorrectXML()
        {
            var request = new DnaTestURLRequest(_siteName);
            request.SetCurrentUserSuperUser();
            request.UseEditorAuthentication= true;

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

            var xmlDoc = request.GetLastResponseAsXML();
            ValidateSiteManagerPage(xmlDoc);
           
        }
        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 CheckCorrectUserDetailsViaBBCDnaWithDisplayName()
        {
            DnaTestURLRequest request = new DnaTestURLRequest("identity606");
            request.SetCurrentUserAsNewIdentityUser(_userName, _password, _displayName, _email, _dob, TestUserCreator.IdentityPolicies.Adult, "identity606", TestUserCreator.UserType.IdentityOnly);
            request.RequestPage("status-n?skin=purexml");

            XmlDocument doc = request.GetLastResponseAsXML();
            Assert.IsNotNull(doc.SelectSingleNode("//VIEWING-USER/USER/USERNAME"), "User name is not correct");
            Assert.AreEqual(_displayName, doc.SelectSingleNode("//VIEWING-USER/USER/USERNAME").InnerText, "User name is not correct");
            Assert.IsNotNull(doc.SelectSingleNode("//VIEWING-USER/SIGNINNAME"), "login name is not correct");
            Assert.AreEqual(_userName, doc.SelectSingleNode("//VIEWING-USER/SIGNINNAME").InnerText, "login name is not correct");
        }
Exemple #27
0
        public void Messageboardschedule_SetInRipley_CheckVisibleInCSharp()
        {

            // Fill the times dictionary with the current open close times for h2g2
            // Get the current open and close times for the h2g2 site
            DnaTestURLRequest request = new DnaTestURLRequest("h2g2");
            request.RequestPage("acs?skin=purexml");

            // Check to see if we've got openclose times for this site
            Assert.IsNull(request.GetLastResponseAsXML().SelectSingleNode("/H2G2/SITE/OPENCLOSETIMES/OPENCLOSETIME"));
            // no times! Set daily repeating times for the site
            request.UseEditorAuthentication = true;
            request.SignUserIntoSSOViaProfileAPI(DnaTestURLRequest.usertype.EDITOR);
            request.RequestPage("messageboardschedule?action=update&updatetype=sameeveryday&recurrenteventopenhours=0&recurrenteventopenminutes=15&recurrenteventclosehours=23&recurrenteventcloseminutes=45&skin=purexml");
            request.UseEditorAuthentication = false;

            // Now re-request the original page
           request.RequestPage("acs?skin=purexml");
           Assert.IsNotNull(request.GetLastResponseAsXML().SelectSingleNode("/H2G2/SITE/OPENCLOSETIMES/OPENCLOSETIME"));
        
        }
        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 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"));
        }
Exemple #30
0
        public void TestCreateNewCommentForumAndComment()
        {
            Console.WriteLine("Before CommentBoxTests - TestCreateNewCommentForumAndComment");

            DnaTestURLRequest request = new DnaTestURLRequest("haveyoursay");
            request.SetCurrentUserNormal();

            // Setup the request url
            string uid = Guid.NewGuid().ToString();
            string title = "TestingCommentBox";
            string hosturl = "http://" + _server + "/dna/haveyoursay/acs";
            string url = "acswithoutapi?dnauid=" + uid + "&dnainitialtitle=" + title + "&dnahostpageurl=" + hosturl + "&dnaforumduration=0&skin=purexml";

            // now get the response
            request.RequestPage(url);

            // Check to make sure that the page returned with the correct information
            XmlDocument xml = request.GetLastResponseAsXML();
            DnaXmlValidator validator = new DnaXmlValidator(xml.InnerXml, _schemaUri);
            validator.Validate();

            Assert.IsTrue(xml.SelectSingleNode("/H2G2/COMMENTBOX") != null, "Comment box tag does not exist!");
            Assert.IsTrue(xml.SelectSingleNode("/H2G2/COMMENTBOX/ENDDATE") == null, "End date missing when specified!");
            Assert.IsTrue(xml.SelectSingleNode("/H2G2/COMMENTBOX/FORUMTHREADPOSTS[@UID='" + uid + "']") != null, "Forums uid does not matched the one used to create!");
            Assert.IsTrue(xml.SelectSingleNode("/H2G2/COMMENTBOX/FORUMTHREADPOSTS[@HOSTPAGEURL='" + hosturl + "']") != null, "Host url does not match the one used to create!");
            Assert.IsTrue(xml.SelectSingleNode("/H2G2/COMMENTBOX/FORUMTHREADPOSTS[@CANWRITE='1']") != null, "The forums can write flag should be set 1");

            // Now check to make sure we can post to the comment box
            request.RequestSecurePage("acswithoutapi?dnauid=" + uid + "&dnaaction=add&dnacomment=blahblahblah&dnahostpageurl=" + hosturl + "&skin=purexml");
            xml = request.GetLastResponseAsXML();
            validator = new DnaXmlValidator(xml.InnerXml, _schemaUri);
            validator.Validate();

            Assert.IsTrue(xml.SelectSingleNode("/H2G2/COMMENTBOX") != null, "Comment box tag does not exist!");
            Assert.IsTrue(xml.SelectSingleNode("/H2G2/COMMENTBOX/FORUMTHREADPOSTS").Attributes["FORUMPOSTCOUNT"].Value == "1", "The forum should have 1 post!");
            Assert.IsTrue(xml.SelectSingleNode("/H2G2/COMMENTBOX/FORUMTHREADPOSTS/POST") != null, "Failed to post a comment!!!");
            Assert.IsTrue(xml.SelectSingleNode("/H2G2/COMMENTBOX/FORUMTHREADPOSTS/POST[TEXT='blahblahblah']") != null, "Posted comment did not appear!!!");

            Console.WriteLine("After CommentBoxTests - TestCreateNewCommentForumAndComment");
        }