Пример #1
0
        public void ParseRankingTest1() 
        {
            string temp_directory_path = TestUtility.TestData[TestUtility.KEY_TEMP_DIRECTORY];

            TestUtility.EnsureLogin(network_);

            DirectoryInfo temp_directory = new DirectoryInfo(temp_directory_path);

            Assert.That(TestUtility.InitDirectory(temp_directory), Is.True, "ParseRankingTest1-1");

            DownloadKind kind = new DownloadKind();
            kind.SetDuration(false, false, true, false, false);
            CategoryItem categoryItem = new CategoryItem();
            categoryItem.id = "music";
            categoryItem.short_name = "mus";
            categoryItem.name = "音楽";
            categoryItem.page = new int[] { 3, 1, 1, 1, 0 };
            List<CategoryItem> categoryList = new List<CategoryItem>();
            categoryList.Add(categoryItem);
            kind.CategoryList = categoryList;
            kind.SetTarget(true, true, true);
            kind.SetFormat(DownloadKind.FormatKind.Html);

            NicoNetwork.NetworkWaitDelegate onWait = delegate(string message, int current, int total)
            {
                TestUtility.Message("({0}/{1}){2}", current, total, message);
                TestUtility.Wait();
            };

            TestUtility.Message("Running ParseRankingTest1.");
            network_.DownloadRanking(temp_directory.FullName, kind, onWait);

            NicoListManager.ParseRankingKind parse_ranking_kind;
            List<Video> video_list;

            try
            {
                parse_ranking_kind = NicoListManager.ParseRankingKind.TotalPoint;
                video_list = NicoListManager.ParseRanking(temp_directory.FullName, DateTime.Now, parse_ranking_kind);
                Assert.Fail("ParseRankingTest1-2");
            }
            catch (InvalidOperationException e)
            {
                TestUtility.Message(e.Message);
            }

            parse_ranking_kind = NicoListManager.ParseRankingKind.TermPoint;
            video_list = NicoListManager.ParseRanking(temp_directory.FullName, DateTime.Now, parse_ranking_kind);
            Assert.That(video_list.Count, Is.GreaterThan(0), "ParseRankingTest1-3");
        }
Пример #2
0
        public void MylistTest()
        {
            int wait_millisecond = int.Parse(TestUtility.TestData[TestUtility.KEY_ACCESS_WAIT_MILLISECONDS]);

            string timestamp = DateTime.Now.ToString("yyyyMMddHHmmssfff");
            string video_id1 = "sm9";
            string video_id2 = "sm1097445";

            // {"id":(?<mylist_id>\d+),"status":"ok"}
            Regex mylist_id_regex = new Regex("{\"id\":(?<mylist_id>\\d+),\"status\":\"ok\"}");

            TestUtility.EnsureLogin(network_);

            string mylist_id1 = null;
            string mylist_id2 = null;
            string mylist_id3 = null;
            string token      = null;

            bool test_succeeded = false;

            try
            {
                // ()
                // -> (mylist1())

                TestUtility.Message("Running MylistTest - Create new mylist");
                string mylist_title1 = "まいりすと_1_" + timestamp;
                string result        = network_.MakeNewMylistGroup(mylist_title1);
                TestUtility.Message(result);
                Assert.That(result, Text.Contains("\"status\":\"ok\""), "MylistTest1-1");
                mylist_id1 = mylist_id_regex.Match(result).Groups["mylist_id"].Value;
                string str = network_.GetMylistHtml(mylist_id1, true);
                Assert.That(str, Text.Contains(mylist_title1), "MylistTest1-2");


                TestUtility.Wait(5);

                // (mylist1())
                // -> (mylist1() mylist2())

                TestUtility.Message("Running MylistTest - Create new mylist with token");
                string mylist_title2  = "マイリスト_2_" + timestamp;
                string my_mylist_page = network_.GetMylistPageFromMyPage();
                token  = Regex.Match(my_mylist_page, "NicoAPI.token = \"([-0-9a-f]+)\";").Groups[1].Value;
                result = network_.MakeNewMylistGroup(mylist_title2, token);
                TestUtility.Message(result);
                Assert.That(result, Text.Contains("\"status\":\"ok\""), "MylistTest2-1");
                mylist_id2 = mylist_id_regex.Match(result).Groups["mylist_id"].Value;
                str        = network_.GetMylistHtml(mylist_id2, true);
                Assert.That(str, Text.Contains(mylist_title2), "MylistTest2-2");


                TestUtility.Wait(5);

                // (mylist1() mylist2())
                // -> (*mylist1() mylist2())

                TestUtility.Message("Running MylistTest - Update mylist information");
                bool mylist_visibility1 = false;
                mylist_title1 = mylist_title1 + "_mod";
                string mylist_description1 = Guid.NewGuid().ToString() + "テスト";
                int    mylist_order1       = 16;
                int    mylist_color1       = 3;
                result = network_.UpdateMylistGroup(mylist_id1, mylist_visibility1, mylist_title1, mylist_description1, mylist_order1, mylist_color1);
                TestUtility.Message(result);
                Assert.That(result, Is.EqualTo("{\"status\":\"ok\"}"), "MylistTest3-1");
                str = network_.GetMylistHtml(mylist_id1, true);
                Assert.That(str, Text.Contains(mylist_description1), "MylistTest3-2");



                TestUtility.Wait(5);

                // (*mylist1() mylist2())
                // -> (*mylist1() *mylist2())

                TestUtility.Message("Running MylistTest - Update mylist information with token");
                bool mylist_visibility2 = false;
                mylist_title2 = mylist_title2 + "_mod";
                string mylist_description2 = Guid.NewGuid().ToString() + "テスト";
                int    mylist_order2       = 15;
                int    mylist_color2       = 2;
                result = network_.UpdateMylistGroup(mylist_id2, mylist_visibility2, mylist_title2, mylist_description2, mylist_order2, mylist_color2, token);
                TestUtility.Message(result);
                Assert.That(result, Is.EqualTo("{\"status\":\"ok\"}"), "MylistTest4-1");
                str = network_.GetMylistHtml(mylist_id2, true);
                Assert.That(str, Text.Contains(mylist_description2), "MylistTest4-2");

                TestUtility.Wait(5);

                // (*mylist1() *mylist2())
                // -> (*mylist1() *mylist2() *mylist3())

                TestUtility.Message("Running MylistTest - Create mylist with mylist information");
                bool   mylist_visibility3  = false;
                string mylist_title3       = "᧠᧡᧢᧣᧥᧥᧼_3_" + timestamp;
                string mylist_description3 = Guid.NewGuid().ToString() + "テスト";
                int    mylist_order3       = 17;
                int    mylist_color3       = 4;
                result = network_.MakeNewAndUpdateMylistGroup(mylist_visibility3, mylist_title3, mylist_description3, mylist_order3, mylist_color3, out mylist_id3);
                TestUtility.Message(result);
                Assert.That(result, Text.Contains("\"status\":\"ok\""), "MylistTest5-1");
                str = network_.GetMylistHtml(mylist_id3, true);
                Assert.That(str, Text.Contains(mylist_description3), "MylistTest5-2");

                TestUtility.Wait(5);

                // (*mylist1() *mylist2() *mylist3())
                // -> (*mylist1(video1) *mylist2() *mylist3())

                TestUtility.Message("Running MylistTest - Add video to mylist");
                result = network_.AddMylist(mylist_id1, video_id1);
                TestUtility.Message(result);
                Assert.That(result, Is.EqualTo("{\"status\":\"ok\"}"), "MylistTest6-1");
                str = network_.GetMylistHtml(mylist_id1, true);
                Assert.That(str, Text.Contains(video_id1), "MylistTest6-2");

                TestUtility.Wait(5);

                // (*mylist1(video1) *mylist2() *mylist3())
                // -> (*mylist1(video1,video2) *mylist2() *mylist3())

                TestUtility.Message("Running MylistTest - Add video to mylist with token");
                result = network_.AddMylist(mylist_id1, video_id2);
                TestUtility.Message(result);
                Assert.That(result, Is.EqualTo("{\"status\":\"ok\"}"), "MylistTest7-1");
                str = network_.GetMylistHtml(mylist_id1, true);
                Assert.That(str, Text.Contains(video_id2), "MylistTest7-2");

                TestUtility.Wait(5);

                // (*mylist1(video1,video2) *mylist2() *mylist3())
                // -> (*mylist1(*video1,*video2) *mylist2() *mylist3())

                TestUtility.Message("Running MylistTest - Update description of videos in mylist");
                List <string> video_id_list = new List <string>();
                video_id_list.Add(video_id1);
                video_id_list.Add(video_id2);
                List <string> description_list   = new List <string>();
                string        video_description1 = Guid.NewGuid().ToString();
                string        video_description2 = Guid.NewGuid().ToString();
                description_list.Add(video_description1);
                description_list.Add(video_description2);
                network_.UpdateMylistDescription(mylist_id1, video_id_list, description_list, wait_millisecond);
                str = network_.GetMylistHtml(mylist_id1, true);
                Assert.That(str, Text.Contains(video_description1), "MylistTest8-1");
                Assert.That(str, Text.Contains(video_description2), "MylistTest8-2");


                TestUtility.Wait(5);

                // (*mylist1(*video1,*video2) *mylist2() *mylist3())
                // -> (*mylist1(**video1,**video2) *mylist2() *mylist3())

                TestUtility.Message("Running MylistTest - Update description of videos in mylist with delegate");
                description_list   = new List <string>();
                video_description1 = Guid.NewGuid().ToString();
                video_description2 = Guid.NewGuid().ToString();
                description_list.Add(video_description1);
                description_list.Add(video_description2);
                NicoNetwork.NetworkWaitDelegate on_wait = delegate(string message, int current, int total)
                {
                    TestUtility.Message("{0}({1}/{2})", message, current, total);
                };
                network_.UpdateMylistDescription(mylist_id1, video_id_list, description_list, on_wait);
                str = network_.GetMylistHtml(mylist_id1, true);
                Assert.That(str, Text.Contains(video_description1), "MylistTest9-1");
                Assert.That(str, Text.Contains(video_description2), "MylistTest9-2");

                TestUtility.Wait(5);

                // (*mylist1(*video1,*video2) *mylist2() *mylist3())
                // -> (*mylist1(**video1,**video2) *mylist2() *mylist3())

                TestUtility.Message("Running MylistTest - Add same video.");
                try
                {
                    result = network_.AddMylist(mylist_id1, video_id1);
                    TestUtility.Message(result);
                    Assert.Fail("MylistTest10-1");
                }
                catch (NiconicoAddingMylistExistException e)
                {
                    TestUtility.Message(e.ToString());
                }

                TestUtility.Wait(5);

                TestUtility.Message("Running MylistTest - Fetch my mylist information.");
                List <MylistInfo> mylist_info_list = network_.GetMylistInfoListFromMypage();
                // mylist1, mylist2, mylist3, mylist_id
                Assert.That(mylist_info_list.Count, Is.GreaterThanOrEqualTo(4), "MylistTest10-1");
                MylistInfo mylist_info1 = mylist_info_list.Find(delegate(MylistInfo mi) { return(mi.mylist_id == mylist_id1); });
                Assert.That(mylist_info1, Is.Not.Null, "MylistTest10-2");
                Assert.That(mylist_info1.description, Is.EqualTo(mylist_description1), "MylistTest10-3");
                Assert.That(mylist_info1.is_public, Is.EqualTo(mylist_visibility1), "MylistTest10-4");
                //TODO Assert.That(mylist_info1.number_of_item, Is.EqualTo(2), "MylistTest10-5");
                Assert.That(mylist_info1.title, Is.EqualTo(mylist_title1), "MylistTest10-6");
                MylistInfo mylist_info2 = mylist_info_list.Find(delegate(MylistInfo mi) { return(mi.mylist_id == mylist_id2); });
                Assert.That(mylist_info2, Is.Not.Null, "MylistTest10-2");
                Assert.That(mylist_info2.description, Is.EqualTo(mylist_description2), "MylistTest10-7");
                Assert.That(mylist_info2.is_public, Is.EqualTo(mylist_visibility2), "MylistTest10-8");
                //TODO Assert.That(mylist_info2.number_of_item, Is.EqualTo(0), "MylistTest10-9");
                Assert.That(mylist_info2.title, Is.EqualTo(mylist_title2), "MylistTest10-10");
                MylistInfo mylist_info3 = mylist_info_list.Find(delegate(MylistInfo mi) { return(mi.mylist_id == mylist_id3); });
                Assert.That(mylist_info3, Is.Not.Null, "MylistTest10-11");
                Assert.That(mylist_info3.description, Is.EqualTo(mylist_description3), "MylistTest10-12");
                Assert.That(mylist_info3.is_public, Is.EqualTo(mylist_visibility3), "MylistTest10-13");
                //TODO Assert.That(mylist_info3.number_of_item, Is.EqualTo(0), "MylistTest10-14");
                Assert.That(mylist_info3.title, Is.EqualTo(mylist_title3), "MylistTest10-15");


                // TODO Move video.
                // (*mylist1(**video1,**video2) *mylist2() *mylist3())
                // -> (*mylist1(**video2) *mylist2(**video1) *mylist3())

                // TODO Copy video.
                // (*mylist1(**video2) *mylist2(**video1) *mylist3())
                // -> (*mylist1(**video2) *mylist2(**video1, **video2) *mylist3())

                // TODO Delete video.
                // (*mylist1(**video2) *mylist2(**video1, **video2) *mylist3())
                // -> (*mylist1() *mylist2(**video1, **video2) *mylist3())

                test_succeeded = true;
            }
            finally
            {
                bool delete_succeeded = true;

                if (token == null)
                {
                    string my_mylist_page = network_.GetMylistPageFromMyPage();
                    token = Regex.Match(my_mylist_page, "NicoAPI.token = \"([-0-9a-f]+)\";").Groups[1].Value;
                }

                if (!string.IsNullOrEmpty(mylist_id1))
                {
                    // (*mylist1() *mylist2(**video1, **video2) *mylist3())
                    // -> (*mylist2(**video1, **video2) *mylist3())
                    try
                    {
                        TestUtility.Wait(5);
                        TestUtility.Message("Running MylistTest - Delete mylist1");
                        string result = RemoveMylistGroup(network_, mylist_id1, token);
                        TestUtility.Message(result);
                        Assert.That(result, Text.Contains("\"status\":\"ok\""), "MylistTestI-1");
                    }
                    catch (Exception e)
                    {
                        delete_succeeded = false;
                        TestUtility.Message(e.ToString());
                    }
                }

                if (!string.IsNullOrEmpty(mylist_id2))
                {
                    // (*mylist2(**video1, **video2) *mylist3())
                    // -> (*mylist3())
                    try
                    {
                        TestUtility.Wait(5);
                        TestUtility.Message("Running MylistTest - Delete mylist2");
                        string result = RemoveMylistGroup(network_, mylist_id2, token);
                        TestUtility.Message(result);
                        Assert.That(result, Text.Contains("\"status\":\"ok\""), "MylistTestII-1");
                    }
                    catch (Exception e)
                    {
                        delete_succeeded = false;
                        TestUtility.Message(e.ToString());
                    }
                }

                if (!string.IsNullOrEmpty(mylist_id3))
                {
                    // (*mylist3())
                    // -> ()
                    try
                    {
                        TestUtility.Wait(5);
                        TestUtility.Message("Running MylistTest - Delete mylist3");
                        string result = RemoveMylistGroup(network_, mylist_id3, token);
                        TestUtility.Message(result);
                        Assert.That(result, Text.Contains("\"status\":\"ok\""), "MylistTestIII-1");
                    }
                    catch (Exception e)
                    {
                        delete_succeeded = false;
                        TestUtility.Message(e.ToString());
                    }
                }

                if (test_succeeded && !delete_succeeded)
                {
                    Assert.Fail("MylistTest delete");
                }
            }
        }
Пример #3
0
        public void DownloadRankingTest()
        {
            string temp_directory_path = TestUtility.TestData[TestUtility.KEY_TEMP_DIRECTORY];

            TestUtility.EnsureLogin(network_);

            DirectoryInfo temp_directory = new DirectoryInfo(temp_directory_path);

            Assert.That(TestUtility.InitDirectory(temp_directory), Is.True, "DownloadRankingTest1");

            DownloadKind kind         = new DownloadKind();
            CategoryItem categoryItem = new CategoryItem();

            categoryItem.id         = "music";
            categoryItem.short_name = "mus";
            categoryItem.name       = "音楽";
            categoryItem.page       = new int[] { 3, 1, 1, 1, 0 };
            List <CategoryItem> categoryList = new List <CategoryItem>();

            categoryList.Add(categoryItem);
            kind.CategoryList = categoryList;
            kind.SetTarget(true, true, true);
            kind.SetDuration(false, false, true, false, false);
            kind.SetFormat(DownloadKind.FormatKind.Rss);

            NicoNetwork.NetworkWaitDelegate onWait = delegate(string message, int current, int total)
            {
                TestUtility.Message("({0}/{1}){2}", current, total, message);
                TestUtility.Wait();
            };

            TestUtility.Message("Running DownloadRankingTest2.");
            network_.DownloadRanking(temp_directory.FullName, kind, onWait);

            List <string> name_list     = null;
            List <string> filename_list = new List <string>();

            kind.GetRankingNameList(ref name_list, ref filename_list);
            string[] downloaded_files = Directory.GetFiles(temp_directory.FullName, "*", SearchOption.AllDirectories);
            int      i = 0;

            foreach (string filename in filename_list)
            {
                i++;
                bool result = Array.Exists <string>(downloaded_files, delegate(string downloaded_file)
                {
                    return(Path.GetFileName(downloaded_file).StartsWith(filename));
                });
                Assert.That(result, Is.True, string.Format("DownloadRankingTest2-{0}", i));
            }
            i = 0;
            foreach (string downloaded_file in downloaded_files)
            {
                i++;
                bool result = filename_list.Exists(delegate(string filename)
                {
                    return(Path.GetFileName(downloaded_file).StartsWith(filename));
                });
                Assert.That(result, Is.True, string.Format("DownloadRankingTest3-{0}", i));
            }

            i = 0;
            foreach (string downloaded_file in downloaded_files)
            {
                i++;
                TestUtility.IsValidXml(downloaded_file);
            }
        }