Exemple #1
0
        public void TestGetModel()
        {
            ContentObject co = FedoraControl.AddDefaultObject();

            try
            {
                string urlTemplate = _baseUrl + "/" + co.PID + "/format/{0}?ID=" + _apiKey;

                //Test each of the content types
                string[] contentTypes = { "json", "dae", "fbx", "obj", "3ds", "o3dtgz" /*, "original" */ };

                using (WebClient client = new WebClient())
                {
                    foreach (string type in contentTypes)
                    {
                        byte[] data = client.DownloadData(String.Format(urlTemplate, type));
                        Assert.Greater(data.Length, 0);
                    }
                }
            }
            finally
            {
                new DataAccessFactory().CreateDataRepositorProxy().DeleteContentObject(co);
            }
        }
Exemple #2
0
        public void TestGetTexture()
        {
            ContentObject co      = FedoraControl.AddDefaultObject();
            string        url     = String.Format("{0}/{1}/Textures/ak47_dif.png?ID={2}", _baseUrl, co.PID, _apiKey),
                          texPath = ConfigurationManager.AppSettings["ContentPath"] + "\\Preconverted\\ak47_dif.png";

            Assert.True(testGetData(url, texPath));
        }
Exemple #3
0
        public void TestReviews()
        {
            ContentObject co = FedoraControl.AddDefaultObject();

            try
            {
                List <vwar.service.host.Review> createdReviews = new List <vwar.service.host.Review>();
                createdReviews.Add(FedoraControl.CreateReview(co, 3, "*****@*****.**", "pretty cool"));

                string url = String.Format(_baseUrl + "/{0}/Reviews/json?id={1}", co.PID, _apiKey);

                //Check for single review
                List <vwar.service.host.Review> retrievedReviews = _serializer.Deserialize <List <vwar.service.host.Review> >(getRawJSON(url));

                Assert.AreEqual(retrievedReviews.Count, 1);
                Assert.AreEqual(retrievedReviews[0].Rating, createdReviews[0].Rating);
                Assert.AreEqual(retrievedReviews[0].ReviewText, createdReviews[0].ReviewText);
                Assert.AreEqual(retrievedReviews[0].Submitter, createdReviews[0].Submitter);

                //Check for multiple reviews
                createdReviews.Add(FedoraControl.CreateReview(co, 2, "*****@*****.**", "not very good"));
                createdReviews.Add(FedoraControl.CreateReview(co, 4, "*****@*****.**", "very good"));

                //get the reviews again
                retrievedReviews = _serializer.Deserialize <List <vwar.service.host.Review> >(getRawJSON(url));

                bool found = false;
                //Someone please implement a Find predicate, I am lazy
                foreach (vwar.service.host.Review cr in createdReviews)
                {
                    found = false;
                    foreach (vwar.service.host.Review rr in retrievedReviews)
                    {
                        if (cr.Submitter == rr.Submitter &&
                            cr.ReviewText == rr.ReviewText &&
                            cr.Rating == rr.Rating)
                        {
                            found = true;
                            break;
                        }
                    }

                    if (!found)
                    {
                        break;
                    }
                }

                Assert.True(found);
            }
            finally
            {
                new DataAccessFactory().CreateDataRepositorProxy().DeleteContentObject(co);
            }
        }
Exemple #4
0
        public void TestSearch()
        {
            ContentObject co = FedoraControl.AddRandomObject();

            try
            {
                List <string> terms = new List <string> {
                    co.Title, co.Description
                };
                foreach (string keyword in co.Keywords.Split(','))
                {
                    terms.Add(keyword);
                }

                foreach (string term in terms)
                {
                    Assert.True(httpSearch(term, co));
                }

                //Alter the search terms to partials
                Random r = new Random();
                for (int i = 0; i < terms.Count; i++)
                {
                    terms[i] = terms[i].Substring(0, r.Next(terms[i].Length));
                }

                //Test single term search, partial match
                foreach (string term in terms)
                {
                    Assert.True(httpSearch(term, co));
                }

                //Test multiple term search
                Assert.True(httpSearch(String.Join(",", terms), co));
            }
            finally
            {
                //delete the content object out of the system to maintain test atomicity
                new DataAccessFactory().CreateDataRepositorProxy().DeleteContentObject(co);
            }
        }
Exemple #5
0
        private bool testGetData(string url, string path)
        {
            ContentObject co = FedoraControl.AddDefaultObject();

            try
            {
                string clientMD5 = MD5(File.ReadAllBytes(path)),
                       serverMD5 = "";

                using (WebClient client = new WebClient())
                {
                    byte[] data = client.DownloadData(String.Format(url, co.PID));
                    serverMD5 = MD5(data);
                }

                return(clientMD5.Equals(serverMD5));
            }
            finally
            {
                new DataAccessFactory().CreateDataRepositorProxy().DeleteContentObject(co);
            }
        }
Exemple #6
0
        public void TestSupportingFile()
        {
            ContentObject co = FedoraControl.AddDefaultObject();

            string filepath = ConfigurationManager.AppSettings["ContentPath"] + "\\Preconverted\\test.o3d";

            using (FileStream fs = new FileStream(filepath, FileMode.Open))
            {
                new DataAccessFactory().CreateDataRepositorProxy().AddSupportingFile(fs, co, "test.o3d", "this is a test description");
            }
            string clientMD5 = MD5(File.ReadAllBytes(filepath)),
                   serverMD5;

            string url = String.Format("{0}/{1}/SupportingFiles/test.o3d?ID={2}", _baseUrl, co.PID, _apiKey);

            using (WebClient client = new WebClient())
            {
                byte[] data = client.DownloadData(url);
                serverMD5 = MD5(data);
            }

            Assert.AreEqual(clientMD5, serverMD5);
        }
Exemple #7
0
        public void TestMetadata()
        {
            ContentObject co = FedoraControl.AddDefaultObject();

            try
            {
                string url = String.Format(_baseUrl + "/{0}/Metadata/json?id={1}", co.PID, _apiKey);

                Metadata metadata = _serializer.Deserialize <Metadata>(getRawJSON(url));

                Assert.AreEqual(co.ArtistName, metadata.ArtistName);
                Assert.AreEqual(co.AssetType, metadata.AssetType);
                Assert.AreEqual(co.Description, metadata.Description);
                Assert.AreEqual(co.DeveloperName, metadata.DeveloperName);
                Assert.AreEqual(co.Downloads.ToString(), metadata.Downloads);
                Assert.AreEqual(co.Format, metadata.Format);
                Assert.AreEqual(co.Keywords, metadata.Keywords);
                Assert.AreEqual(co.MissingTextures, metadata.MissingTextures);
                Assert.AreEqual(co.NumPolygons.ToString(), metadata.NumPolygons);
                Assert.AreEqual(co.NumTextures.ToString(), metadata.NumTextures);
                Assert.AreEqual(co.PID, metadata.PID);
                Assert.AreEqual(co.Revision.ToString(), metadata.Revision);
                Assert.AreEqual(co.SponsorName, metadata.SponsorName);
                Assert.AreEqual(co.SupportingFiles, metadata.SupportingFiles);
                Assert.AreEqual(co.TextureReferences, metadata.TextureReferences);
                Assert.AreEqual(co.Title, metadata.Title);
                Assert.AreEqual(co.NumberOfRevisions.ToString(), metadata.TotalRevisions);
                Assert.AreEqual(co.UnitScale, metadata.UnitScale);
                Assert.AreEqual(co.UpAxis, metadata.UpAxis);
                Assert.AreEqual(co.UploadedDate.ToString(), metadata.UploadedDate);
                Assert.AreEqual(co.Views.ToString(), metadata.Views);
            }
            finally
            {
                new DataAccessFactory().CreateDataRepositorProxy().DeleteContentObject(co);
            }
        }
Exemple #8
0
        public void TestChangeAllFields()
        {
            if (!UserLoggedIn)
            {
                Login();
            }
            ContentObject testCO = FedoraControl.AddDefaultObject();

            selenium.Open("/Users/Edit.aspx?ContentObjectID=" + testCO.PID);
            selenium.WaitForPageToLoad("30000");

            driver.FindElement(By.Id("ctl00_ContentPlaceHolder1_EditControl_TitleTextBox")).SendKeys(EditDefaults.Title);
            driver.FindElement(By.Id("ctl00_ContentPlaceHolder1_EditControl_ContentFileUpload")).SendKeys(editedContentPath + EditDefaults.FileName);
            driver.FindElement(By.Id("ctl00_ContentPlaceHolder1_EditControl_RequireResubmitCheckbox")).Click();
            driver.FindElement(By.Id("ctl00_ContentPlaceHolder1_EditControl_DeveloperLogoRadioButtonList_1")).Click();
            System.Threading.Thread.Sleep(5000);
            driver.FindElement(By.Id("ctl00_ContentPlaceHolder1_EditControl_DeveloperLogoFileUpload")).SendKeys(editedContentPath + EditDefaults.DevlogoName);
            driver.FindElement(By.Id("ctl00_ContentPlaceHolder1_EditControl_DeveloperNameTextBox")).SendKeys(EditDefaults.DeveloperName);
            driver.FindElement(By.Id("ctl00_ContentPlaceHolder1_EditControl_ArtistNameTextBox")).SendKeys(EditDefaults.ArtistName);
            driver.FindElement(By.Id("ctl00_ContentPlaceHolder1_EditControl_SponsorLogoRadioButtonList_1")).Click();
            System.Threading.Thread.Sleep(5000);
            driver.FindElement(By.Id("ctl00_ContentPlaceHolder1_EditControl_SponsorLogoFileUpload")).SendKeys(editedContentPath + EditDefaults.SponsorlogoName);
            driver.FindElement(By.Id("ctl00_ContentPlaceHolder1_EditControl_SponsorNameTextBox")).SendKeys(EditDefaults.SponsorName);
            driver.FindElement(By.Id("ctl00_ContentPlaceHolder1_EditControl_DescriptionTextBox")).SendKeys(EditDefaults.Description);
            driver.FindElement(By.Id("ctl00_ContentPlaceHolder1_EditControl_MoreInformationURLTextBox")).SendKeys(EditDefaults.DevUrl);

            //Delete the text in the textbox and replace it with the new tags
            selenium.GetEval("window.jQuery('#ctl00_ContentPlaceHolder1_EditControl_KeywordsTextBox').val('')");
            driver.FindElement(By.Id("ctl00_ContentPlaceHolder1_EditControl_KeywordsTextBox")).SendKeys(EditDefaults.Tags);

            driver.FindElement(By.Id("ctl00_ContentPlaceHolder1_EditControl_Step1NextButton")).Click();
            selenium.WaitForPageToLoad("1200000");


            driver.FindElement(By.Id("ctl00_ContentPlaceHolder1_EditControl_ValidationViewSubmitButton")).Click();
            selenium.WaitForPageToLoad("1200000");

            IDataRepository dal     = new DataAccessFactory().CreateDataRepositorProxy();
            ContentObject   newCO   = dal.GetContentObjectById(testCO.PID, false);
            Exception       rethrow = null;

            try
            {
                Assert.True(newCO.Title == EditDefaults.Title);
                Assert.True(newCO.Keywords == EditDefaults.Tags.Replace(" ", ""));
                Assert.True(newCO.Description == EditDefaults.Description);
                Assert.True(newCO.ArtistName == EditDefaults.ArtistName);
                Assert.True(newCO.DeveloperName == EditDefaults.DeveloperName);
                Assert.True(newCO.MoreInformationURL == EditDefaults.DevUrl);

                //TODO: Determine if this is desired or non-desired behavior
                //string newfilename_base = EditDefaults.Title.ToLower().Replace(' ', '_') + ".zip";
                //Assert.True(newCO.OriginalFileName == "original_" + newfilename_base);
                //Assert.True(newCO.Location == newfilename_base);
                //Assert.True(newCO.DisplayFile == newfilename_base.Replace(".zip", ".o3d"));
            }
            catch (Exception e) {
                rethrow = e;
            }
            finally
            {
                dal.DeleteContentObject(newCO);
                //We have to rethrow to let NUnit know the test failed
                if (rethrow != null)
                {
                    throw rethrow;
                }
            }
        }