Example #1
0
        public WxePostBackInCompletionDetectionStrategy([NotNull] PageObjectContext context, int expectedWxePostBackSequenceNumberIncrease)
        {
            ArgumentUtility.CheckNotNull("context", context);

            _context = context;
            _expectedWxePostBackSequenceNumberIncrease = expectedWxePostBackSequenceNumberIncrease;
        }
        private static string GetPageTitle([NotNull] PageObjectContext context)
        {
            // Note: do not use page.GetTitle() instead, it may be specifically overloaded for a certain type of page which is not yet fully loaded!

            ArgumentUtility.CheckNotNull("context", context);

            return(context.Scope.FindCss("title").InnerHTML);
        }
        /// <inheritdoc/>
        public void WaitForCompletion(PageObjectContext context, object state)
        {
            ArgumentUtility.CheckNotNull("context", context);
            ArgumentUtility.CheckNotNull("state", state);

            var oldWxeFunctionToken = (string)state;

            WxeCompletionDetectionHelpers.WaitForNewWxeFunctionToken(s_log, _context, oldWxeFunctionToken);

            const int expectedWxePostBackSequenceNumber = 2;

            WxeCompletionDetectionHelpers.WaitForExpectedWxePostBackSequenceNumber(s_log, _context, expectedWxePostBackSequenceNumber);
        }
Example #4
0
        /// <inheritdoc/>
        public void WaitForCompletion(PageObjectContext context, object state)
        {
            ArgumentUtility.CheckNotNull("context", context);
            ArgumentUtility.CheckNotNull("state", state);

            var oldWxePostBackSequenceNumber = (int)state;

            WxeCompletionDetectionHelpers.WaitForExpectedWxePostBackSequenceNumber(
                s_log,
                _context,
                oldWxePostBackSequenceNumber,
                _expectedWxePostBackSequenceNumberIncrease);
        }
Example #5
0
        /// <inheritdoc/>
        public void WaitForCompletion(PageObjectContext context, object state)
        {
            var states = (List <object>)state;

            Assertion.IsNotNull(states, "The state should never be null - developer error.");

            var stragiesWithState = _strategies.Zip(states, (s, ss) => new { Strategy = s, State = ss });

            foreach (var strategyWithState in stragiesWithState)
            {
                strategyWithState.Strategy.WaitForCompletion(context, strategyWithState.State);
            }
        }
Example #6
0
        /// <inheritdoc/>
        public object PrepareWaitForCompletion(PageObjectContext context)
        {
            var states = new List <object>();

            // ReSharper disable once LoopCanBeConvertedToQuery
            foreach (var strategy in _strategies)
            {
                var state = strategy.PrepareWaitForCompletion(context);
                states.Add(state);
            }

            return(states);
        }
        /// <summary>
        /// Waits for the WXE function token to change from <paramref name="oldWxeFunctionToken"/> to a new function token.
        /// </summary>
        public static void WaitForNewWxeFunctionToken([NotNull] ILog log, [NotNull] PageObjectContext context, [NotNull] string oldWxeFunctionToken)
        {
            ArgumentUtility.CheckNotNull("log", log);
            ArgumentUtility.CheckNotNull("context", context);
            ArgumentUtility.CheckNotNullOrEmpty("oldWxeFunctionToken", oldWxeFunctionToken);

            log.DebugFormat("State: previous WXE-FT: {0}.", oldWxeFunctionToken);
            log.DebugFormat("Parameters: window: '{0}' scope: '{1}'.", context.Window.Title, GetPageTitle(context));

            context.Window.Query(() => GetWxeFunctionToken(context) != oldWxeFunctionToken, true);

            Assertion.IsTrue(
                GetWxeFunctionToken(context) != oldWxeFunctionToken,
                string.Format("Expected WXE-FT to be different to '{0}', but it is equal.", oldWxeFunctionToken));
        }
        /// <summary>
        /// Waits for the WXE postback sequence number in the given <paramref name="context"/> to increase from
        /// <paramref name="oldWxePostBackSequenceNumber"/> by <paramref name="expectedWxePostBackSequenceNumberIncrease"/>.
        /// </summary>
        public static void WaitForExpectedWxePostBackSequenceNumber(
            [NotNull] ILog log,
            [NotNull] PageObjectContext context,
            int oldWxePostBackSequenceNumber,
            int expectedWxePostBackSequenceNumberIncrease)
        {
            ArgumentUtility.CheckNotNull("log", log);
            ArgumentUtility.CheckNotNull("context", context);

            var expectedWxePostBackSequenceNumber = oldWxePostBackSequenceNumber + expectedWxePostBackSequenceNumberIncrease;

            log.DebugFormat("State: previous WXE-PSN: {0}, expected WXE-PSN: {1}.", oldWxePostBackSequenceNumber, expectedWxePostBackSequenceNumber);

            WaitForExpectedWxePostBackSequenceNumber(log, context, expectedWxePostBackSequenceNumber);
        }
        /// <summary>
        /// Waits for the WXE postback sequence number in the given <paramref name="context"/> to reach the
        /// <paramref name="expectedWxePostBackSequenceNumber"/>.
        /// </summary>
        public static void WaitForExpectedWxePostBackSequenceNumber(
            [NotNull] ILog log,
            [NotNull] PageObjectContext context,
            int expectedWxePostBackSequenceNumber)
        {
            ArgumentUtility.CheckNotNull("log", log);
            ArgumentUtility.CheckNotNull("context", context);

            log.DebugFormat("Parameters: window: '{0}' scope: '{1}'.", context.Window.Title, GetPageTitle(context));

            var newWxePostBackSequenceNumber = context.Window.Query(
                () => GetWxePostBackSequenceNumber(context),
                expectedWxePostBackSequenceNumber);

            Assertion.IsTrue(
                newWxePostBackSequenceNumber == expectedWxePostBackSequenceNumber,
                string.Format("Expected WXE-PSN to be '{0}', but it actually is '{1}'", expectedWxePostBackSequenceNumber, newWxePostBackSequenceNumber));
        }
Example #10
0
 public MultiWindowTestPageObject(PageObjectContext context)
     : base(context)
 {
 }
Example #11
0
        /// <summary>
        /// Create a browser
        /// </summary>
        /// <param name="browsers">Browser name</param>
        public Browser(string browsers)
        {
            // Set poml context
            Pomls = new PageObjectContext(new DirectoryInfo(Common.PomlFiles)).Get();

            // Set browser
            switch (browsers.ToLower())
            {
            case "chrome":
                IWebDriver = new ChromeDriver();
                break;

            case "chrome-de":
                ChromeOptions option_de = new ChromeOptions();
                option_de.AddArgument("--lang=de");
                IWebDriver = new ChromeDriver();
                break;

            case "chrome-fr":
                ChromeOptions option_fr = new ChromeOptions();
                option_fr.AddArgument("--lang=fr");
                IWebDriver = new ChromeDriver();
                break;

            case "chrome-es":
                ChromeOptions option_es = new ChromeOptions();
                option_es.AddArgument("--lang=es");
                IWebDriver = new ChromeDriver();
                break;

            case "firefox":
                IWebDriver = new FirefoxDriver();
                break;

            case "firefox-de":
                FirefoxProfile profile_de = new FirefoxProfile();
                profile_de.SetPreference("intl.accept_languages", "de");
                IWebDriver = new FirefoxDriver(profile_de);
                break;

            case "firefox-fr":
                FirefoxProfile profile_fr = new FirefoxProfile();
                profile_fr.SetPreference("intl.accept_languages", "fr");
                IWebDriver = new FirefoxDriver(profile_fr);
                break;

            case "firefox-es":
                FirefoxProfile profile_es = new FirefoxProfile();
                profile_es.SetPreference("intl.accept_languages", "es");
                IWebDriver = new FirefoxDriver(profile_es);
                break;

            case "grid":
                DesiredCapabilities abilites = new DesiredCapabilities();
                abilites.SetCapability(CapabilityType.BrowserName, "firefox");
                IWebDriver = new RemoteWebDriver(new Uri(Common.GridPath), abilites);
                break;

            case "ie":
            case "internetexplorer":
            case "internet explorer":
                IWebDriver = new InternetExplorerDriver();
                break;

            default:
                throw new ConfigException("Config file has been incorrectly set up. '" +
                                          browsers +
                                          "' is not a valid browser option");
            }

            // Browse to test site
            NavigateTo(Common.SiteUrl);
        }
 public HtmlPageObject([NotNull] PageObjectContext context)
     : base(context)
 {
 }
Example #13
0
        /// <inheritdoc/>
        public object PrepareWaitForCompletion(PageObjectContext context)
        {
            ArgumentUtility.CheckNotNull("context", context);

            return(WxeCompletionDetectionHelpers.GetWxePostBackSequenceNumber(_context));
        }
Example #14
0
        /// <inheritdoc/>
        public void HandleModalDialog(PageObjectContext context)
        {
            ArgumentUtility.CheckNotNull("context", context);

            context.Window.AcceptModalDialogFixed(context.Browser);
        }
        /// <summary>
        /// Returns the current WXE postback sequence number in the given <paramref name="context"/>.
        /// </summary>
        public static int GetWxePostBackSequenceNumber([NotNull] PageObjectContext context)
        {
            ArgumentUtility.CheckNotNull("context", context);

            return(int.Parse(context.Scope.FindId(c_wxePostBackSequenceNumberFieldId).Value));
        }
        /// <inheritdoc/>
        public object PrepareWaitForCompletion(PageObjectContext context)
        {
            ArgumentUtility.CheckNotNull("context", context);

            return(WxeCompletionDetectionHelpers.GetWxeFunctionToken(_context));
        }
        public WxeResetInCompletionDetectionStrategy([NotNull] PageObjectContext context)
        {
            ArgumentUtility.CheckNotNull("context", context);

            _context = context;
        }
 /// <inheritdoc/>
 public void WaitForCompletion(PageObjectContext context, object state)
 {
 }
        /// <summary>
        /// Returns the current WXE function token in the given <paramref name="context"/>.
        /// </summary>
        public static string GetWxeFunctionToken([NotNull] PageObjectContext context)
        {
            ArgumentUtility.CheckNotNull("context", context);

            return(context.Scope.FindId(c_wxeFunctionToken).Value);
        }
 public WebFormsTestPageObject(PageObjectContext context)
     : base(context)
 {
 }
 /// <inheritdoc/>
 public object PrepareWaitForCompletion(PageObjectContext context)
 {
     return(null);
 }