New Angular UI from 1806

Change-Id: I39c160db0e0a6ec2e587ccf007ee1b23c6a08666
Issue-ID: VID-208
Signed-off-by: Sonsino, Ofir (os0695) <os0695@intl.att.com>
diff --git a/vid-webpack-master/cypress/support/elements/element.actions.ts b/vid-webpack-master/cypress/support/elements/element.actions.ts
new file mode 100644
index 0000000..2d30aa1
--- /dev/null
+++ b/vid-webpack-master/cypress/support/elements/element.actions.ts
@@ -0,0 +1,49 @@
+import Chainable = Cypress.Chainable;
+
+declare namespace Cypress {
+  interface Chainable {
+    isElementContainsAttr : typeof isElementContainsAttr;
+    isElementDisabled : typeof isElementDisabled;
+    isElementEnabled : typeof isElementEnabled;
+    hasClass : typeof hasClass;
+    getElementByDataTestsId : typeof getElementByDataTestsId;
+  }
+}
+
+/*************************************************************************
+ isElementContainsAttr : check if element with id contains some attribute
+ *************************************************************************/
+function isElementContainsAttr(id : string, attr: string) : void {
+  cy.get("[data-tests-id='" + id +"']")
+    .should('have.attr', attr);
+}
+
+/*********************************************************
+ isElementDisabled : check if element with id is disabled
+ *********************************************************/
+function isElementDisabled(id : string) : void {
+  cy.get( "[data-tests-id='" + id +"']").should('be:disabled');
+}
+
+function isElementEnabled(id : string) : void {
+  cy.get( "button[data-tests-id='" + id +"']").should('be:enabled');
+}
+
+/****************************************************************
+ hasClass : check if element with id contains some class name
+ ****************************************************************/
+function hasClass(id : string, className : string) : void {
+  cy.get( "[data-tests-id='" + id +"']")
+    .should('have.class', className);
+}
+
+function getElementByDataTestsId(dataTestsId : string) : Chainable<JQuery<HTMLElement>> {
+  return cy.get( "[data-tests-id='" + dataTestsId +"']");
+}
+
+
+Cypress.Commands.add('isElementContainsAttr', isElementContainsAttr);
+Cypress.Commands.add('isElementDisabled', isElementDisabled);
+Cypress.Commands.add('isElementEnabled', isElementEnabled);
+Cypress.Commands.add('hasClass', hasClass);
+Cypress.Commands.add('getElementByDataTestsId', getElementByDataTestsId);
diff --git a/vid-webpack-master/cypress/support/elements/element.input.actions.ts b/vid-webpack-master/cypress/support/elements/element.input.actions.ts
new file mode 100644
index 0000000..714daf9
--- /dev/null
+++ b/vid-webpack-master/cypress/support/elements/element.input.actions.ts
@@ -0,0 +1,46 @@
+declare namespace Cypress {
+  interface Chainable {
+    typeToInput : typeof typeToInput;
+    blurInput : typeof blurInput;
+    focusInput : typeof focusInput;
+    shouldInputContainsText: typeof shouldInputContainsText;
+  }
+}
+
+/**********************************
+  Type to input with id some text
+ *********************************/
+function typeToInput(id : string, text : string) : void {
+  cy.get( "[data-tests-id='" + id +"']")
+    .type(text, {force: true});
+}
+
+/********************
+ blur input with id
+ ********************/
+function blurInput(id : string) : void {
+  cy.get( "[data-tests-id='" + id +"']")
+    .blur();
+}
+
+/********************
+ focus input with id
+ ********************/
+function focusInput(id : string) : void {
+  cy.get( "[data-tests-id='" + id +"']")
+    .focus();
+}
+
+/*****************************************
+ test if input with id contains some text
+ ****************************************/
+function shouldInputContainsText(id : string, text : string) : void {
+  cy.get( "[data-tests-id='" + id +"']")
+    .contains('text')
+}
+
+Cypress.Commands.add('typeToInput', typeToInput);
+Cypress.Commands.add('blurInput', blurInput);
+Cypress.Commands.add('focusInput', focusInput);
+Cypress.Commands.add('shouldInputContainsText', shouldInputContainsText);
+
diff --git a/vid-webpack-master/cypress/support/elements/element.select.actions.ts b/vid-webpack-master/cypress/support/elements/element.select.actions.ts
new file mode 100644
index 0000000..452323d
--- /dev/null
+++ b/vid-webpack-master/cypress/support/elements/element.select.actions.ts
@@ -0,0 +1,16 @@
+declare namespace Cypress {
+  interface Chainable {
+    selectDropdownOptionByText : typeof selectDropdownOptionByText;
+  }
+}
+
+/************************************************
+ select option with some text with select tag id
+ ************************************************/
+function selectDropdownOptionByText(selectId : string, optionText : string) : void {
+  cy.getElementByDataTestsId(selectId)
+    .select(optionText);
+}
+
+Cypress.Commands.add('selectDropdownOptionByText', selectDropdownOptionByText);
+
diff --git a/vid-webpack-master/cypress/support/elements/element.table.actions.ts b/vid-webpack-master/cypress/support/elements/element.table.actions.ts
new file mode 100644
index 0000000..4994723
--- /dev/null
+++ b/vid-webpack-master/cypress/support/elements/element.table.actions.ts
@@ -0,0 +1,15 @@
+declare namespace Cypress {
+  interface Chainable {
+    getTableRowByIndex : typeof getTableRowByIndex;
+  }
+}
+
+/***************************************
+  get table row by table id and index
+ *************************************/
+function getTableRowByIndex(id : string, index : number) : Chainable<JQuery<HTMLElement>> {
+  return cy.get('table#' + id + ' tbody tr').eq(index);
+}
+
+Cypress.Commands.add('getTableRowByIndex', getTableRowByIndex);
+