public API_HacmeBank adminSection()
        {
            var adminLink = "Admin Section";

            if (ie.hasLink(adminLink))
            {
                ie.click(adminLink);
            }
            else
            {
                "[API_HacmeBank][adminSection] could not find admin link: {0}".format(adminLink);
            }
            return(this);
        }
Exemplo n.º 2
0
        /// <summary>
        /// tries to find a link or button using the provided identified (<paramref name="linkOrButtonRef"/>) and click on it
        ///
        /// Returns the original watinIe object so that multiple clicks can be chained
        ///
        /// Returns null if the link or button was not found
        /// </summary>
        /// <param name="watinIe"></param>
        /// <param name="linkOrButtonRef"></param>
        /// <returns></returns>
        public static WatiN_IE click(this WatiN_IE watinIe, string linkOrButtonRef)
        {
            if (watinIe.isNull() || linkOrButtonRef.notValid())
            {
                return(watinIe);
            }
            if (watinIe.hasLink(linkOrButtonRef))
            {
                watinIe.link(linkOrButtonRef).click();
                return(watinIe);
            }
            if (watinIe.hasButton(linkOrButtonRef))
            {
                watinIe.button(linkOrButtonRef).click();
                return(watinIe);
            }

            "[WatiN_IE][click] could not find link or button with reference: {0}".error(linkOrButtonRef);
            return(null);
        }
        //Workflows
        [Test] public void Check_That_Links_With_NewLines_In_InnerText_Can_Still_Be_Found()
        {
            //fix and regression test for https://github.com/o2platform/FluentSharp/issues/3

            var simpleText = "this is inside the link";
            var linkText   = simpleText.lineBeforeAndAfter();

            assert_Size_Is(ie.links(), 0);

            ie.body().add_Link(linkText);

            assert_Size_Is(ie.links(), 1);

            var link = ie.link(simpleText);

            assert_Not_Null(link);

            assert_Are_Equal(link, ie.link(simpleText));
            assert_Are_Equal(link, ie.link(linkText));

            //a tipical example of this problem was with simple links with spaces (as shown in the example below)

            ie.body().add_Link("    Login   ");
            assert_Size_Is(ie.links(), 2);
            assert_Not_Null(ie.link("Login"));
            assert_Not_Null(ie.link("login"));
            assert_Not_Null(ie.link("LOGIN"));
            assert_Not_Null(ie.link("     Login"));
            assert_Not_Null(ie.link("     LOGIN"));

            assert_Is_True(ie.hasLink("Login"));
            assert_Is_True(ie.hasLink("login"));
            assert_Is_True(ie.hasLink("login"));
            assert_Is_True(ie.hasLink("     Login"));
            assert_Is_True(ie.hasLink("     LOGIN"));
            assert_Is_True(ie.hasLink("    Login   "));
        }
 public static WatiN_IE assert_Doesnt_Have_Link(this WatiN_IE watinIe, string linkId, string message = Extra_NUnit_Messages.ASSERT_DOESNT_HAVE_LINK)
 {
     watinIe.hasLink(linkId).assert_False(message.format(watinIe.url(), linkId));
     return(watinIe);
 }
Exemplo n.º 5
0
        public void Workflow_Install_And_Delete_Library()
        {
            Action <string, string> waitForElementText =
                (elementId, text) => {
                "waiting for '{0}' in element '{1}'".info(text, elementId);
                for (int i = 0; i < 5; i++)
                {
                    if (ie.element(elementId).text().contains(text))
                    {
                        return;
                    }
                    else
                    {
                        elementId.sleep(1000, true);
                    }
                }
                "could not find '{0}' in element '{1}'".error(text, elementId);
            };

            Action <string, string> login =
                (username, password) => {
                ie.open(server.append("login"));
                ie.url().assert_Contains("Login");
                ie.field("username").value(username);
                ie.field("password").value(password);
                ie.button("login").click();
            };
            Action logout     = () => ie.open(server.append("logout"));
            Action teamMentor = () => {
                ie.open(server.append("teamMentor"));
                ie.waitForLink("About");
            };
            Action admin = () => ie.open(server.append("admin"));

            Action login_AsAdmin = () => {
                if (ie.hasLink("Control Panel").isFalse())
                {
                    logout();
                    login(admin_Name, admin_Pwd);
                    ie.waitForLink("About", 250, 20).assert_Not_Null();
                    ie.waitForLink("Logout").assert_Not_Null();
                    //teamMentor();
                }
            };
            Action installTestLibrary =
                () => {
                admin();
                ie.waitForComplete();
                ie.waitForLink("advanced admin tools").click().assert_Not_Null();
                ie.waitForLink("install/upload libraries").click().assert_Not_Null();;
                ie.waitForLink("OWASP").click().assert_Not_Null();
                ie.button("Install").click().assert_Not_Null();
                waitForElementText("installMessage", "> Library installed was successful");
                ie.link("Admin Tasks").click().assert_Not_Null();
                waitForElementText("jsonResult", "...Via Proxy");
                ie.link("Reload Server Cache").click().assert_Not_Null();
                waitForElementText("jsonResult", "In the Folder");
                ie.link("Open Main Page").click().assert_Not_Null();;
                //ie.waitForLink("Reload Server Cache").click();
            };
            Action deleteTestLibrary =
                () => {
                ie.waitForLink("OWASP").notNull().assert_True();

                var librariesBeforeRemove = ie.getJsVariable("window.TM.WebServices.Data.AllLibraries.length").cast <int>();

                ie.eval("window.TM.Gui.LibraryTree.remove_Library_from_Database('4738d445-bc9b-456c-8b35-a35057596c16')");

                for (var i = 0; i < 5; i++)
                {
                    if (ie.getJsVariable("window.TM.WebServices.Data.AllLibraries.length").cast <int>() < librariesBeforeRemove)
                    {
                        return;
                    }
                    else
                    {
                        100.sleep();
                    }
                }

                "Library was not deleted".assert_Fail();
            };

            teamMentor();
            login_AsAdmin();
            //ie.script_IE_WaitForClose();
            installTestLibrary();
            deleteTestLibrary();

            ie.hasLink("OWASP").assert_False();
        }