UNPKG

appium-xcuitest-driver

Version:

Appium driver for iOS using XCUITest for backend

99 lines 4.52 kB
"use strict"; var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; var desc = Object.getOwnPropertyDescriptor(m, k); if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { desc = { enumerable: true, get: function() { return m[k]; } }; } Object.defineProperty(o, k2, desc); }) : (function(o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; })); var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { Object.defineProperty(o, "default", { enumerable: true, value: v }); }) : function(o, v) { o["default"] = v; }); var __importStar = (this && this.__importStar) || (function () { var ownKeys = function(o) { ownKeys = Object.getOwnPropertyNames || function (o) { var ar = []; for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k; return ar; }; return ownKeys(o); }; return function (mod) { if (mod && mod.__esModule) return mod; var result = {}; if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]); __setModuleDefault(result, mod); return result; }; })(); var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); const css_converter_1 = require("../../lib/css-converter"); const chai_1 = __importStar(require("chai")); const chai_as_promised_1 = __importDefault(require("chai-as-promised")); chai_1.default.use(chai_as_promised_1.default); describe('css-converter.js', function () { describe('simple cases', function () { const simpleCases = [ ['XCUIElementTypeWindow:nth-child(2)', '**/XCUIElementTypeWindow[2]'], ['XCUIElementTypeWindow *', '**/XCUIElementTypeWindow/**/*'], ['XCUIElementTypeWindow > *', '**/XCUIElementTypeWindow/*'], [ 'XCUIElementTypeWindow[label^=foo]:nth-child(-1)', '**/XCUIElementTypeWindow[`label BEGINSWITH "foo"`][-1]', ], [ `XCUIElementTypeStaticText[name="foo"][value$='bar']`, '**/XCUIElementTypeStaticText[`name == "foo" AND value ENDSWITH "bar"`]', ], ['XCUIElementTypeOther[visible]', '**/XCUIElementTypeOther[`visible == 1`]'], ['*:visible', '**/*[`visible == 1`]'], [ 'XCUIElementTypeWindow > XCUIElementTypeText', '**/XCUIElementTypeWindow/XCUIElementTypeText', ], [ 'XCUIElementTypeWindow XCUIElementTypeText', '**/XCUIElementTypeWindow/**/XCUIElementTypeText', ], ['XCUIElementTypeWindow#hello', '**/XCUIElementTypeWindow[`name == "hello"`]'], ['#foobar', '**/*[`name == "foobar"`]'], [ 'XCUIElementTypeText#foo > #bar', '**/XCUIElementTypeText[`name == "foo"`]/*[`name == "bar"`]', ], [ 'window#foo[visible=true][value^=foo] > text#bar other:nth-child(3)', '**/XCUIElementTypeWindow[`name == "foo" AND visible == 1 AND value BEGINSWITH "foo"`]/XCUIElementTypeText[`name == "bar"`]/**/XCUIElementTypeOther[3]', ], ['window > *:nth-child(-1)', '**/XCUIElementTypeWindow/*[-1]'], ]; for (const [cssSelector, iosClassChainSelector] of simpleCases) { it(`should convert '${cssSelector}' to '${iosClassChainSelector}'`, function () { (0, chai_1.expect)(css_converter_1.CssConverter.toIosClassChainSelector(cssSelector)).to.equal(iosClassChainSelector); }); } }); describe('unsupported css', function () { const testCases = /** @type {const} */ ([ '*[visible="ItS ViSiBlE"]', '*[foo="bar"]', `This isn't valid[ css`, 'p ~ a', ]); for (const cssSelector of testCases) { it(`should reject '${cssSelector}'`, function () { (0, chai_1.expect)(() => css_converter_1.CssConverter.toIosClassChainSelector(cssSelector)).to.throw(); }); } }); }); //# sourceMappingURL=css-converter-specs.js.map