Move CSIT to integration/csit repo

To facilite branching of CSIT tests, all CSIT test
code and scripts are relocated to the integration/csit
repo.

Change-Id: I1e4c0eff44691f73f8098b3c52764107f6b8b8df
Issue-ID: INT-671
Signed-off-by: Gary Wu <gary.i.wu@huawei.com>
diff --git a/tests/appc/cdt/__init__.robot b/tests/appc/cdt/__init__.robot
new file mode 100644
index 0000000..b03cdae
--- /dev/null
+++ b/tests/appc/cdt/__init__.robot
@@ -0,0 +1,15 @@
+# This does setup and tear down of the suite
+
+# NOTE 1: The subdirectories must include a symbolic link to this file
+#         in order to run an individual .robot file (as compared to directory)
+# NOTE 2: The Resource file must also be included in the test case .robot files
+
+*** Settings ***
+
+# Include a file of common variables, keywords and other settings
+| Resource | common.robot
+
+#| Suite Setup  | Run Keywords |  Setup1 | Setup2
+| Suite Setup  | Run Keywords |  Setup2 | Setup1
+| Suite Teardown | Close all browsers
+
diff --git a/tests/appc/cdt/cdt.robot b/tests/appc/cdt/cdt.robot
new file mode 100644
index 0000000..b33bfe7
--- /dev/null
+++ b/tests/appc/cdt/cdt.robot
@@ -0,0 +1,194 @@
+*** Settings ***
+| Resource | common.robot
+
+*** Test Cases ***
+# Based on Robot test cases created by Dawn Zelinski (dz2438@att.com).
+| Verify Home page and links
+# Access Home page - All tests files use this as starting point
+| | RefreshMainURL
+# Verify the links
+| | Page should contain link | Home
+| | Page should contain link | MY VNFs
+| | Page should contain link | Test
+| | Page should contain link | About us
+| | Page Should Not Contain | ${USER_ID}
+# Verify MY VNFs link will will ask for user entry
+| | Click Link | MY VNFs
+| | Wait Until Element Is Visible | id=userId | ${LONGTIME}
+| | Input Text | id=userId | ${USERID}
+| | Click Button | Submit
+| | Page Should Contain | ${USER_ID}
+| Verify Logout of user id
+# Access Home page - All tests files use this as starting point
+| | RefreshMainURL
+| | Page Should Contain | ${USER_ID}
+# Log out of user id and then see if My Vnfs asks for user entry
+| | Click Element | id=more-button
+# Line below also works.
+#| | Click Element | xpath=(//*[@class='android-more-button mdl-button mdl-js-button mdl-button--primary'])
+# Now Logout
+| | Wait Until Element Is Visible | xpath=(//*[@class='mdl-menu__item mdl-js-ripple-effect']) | ${LONGTIME}
+| | Click Element | xpath=(//*[@class='mdl-menu__item mdl-js-ripple-effect'])
+| | Page Should Not Contain | ${USER_ID}
+# Verify MY VNFs link will will ask for user entry
+| | Click Link | MY VNFs
+| | Wait Until Element Is Visible | id=userId | ${LONGTIME}
+| | Input Text | id=userId | ${USERID}
+| | Click Button | Submit
+| | Page Should Contain | ${USER_ID}
+
+| Test Uploading an existing VNF Reference file that was previously downloaded
+# Access Home page - All tests files use this as starting point
+| | RefreshMainURL
+| | Click Link | MY VNFs
+# Verify button element is ready before clicking it.
+| | Wait Until Page Contains Element | xpath=(//*[@class='mdl-button mdl-js-button mdl-button--raised mdl-js-ripple-effect mdl-button--primary']) | ${LONGTIME}
+#| | Click Button | Create New VNF Type or VNFC Type
+| | Click Button | Create New VNF Type
+#| | Page Should Contain | Enter VNF type and VNFC to proceed
+| | Page Should Contain | Enter VNF Type
+| | Page Should Contain Element | id=vnfType
+# Proceed without entering any new information
+#| | Click Button | Proceed anyway
+| | Click Button | Proceed To Upload
+| | Page Should Contain Element | id=cmbAction
+| | Click Button | Upload Reference File
+| | Choose File | id=inputFile |  ${CURDIR}/data/reference_AllAction_HealthCheckAnsible_0.0.1V.json
+| | Sleep | ${SHORTTIME}
+# Verify the screen is populated with the HealthCheck (action), dawnMay17 (VNF Type and ANSIBLE (device protocol)
+| | ${theVNFType} | Get Value | id=txtVnfType
+| | ${theAction} | Get Selected List Value | id=cmbAction
+| | ${theProtocol} | Get Selected List Value | id=txtDeviceProtocol
+| | Should Be Equal As Strings | ${theVNFType} | csit
+| | Should Be Equal As Strings | ${theAction} | HealthCheck
+| | Should Be Equal As Strings | ${theProtocol} | ANSIBLE
+
+| Test Creation of VNF
+# Access Home page - All tests files use this as starting point
+| | RefreshMainURL
+| | Click Link | MY VNFs
+# Verify button element is ready before clicking it.
+| | Wait Until Page Contains Element | xpath=(//*[@class='mdl-button mdl-js-button mdl-button--raised mdl-js-ripple-effect mdl-button--primary']) | ${LONGTIME}
+#| | Click Button | Create New VNF Type or VNFC Type
+| | Click Button | Create New VNF Type
+#| | Page Should Contain | Enter VNF type and VNFC to proceed
+| | Page Should Contain | Enter VNF Type
+| | Page Should Contain Element | id=vnfType
+# Create a date to use in VNF Type to make it unique
+| | ${THEDATE}  | Get Current Date | result_format=%m%d%H%M%S | exclude_millis=True
+| | Input Text | id=vnfType | csit${THEDATE}
+| | Click Button | Next
+| | Page Should Contain Element | id=cmbAction
+# Verify 17 selections available
+| | Select From List By Index | id=cmbAction | 17
+# Select HealthCheck and ANSIBLE and verify it gets created
+| | Select From List By Value | id=cmbAction | HealthCheck
+| | Select From List By Value | id=txtDeviceProtocol | ANSIBLE
+| | Click Button | saveToAppc
+| | Sleep | ${SHORTTIME}
+#| | Wait Until Page Contains | successfully uploaded the Reference Data | ${LONGTIME}
+| | Click Link | MY VNFs
+| | Page Should Contain | csit${THEDATE}
+
+| Test Creation of VNF with multiple VNFCs
+# This test is based on the 1806 Releases,
+# APPC-C Design Tool User Guide for Self-Service Onboarding (section 5.1)
+# Access Home page - All tests files use this as starting point
+| | RefreshMainURL
+| | Click Link | MY VNFs
+# Verify button element is ready before clicking it.
+| | Wait Until Page Contains Element | xpath=(//*[@class='mdl-button mdl-js-button mdl-button--raised mdl-js-ripple-effect mdl-button--primary']) | ${LONGTIME}
+#| | Click Button | Create New VNF Type or VNFC Type
+| | Click Button | Create New VNF Type
+| | Wait Until Page Contains Element | id=vnfType | ${LONGTIME}
+# Create a date to use in VNF Type to make it unique
+| | ${THEDATE}  | Get Current Date | result_format=%m%d%H%M%S | exclude_millis=True
+| | Input Text | id=vnfType | csit${THEDATE}
+| | Click Button | Next
+| | Wait Until Page Contains Element | id=cmbAction | ${LONGTIME}
+# Populate the action and protocol
+| | Select From List By Value | id=cmbAction | Configure
+| | Select From List By Value | id=txtDeviceProtocol | NETCONF-XML
+# Populate the other VNF descriptors
+| | Select From List By Value | name=template | Y
+| | Input Text | name=loginUserName | ${USER_ID}
+| | Input Text | name=portNumber | 777
+# Describe the first VNFC Type and enter the number of VMs for this VNFC Type
+| | Input Text | name=samplevnfcType | VNFC_type_A
+| | Input Text | name=samplevnfcFunctionCode | aaa
+| | Select From List By Value | name=sampleIpaddress | Y
+| | Select From List By Value | name=sampleGroupNotation | first-vnfc-name
+| | Input Text | name=sampleGroupValue | pair
+| | Input Text | name=txtNumber23 | 2
+| | Click Button | Add VM Information
+| | Wait Until Page Contains | VM Number: 2 | ${LONGTIME}
+# Clear information about the first VNFC
+| | Click Button | Clear VNFC Info
+# Describe the second VNFC Type and enter the number of VMs for this VNFC Type
+| | Input Text | name=samplevnfcType | VNFC_type_B
+| | Input Text | name=samplevnfcFunctionCode | bbb
+| | Select From List By Value | name=sampleIpaddress | Y
+| | Select From List By Value | name=sampleGroupNotation | first-vnfc-name
+| | Input Text | name=sampleGroupValue | pair
+| | Input Text | name=txtNumber23 | 2
+| | Click Button | Add VM Information
+| | Wait Until Page Contains | VM Number: 4 | ${LONGTIME}
+| | Click Button | saveToAppc
+| | Sleep | ${SHORTTIME}
+#| | Wait Until Page Contains | successfully uploaded the Reference Data | ${LONGTIME}
+| | Click Link | MY VNFs
+| | Wait Until Page Contains | ARTIFACT NAME | ${LONGTIME}
+| | Page Should Contain | csit${THEDATE}
+
+| Test Creation of VNF with VNFC box checked
+# This test is based on the 1806 Releases,
+# APPC-C Design Tool User Guide for Self-Service Onboarding (section 5.1)
+# Access Home page - All tests files use this as starting point
+| | RefreshMainURL
+| | Click Link | MY VNFs
+# Verify button element is ready before clicking it.
+| | Wait Until Page Contains Element | xpath=(//*[@class='mdl-button mdl-js-button mdl-button--raised mdl-js-ripple-effect mdl-button--primary']) | ${LONGTIME}
+#| | Click Button | Create New VNF Type or VNFC Type
+| | Click Button | Create New VNF Type
+| | Wait Until Page Contains Element | id=vnfType | ${LONGTIME}
+# Create a date to use in VNF Type to make it unique
+| | ${THEDATE}  | Get Current Date | result_format=%m%d%H%M%S | exclude_millis=True
+| | Input Text | id=vnfType | csit${THEDATE}
+# Check the box indicating VNFC templates
+| | Select Checkbox | id=vnfcRequired
+#| | Input Text | id=vnfcType | csitVNFC
+| | Click Button | Next
+| | Wait Until Page Contains Element | id=cmbAction | ${LONGTIME}
+# Populate the action and protocol
+| | Select From List By Value | id=cmbAction | Configure
+| | Select From List By Value | id=txtDeviceProtocol | NETCONF-XML
+# Populate the other VNF descriptors
+| | Select From List By Value | name=template | Y
+| | Input Text | name=loginUserName | ${USER_ID}
+| | Input Text | name=portNumber | 777
+# Describe the first VNFC Type and enter the number of VMs for this VNFC Type
+| | Input Text | name=samplevnfcType | csitVNFC
+| | Input Text | name=samplevnfcFunctionCode | aaa
+| | Select From List By Value | name=sampleIpaddress | Y
+| | Select From List By Value | name=sampleGroupNotation | first-vnfc-name
+| | Input Text | name=sampleGroupValue | pair
+| | Input Text | name=txtNumber23 | 2
+| | Click Button | Add VM Information
+| | Wait Until Page Contains | VM Number: 2 | ${LONGTIME}
+# Clear information about the first VNFC
+| | Click Button | Clear VNFC Info
+# Describe the second VNFC Type and enter the number of VMs for this VNFC Type
+| | Input Text | name=samplevnfcType | csitVNFC
+| | Input Text | name=samplevnfcFunctionCode | bbb
+| | Select From List By Value | name=sampleIpaddress | Y
+| | Select From List By Value | name=sampleGroupNotation | first-vnfc-name
+| | Input Text | name=sampleGroupValue | pair
+| | Input Text | name=txtNumber23 | 2
+| | Click Button | Add VM Information
+| | Wait Until Page Contains | VM Number: 4 | ${LONGTIME}
+| | Click Button | saveToAppc
+| | Sleep | ${SHORTTIME}
+| | Click Link | MY VNFs
+| | Wait Until Page Contains | ARTIFACT NAME | ${LONGTIME}
+| | Page Should Contain | csit${THEDATE}
+
diff --git a/tests/appc/cdt/common.robot b/tests/appc/cdt/common.robot
new file mode 100644
index 0000000..3492924
--- /dev/null
+++ b/tests/appc/cdt/common.robot
@@ -0,0 +1,60 @@
+# CDT Regression Testing # Set the MAINURL via the command line
+# run as:  
+# 1) execute a .profile that sets and exports DEV2 and DEV4
+# 2) robot --variable MAINURL:$DEV# filename.robot
+
+
+*** Variables ***
+
+#  ${MAINURL} is now set from the command line per above
+|  ${BROWSER}  |  chrome
+|  ${SHORTTIME} | 5s
+|  ${LONGTIME} | 90s
+|  ${TENMINUTES} | 600s
+#|  ${FFPROFILE_DIR} |  /home/dvz/.mozilla/firefox/s87c07vn.AppCZoomed50
+|  ${MAINURL} | http://localhost:8080/index.html
+|  ${USER_ID} | csituser
+
+*** Keywords ***
+|  Setup1  | Open browser | ${MAINURL} | ${BROWSER} | | | | |
+|  Setup2  | SLEEP | 2s
+
+# Refresh the ${MAINURL} which is used as starting point within each test file
+| RefreshMainURL
+| | Go To | ${MAINURL}
+| | Wait Until Page Contains | WELCOME TO CONTROLLER DESIGN TOOL | ${LONGTIME}
+
+
+# Make sure you can get to APPC server - Wrap in implicit wait then reset
+# Want to wait a few seconds to see if Server error appears. 
+# Can't add an explicit wait to "Page should not contain"
+| CheckForServerError 
+| | [Arguments] | ${WAITTIME} 
+| | Set Selenium Implicit Wait  | ${WAITTIME} 
+| | Page Should Not Contain | Error in connecting to APPC Server
+| | Set Selenium Implicit Wait  | 0
+
+
+| ClickButtonByContent
+| | [Arguments] |  ${TEXT}
+| | ${RETVAL} | Execute Javascript | function clickButtonByTextContent(buttontext) { var buttons = document.querySelectorAll('button'); for (var i=0, l=buttons.length; i<l; i++) { if (buttons[i].firstChild.nodeValue == buttontext) { buttons[i].click(); return 0 } } return 1 }; var retval=clickButtonByTextContent('${TEXT}'); return retval;
+| | Return From Keyword | ${RETVAL}
+
+| ClickButtonByClassName
+| | [Arguments] |  ${TEXT}
+| | ${RETVAL} | Execute Javascript | function clickButtonByClassName(theclass) { var buttons = document.querySelectorAll('button'); for (var i=0, l=buttons.length; i<l; i++) { if (buttons[i].firstChild.nodeValue == theclass) { buttons[i].click(); return 0 } } return 1 }; var retval=clickButtonByClassName(${TEXT}); return retval;
+| | Return From Keyword | ${RETVAL}
+
+| EnterElementByClassName
+| | [Arguments] |  ${THECLASS} | ${INPUTVALUE}
+| | ${RETVAL} | Execute Javascript | function enterElementByClassName(theclass,theinput) { var element  = document.querySelector('.'+theclass).value = theinput; return 0 }; var retval=enterElementByClassName(${THECLASS},${INPUTVALUE}); return retval;
+| | Return From Keyword | ${RETVAL}
+
+*** Settings ***
+
+|  Library  |  ExtendedSelenium2Library
+|  Library  |  OperatingSystem
+#|  Library  |  Dialogs
+|  Library  |  DateTime
+
+
diff --git a/tests/appc/cdt/data/pd_Configure_vUSP - Revenue Assurance_0.0.1V.yaml b/tests/appc/cdt/data/pd_Configure_vUSP - Revenue Assurance_0.0.1V.yaml
new file mode 100755
index 0000000..ced4a7c
--- /dev/null
+++ b/tests/appc/cdt/data/pd_Configure_vUSP - Revenue Assurance_0.0.1V.yaml
@@ -0,0 +1,13 @@
+---
+kind: "Property Definition"
+version: V1
+vnf-parameter-list:
+- name: vnf_name
+  type: null
+  description: CSIT
+  required: null
+  default: null
+  source: Manual
+  rule-type: null
+  request-keys: null
+  response-keys: null
diff --git a/tests/appc/cdt/data/reference_AllAction_HealthCheckAnsible_0.0.1V.json b/tests/appc/cdt/data/reference_AllAction_HealthCheckAnsible_0.0.1V.json
new file mode 100755
index 0000000..4167806
--- /dev/null
+++ b/tests/appc/cdt/data/reference_AllAction_HealthCheckAnsible_0.0.1V.json
@@ -0,0 +1,48 @@
+{
+	"reference_data": [
+		{
+			"action": "HealthCheck",
+			"action-level": "vnf",
+			"scope": {
+				"vnf-type": "csit",
+				"vnfc-type-list": ["testvnftype"],
+				"vnfc-type": ""
+			},
+			"template": "Y",
+			"vm": [],
+			"device-protocol": "ANSIBLE",
+			"user-name": "",
+			"port-number": "",
+			"artifact-list": [
+				{
+					"artifact-name": "template_HealthCheck_csit_0.0.1V.json",
+					"artifact-type": "config_template"
+				},
+				{
+					"artifact-name": "pd_HealthCheck_csit_0.0.1V.yaml",
+					"artifact-type": "parameter_definitions"
+				},
+				{
+					"artifact-name": "param_HealthCheck_csit_0.0.1V.json",
+					"artifact-type": "param_values"
+				}
+			],
+			"scopeType": "vnf-type"
+		},
+		{
+			"action": "AllAction",
+			"action-level": "vnf",
+			"scope": {
+				"vnf-type": "csit",
+				"vnfc-type-list": ["testvnftype"],
+				"vnfc-type": ""
+			},
+			"artifact-list": [
+				{
+					"artifact-name": "reference_AllAction_csit_0.0.1V.json",
+					"artifact-type": "reference_template"
+				}
+			]
+		}
+	]
+}
diff --git a/tests/appc/cdt/data/reference_AllAction_vUSP - Revenue Assurance_0.0.1V.json b/tests/appc/cdt/data/reference_AllAction_vUSP - Revenue Assurance_0.0.1V.json
new file mode 100755
index 0000000..a575129
--- /dev/null
+++ b/tests/appc/cdt/data/reference_AllAction_vUSP - Revenue Assurance_0.0.1V.json
@@ -0,0 +1,125 @@
+{
+	"reference_data": [
+		{
+			"action": "Configure",
+			"action-level": "vnf",
+			"scope": {
+				"vnf-type": "vUSP - Revenue Assurance",
+				"vnf-type-list": "testvnftype",
+				"vnfc-type": ""
+			},
+			"template": "Y",
+			"vm": [
+				{
+					"vm-instance": 1,
+					"vnfc": [
+						{
+							"vnfc-instance": "1",
+							"vnfc-function-code": "rar",
+							"ipaddress-v4-oam-vip": "Y",
+							"group-notation-type": "first-vnfc-name",
+							"group-notation-value": "pair",
+							"vnfc-type": "vUSP vRAR"
+						}
+					]
+				},
+				{
+					"vm-instance": 2,
+					"vnfc": [
+						{
+							"vnfc-instance": "1",
+							"vnfc-function-code": "rar",
+							"ipaddress-v4-oam-vip": "Y",
+							"group-notation-type": "first-vnfc-name",
+							"group-notation-value": "pair",
+							"vnfc-type": "vUSP vRAR"
+						}
+					]
+				}
+			],
+			"device-protocol": "ANSIBLE",
+			"user-name": "att",
+			"port-number": "5000",
+			"artifact-list": [
+				{
+					"artifact-name": "template_Configure_vUSP-RevenueAssurance_0.0.1V..json",
+					"artifact-type": "config_template"
+				},
+				{
+					"artifact-name": "pd_Configure_vUSP-RevenueAssurance_0.0.1V.yaml",
+					"artifact-type": "parameter_definitions"
+				},
+				{
+					"artifact-name": "param_Configure_vUSP-RevenueAssurance_0.0.1V.json",
+					"artifact-type": "param_values"
+				}
+			],
+			"scopeType": "vnf-type"
+		},
+		{
+			"action": "ConfigBackup",
+			"action-level": "vnf",
+			"scope": {
+				"vnf-type": "vUSP - Revenue Assurance",
+				"vnfc-type": "",
+				"vnfc-type-list": ["testvnftype"]
+			},
+			"template": "Y",
+			"vm": [],
+			"device-protocol": "ANSIBLE",
+			"user-name": "att",
+			"port-number": "5000",
+			"artifact-list": [
+				{
+					"artifact-name": "template_ConfigBackup_vUSP-vRAR_0.0.1V.json",
+					"artifact-type": "config_template"
+				},
+				{
+					"artifact-name": "pd_ConfigBackup_vUSP-vRAR_0.0.1V.yaml",
+					"artifact-type": "parameter_definitions"
+				}
+			],
+			"scopeType": "vnf-type"
+		},
+		{
+			"action": "ConfigRestore",
+			"action-level": "vnf",
+			"scope": {
+				"vnf-type": "vUSP - Revenue Assurance",
+				"vnfc-type": "",
+				"vnfc-type-list": ["testvnftype"]
+			},
+			"template": "Y",
+			"vm": [],
+			"device-protocol": "ANSIBLE",
+			"user-name": "att",
+			"port-number": "5000",
+			"artifact-list": [
+				{
+					"artifact-name": "template_ConfigRestore_vUSP-vRAR_0.0.1V.json",
+					"artifact-type": "config_template"
+				},
+				{
+					"artifact-name": "pd_ConfigRestore_vUSP-vRAR_0.0.1V.yaml",
+					"artifact-type": "parameter_definitions"
+				}
+			],
+			"scopeType": "vnf-type"
+		},
+		{
+			"action": "AllAction",
+			"action-level": "vnf",
+			"scope": {
+				"vnf-type": "vUSP - Revenue Assurance",
+				"vnfc-type": "",
+				"vnfc-type-list": ["testvnftype"]
+			},
+			"artifact-list": [
+				{
+					"artifact-name": "reference_AllAction_vUSP-RevenueAssurance_0.0.1V.json",
+					"artifact-type": "reference_template"
+				}
+			]
+		}
+	]
+}
diff --git a/tests/appc/cdt/data/template_Configure_vUSP - Revenue Assurance_0.0.1V.json b/tests/appc/cdt/data/template_Configure_vUSP - Revenue Assurance_0.0.1V.json
new file mode 100755
index 0000000..5dd853c
--- /dev/null
+++ b/tests/appc/cdt/data/template_Configure_vUSP - Revenue Assurance_0.0.1V.json
@@ -0,0 +1,5 @@
+{
+                  "PlaybookName": "rarf/latest/ansible/restore/site.yml", 
+                  "EnvParameters": {"vnf_instance":"${vnf_name}"},
+                   "Timeout": 600
+}
diff --git a/tests/appc/cdt/data/vUSP_User Input Spreadsheet v.07.xlsx b/tests/appc/cdt/data/vUSP_User Input Spreadsheet v.07.xlsx
new file mode 100755
index 0000000..3a5efcb
--- /dev/null
+++ b/tests/appc/cdt/data/vUSP_User Input Spreadsheet v.07.xlsx
Binary files differ