lib/appium_lib/android/dynamic.rb



# encoding: utf-8

module Appium
  class Driver
    @@map = {
        1 => [ 'text(String text)', 'SELECTOR_TEXT', 1],
        2 => [ 'textStartsWith(String text)', 'SELECTOR_START_TEXT', 2],
        3 => [ 'textContains(String text)', 'SELECTOR_CONTAINS_TEXT', 3],
        4 => [ 'className(String className)', 'SELECTOR_CLASS', 4],
        5 => [ 'description(String desc)', 'SELECTOR_DESCRIPTION',  5],
        6 => [ 'descriptionStartsWith(String desc)', 'SELECTOR_START_DESCRIPTION', 6],
        7 => [ 'descriptionContains(String desc)', 'SELECTOR_CONTAINS_DESCRIPTION', 7],
        8 => [ 'index(final int index)', 'SELECTOR_INDEX', 8],
        9 => [ 'instance(final int instance)', 'SELECTOR_INSTANCE', 9],
        10 => [ 'enabled(boolean val)', 'SELECTOR_ENABLED', 10],
        11 => [ 'focused(boolean val)', 'SELECTOR_FOCUSED', 11],
        12 => [ 'focusable(boolean val)', 'SELECTOR_FOCUSABLE', 12],
        13 => [ 'scrollable(boolean val)', 'SELECTOR_SCROLLABLE', 13],
        14 => [ 'clickable(boolean val)', 'SELECTOR_CLICKABLE', 14],
        15 => [ 'checked(boolean val)', 'SELECTOR_CHECKED', 15],
        16 => [ 'selected(boolean val)', 'SELECTOR_SELECTED',  16],
        # // SELECTOR_ID = 17; // nothing.
        18 => [ 'packageName(String name)', 'SELECTOR_PACKAGE_NAME', 18],
        # // SELECTOR_CHILD              = 19; // childSelector(UiSelector selector)
        # // SELECTOR_CONTAINER          = 20; // containerSelector(UiSelector selector)
        # // SELECTOR_PATTERN            = 21; // ! private ! patternSelector(UiSelector selector)
        # // SELECTOR_PARENT             = 22; // fromParent(UiSelector selector)
        # // SELECTOR_COUNT              = 23; // nothing.
        24 => [ 'longClickable(boolean val)', 'SELECTOR_LONG_CLICKABLE', 24],
        25 => [ 'textMatches(String regex)', 'SELECTOR_TEXT_REGEX', 25],
        26 => [ 'classNameMatches(String regex)', 'SELECTOR_CLASS_REGEX', 26],
        27 => [ 'descriptionMatches(String regex)', 'SELECTOR_DESCRIPTION_REGEX', 27],
        28 => [ 'packageNameMatches(String regex)', 'SELECTOR_PACKAGE_NAME_REGEX', 28],
        # // start internal methods at 100
        100 => [ 'getStringAttribute("name")', 'GET_NAME', 100]
      }

      # @private
      def dynamic_code_to_string code, value=false
        result = @@map[code].first
        return result unless value
        result.split('(').first + "( \"#{value}\" )"
      end
  end # class Driver
end # module Appium