Beispiel #1
0
        protected override void execute(IWebElement element, IDictionary <string, object> cellValues, IStep step, ITestContext context)
        {
            // TODO -- StoryTeller needs to pull this all inside the Cell
            if (!cellValues.ContainsKey(_cell.Key))
            {
                // already caught as a syntax error
                return;
            }

            var handler       = ElementHandlers.FindHandler(element);
            var expectedValue = cellValues[_cell.Key];

            var matchingHandler = handler as IMatchingHandler ?? new BasicMatchingHandler(handler, context);

            if (matchingHandler.MatchesData(element, expectedValue))
            {
                context.IncrementRights();
            }
            else
            {
                context.ResultsFor(step).MarkFailure(_cell.Key);
                context.IncrementWrongs();
            }

            context.ResultsFor(step).SetActual(_cell.Key, handler.GetData(CurrentContext, element));
        }
Beispiel #2
0
        public bool ValidationElementHandlerMatches(string name, [SelectionValues("true", "false")] bool matches)
        {
            var element       = FindByName(name);
            var actualMatches = ElementHandlers.FindHandler(element) is ValidationElementHandler;

            return(actualMatches == matches);
        }
        protected override IEnumerable <CellResult> execute(IWebElement element, StepValues values)
        {
            var handler = ElementHandlers.FindHandler(element);

            handler.EnterData(SearchContext, element, values.Get(Cell.Key));

            return(new [] { CellResult.Ok(Cell.Key) });
        }
Beispiel #4
0
        public void ValidationElementHandlerEnterDataWithWait(string name, int min, int max)
        {
            var element   = FindByName(name);
            var stopwatch = Stopwatch.StartNew();

            ElementHandlers.FindHandler(element).EnterData(Driver, element, "Some text");
            stopwatch.Stop();

            StoryTellerAssert.Fail(stopwatch.ElapsedMilliseconds < min, "Handler was faster than expected actual elapsed milliseconds {0}".ToFormat(stopwatch.ElapsedMilliseconds));
            StoryTellerAssert.Fail(stopwatch.ElapsedMilliseconds > max, "Handler was slower than expected actual elapsed milliseconds {0}".ToFormat(stopwatch.ElapsedMilliseconds));
        }
Beispiel #5
0
        protected override void execute(IWebElement element, IDictionary <string, object> cellValues, IStep step, ITestContext context)
        {
            assertCondition(element.Enabled, DisabledElementMessage);

            // TODO -- start a convenience class for extensions on IWebElement
            bool isShown = element.Displayed || element.IsHiddenInput();

            assertCondition(isShown, HiddenElementMessage);

            var data = cellValues[Config.CellName];

            ElementHandlers.FindHandler(element).EnterData(CurrentContext, element, data);
        }
Beispiel #6
0
        protected override IEnumerable <CellResult> execute(IWebElement element, StepValues values)
        {
            var handler       = ElementHandlers.FindHandler(element);
            var expectedValue = values.Get(Cell.Key);

            var matchingHandler = handler as IMatchingHandler ?? new BasicMatchingHandler(handler);

            if (matchingHandler.MatchesData(element, expectedValue))
            {
                return(new [] { new CellResult(Cell.Key, ResultStatus.success) });
            }
            else
            {
                return(new [] { new CellResult(Cell.Key, ResultStatus.failed)
                                {
                                    actual = handler.GetData(SearchContext, element)
                                } });
            }
        }
Beispiel #7
0
        public void ValidationElementHandlerEnterDataWithWaitFailsWithTimeout(string name)
        {
            var       element = FindByName(name);
            Stopwatch stopwatch;

            try
            {
                stopwatch = Stopwatch.StartNew();
                ElementHandlers.FindHandler(element).EnterData(Driver, element, "Some text");
                stopwatch.Stop();
            }
            catch (StorytellerAssertionException ex)
            {
                StoryTellerAssert.Fail(!ex.Message.Contains("took longer than expected"), "Failed to enter data for some reason other than a timeout");
                return;
            }
            finally
            {
                var textNotEntered = ElementHandlers.FindHandler(element).GetData(Driver, element) != "Some text";
                StoryTellerAssert.Fail(textNotEntered, "Text was never entered to trigger validation");
            }

            StoryTellerAssert.Fail("Did not timeout when waiting for validation actual elapsed milliseconds {0} (For some reason this will fail on the Storyteller UI but not in the st runner)".ToFormat(stopwatch.ElapsedMilliseconds));
        }
Beispiel #8
0
 public static void SetData(this ISearchContext context, IWebElement element, string value)
 {
     ElementHandlers.FindHandler(element).EnterData(context, element, value);
 }
Beispiel #9
0
 public static string GetData(this ISearchContext context, IWebElement element)
 {
     return(ElementHandlers.FindHandler(element).GetData(context, element));
 }