MoveEndpointByUnit() public method

public MoveEndpointByUnit ( TextPatternRangeEndpoint endpoint, TextUnit unit, int count ) : int
endpoint TextPatternRangeEndpoint
unit TextUnit
count int
return int
Ejemplo n.º 1
0
        public TextPatternRange FindText(string text, bool backward, bool ignoreCase)
        {
            Validate.StringNeitherNullNorEmpty(parameter: text, parameterName: nameof(text));
            TextPatternRange textPatternRange = null;

            try {
                textPatternRange = new TextPatternRange(textPatternRange: IUIAutomationTextRange.FindText(text: text, backward: Convert.ToInt32(value: backward), ignoreCase: Convert.ToInt32(value: ignoreCase)));
            } catch (NotSupportedException ex) {
                var str            = GetText(maxLength: -1).Replace(oldValue: "\n", newValue: "");
                var comparisonType = ignoreCase ? StringComparison.OrdinalIgnoreCase : StringComparison.Ordinal;
                var count          = backward ? str.LastIndexOf(value: text, comparisonType: comparisonType) : str.IndexOf(value: text, comparisonType: comparisonType);
                if (count != -1)
                {
                    var num = count + text.Length;
                    textPatternRange = Clone();
                    textPatternRange.MoveEndpointByUnit(endpoint: TextPatternRangeEndpoint.Start, unit: TextUnit.Character, count: count);
                    textPatternRange.MoveEndpointByUnit(endpoint: TextPatternRangeEndpoint.End, unit: TextUnit.Character, count: num - str.Length);
                }
            }

            return(textPatternRange);
        }
Ejemplo n.º 2
0
        public static void TrimRangeCRLF(AutomationElement autoElement, TextPatternRange callingRange)
        {
            Library.ValidateArgumentNonNull(autoElement, "AutomationElement cannot be null");
            Library.ValidateArgumentNonNull(autoElement, "callingRange cannot be null");

            if (IsRichEdit(autoElement) == true)
            {
                int actualOffset = 0; // Actual   offset of \r, \n or \r\n
                int expectedOffset = 0; // Expected offset of \r, \n or \r\n
                string text = callingRange.GetText(-1);

                expectedOffset = GetTrailingCRLFOffset(text);

                // Now... move the endpoint
                actualOffset = callingRange.MoveEndpointByUnit(TextPatternRangeEndpoint.End, TextUnit.Character, expectedOffset);

                if (actualOffset != expectedOffset)
                    throw new InvalidOperationException("Unable to move endpoint back by " + expectedOffset + " characters. Actual = " + actualOffset);
                else
                    /* changing to new flexible logging */
                    //Logger.LogComment("Adjusted size of range for RichEdit control by omitting last " + expectedOffset + " characters");
                    UIVerifyLogger.LogComment("Adjusted size of range for RichEdit control by omitting last " + expectedOffset + " characters");
            }
        }
Ejemplo n.º 3
0
        //---------------------------------------------------------------------------
        // Wrapper for TextPatternRange.MoveEndpointByUnit Method
        //---------------------------------------------------------------------------
        internal void Range_MoveEndpointByUnit(TextPatternRange callingRange, TextPatternRangeEndpoint endPoint, TextUnit unit, int count, ref int actualCount, Type expectedException, CheckType checkType)
        {
            string call = "TextPatternRange.MoveEndpointByUnit(" + endPoint + ", " + unit + ", " + count + ")";

            if (callingRange == null)
                throw new ArgumentNullException(call + " requires non-NULL TextPatterncallingRange");

            try
            {
                actualCount = callingRange.MoveEndpointByUnit(endPoint, unit, count);
                Comment("---Called " + call + ", returned = " + actualCount);
            }
            catch (Exception actualException)
            {
                if (Library.IsCriticalException(actualException))
                    throw;

                Comment("---Calling " + call); // we don't have a count, but still tell user we called

                TestException(expectedException, actualException, call, checkType);
                return;
            }
            TestNoExceptionQuiet(expectedException, call, checkType);
        }