Add integration tests for Holmes

Change-Id: I5f5823bd3e3b9dccd87154dcd02caa64d2724062
Signed-off-by: eh552t <eh552t@intl.att.com>
Issue-ID: CLAMP-34
diff --git a/test/csit/tests/clamp/APIs/01__TCA.robot b/test/csit/tests/clamp/APIs/01__TCA.robot
index e4837a6..c0b268b 100644
--- a/test/csit/tests/clamp/APIs/01__TCA.robot
+++ b/test/csit/tests/clamp/APIs/01__TCA.robot
@@ -52,7 +52,7 @@
     ${resp}=    Put Request    clamp   /restservices/clds/v1/clds/model/TCAModel2     data=${data}   headers=${headers}
     Should Be Equal As Strings      ${resp.status_code}     200
 
-Get Requests verify Model1 and Model2 found
+Get Requests verify TCA Model1 and Model2 found
     ${auth}=    Create List     admin    5f4dcc3b5aa765d61d8327deb882cf99
     Create Session   clamp  http://localhost:8080   auth=${auth}
     ${resp}=    Get Request    clamp   /restservices/clds/v1/clds/model-names
diff --git a/test/csit/tests/clamp/APIs/02__Holmes.robot b/test/csit/tests/clamp/APIs/02__Holmes.robot
index 9087c4b..313b7a4 100644
--- a/test/csit/tests/clamp/APIs/02__Holmes.robot
+++ b/test/csit/tests/clamp/APIs/02__Holmes.robot
@@ -36,3 +36,18 @@
     Should Contain Match     ${resp}      *HolmesTemplate2*
     Should Not Contain Match     ${resp}      *HolmesTemplate99*
 
+Put Requests to add Close Loop Holmes Model1
+    ${auth}=    Create List     admin    5f4dcc3b5aa765d61d8327deb882cf99
+    Create Session   clamp  http://localhost:8080   auth=${auth}
+    ${data}=    Get Binary File     ${CURDIR}${/}data${/}createHolmesModel1.json
+    &{headers}=  Create Dictionary      Content-Type=application/json
+    ${resp}=    Put Request    clamp   /restservices/clds/v1/clds/model/HolmesModel1     data=${data}   headers=${headers}
+    Should Be Equal As Strings      ${resp.status_code}     200
+
+Get Requests verify Holmes Model1 found
+    ${auth}=    Create List     admin    5f4dcc3b5aa765d61d8327deb882cf99
+    Create Session   clamp  http://localhost:8080   auth=${auth}
+    ${resp}=    Get Request    clamp   /restservices/clds/v1/clds/model-names
+    Should Be Equal As Strings  ${resp.status_code}     200
+    Should Contain Match     ${resp}      *HolmesModel1*
+    Should Not Contain Match     ${resp}      *HolmesModel99*
diff --git a/test/csit/tests/clamp/UIs/03__Create_Holmes_template.robot b/test/csit/tests/clamp/UIs/03__Create_Holmes_template.robot
new file mode 100644
index 0000000..4d038ca
--- /dev/null
+++ b/test/csit/tests/clamp/UIs/03__Create_Holmes_template.robot
@@ -0,0 +1,75 @@
+*** Settings ***
+Library     Collections
+Library     RequestsLibrary
+Library     OperatingSystem
+Library     json
+Library     Selenium2Library
+Library     XvfbRobot
+
+
+*** Test Cases ***
+Get Requests health check ok
+    CreateSession   clamp  http://localhost:8080
+    ${resp}=    Get Request    clamp   /restservices/clds/v1/clds/healthcheck
+    Should Be Equal As Strings  ${resp.status_code}     200
+
+Open Browser
+# Next line is to be enabled for Headless tests only (jenkins?). To see the tests desable the line.
+    Start Virtual Display    1920    1080
+    Open Browser    http://localhost:8080/designer/index.html    browser=firefox
+    Set Selenium Speed      .2 seconds
+    Set Window Size    1920    1080
+    ${title}=    Get Title
+    Should Be Equal    CLDS    ${title}
+
+Good Login to Clamp UI and Verify logged in
+    Input Text      locator=username    text=admin
+    Input Text      locator=password    text=password
+    Press Key    locator=password       key=\\13
+    Wait Until Element Is Visible       xpath=//*[@class="navbar-brand logo_name ng-binding"]       timeout=60
+    Element Text Should Be      xpath=//*[@class="navbar-brand logo_name ng-binding"]       expected=Hello:admin
+
+Create Template from Menu
+    Wait Until Element Is Visible       xpath=//*[@id="navbar"]/ul/li[1]/a       timeout=60
+    Click Element    xpath=//*[@id="navbar"]/ul/li[1]/a
+    Wait Until Element Is Visible       locator=Create Template       timeout=60
+    Click Element    locator=Create Template
+    Input Text      locator=modelName       text=HolmesTemplate
+    Click Button    locator=OK
+
+Drag and Drop Boxes for template
+    Wait Until Element Is Visible       xpath=//*[@class="entry icon-collector-node"]       timeout=60
+    Drag And Drop By Offset     xpath=//*[@class="entry icon-collector-node"]       280      280
+    Drag And Drop By Offset     xpath=//*[@class="entry icon-stringmatch-node"]       480      280
+    Drag And Drop By Offset     xpath=//*[@class="entry icon-ves-collector-node"]       680      280
+    Drag And Drop By Offset     xpath=//*[@class="entry icon-holmes-node"]       880      280
+    Drag And Drop By Offset     xpath=//*[@class="entry icon-tca-node"]       1080      280
+    Drag And Drop By Offset     xpath=//*[@class="entry icon-policy-node"]       1280      280
+    Drag And Drop By Offset     xpath=//*[@class="entry icon-end-event-none"]       1480      280
+
+Drag and Drop Connectors for template
+    Click Element    xpath=//*[starts-with(@data-element-id, "StartEvent_")]
+    Wait Until Element Is Enabled       xpath=//*[@id="js-canvas"]/div/div/div[2]/div[8]/div/div/div[2]/div
+    Drag And Drop       xpath=//*[@id="js-canvas"]/div/div/div[2]/div[8]/div/div/div[2]/div      xpath=//*[starts-with(@data-element-id, "Collector_")]
+    Wait Until Element Is Enabled       xpath=//*[@id="js-canvas"]/div/div/div[2]/div[1]/div/div/div[3]/div
+    Drag And Drop       xpath=//*[@id="js-canvas"]/div/div/div[2]/div[1]/div/div/div[3]/div     xpath=//*[starts-with(@data-element-id, "StringMatch_")]
+    Wait Until Element Is Enabled       xpath=//*[@id="js-canvas"]/div/div/div[2]/div[2]/div/div/div[3]/div
+    Drag And Drop       xpath=//*[@id="js-canvas"]/div/div/div[2]/div[2]/div/div/div[3]/div     xpath=//*[starts-with(@data-element-id, "VesCollector_")]
+    Wait Until Element Is Enabled       xpath=//*[@id="js-canvas"]/div/div/div[2]/div[3]/div/div/div[2]/div
+    Drag And Drop       xpath=//*[@id="js-canvas"]/div/div/div[2]/div[3]/div/div/div[2]/div      xpath=//*[starts-with(@data-element-id, "Holmes_")]
+    Wait Until Element Is Enabled       xpath=//*[@id="js-canvas"]/div/div/div[2]/div[4]/div/div/div[3]/div
+    Drag And Drop       xpath=//*[@id="js-canvas"]/div/div/div[2]/div[4]/div/div/div[3]/div      xpath=//*[starts-with(@data-element-id, "TCA_")]
+    Wait Until Element Is Enabled       xpath=//*[@id="js-canvas"]/div/div/div[2]/div[5]/div/div/div[3]/div
+    Drag And Drop       xpath=//*[@id="js-canvas"]/div/div/div[2]/div[5]/div/div/div[3]/div      xpath=//*[starts-with(@data-element-id, "Policy_")]
+    Wait Until Element Is Enabled       xpath=//*[@id="js-canvas"]/div/div/div[2]/div[6]/div/div/div[3]/div
+    Drag And Drop       xpath=//*[@id="js-canvas"]/div/div/div[2]/div[6]/div/div/div[3]/div      xpath=//*[starts-with(@data-element-id, "EndEvent_")]
+
+Save Template from Menu
+    Click Element    xpath=//*[@id="navbar"]/ul/li[1]/a
+    Wait Until Element Is Visible       locator=Save Template      timeout=60
+    Click Element    locator=Save Template
+    Wait Until Element Is Visible       xpath=//*[@id="alert_message_"]      timeout=60
+    Element Text Should Be      xpath=//*[@id="alert_message_"]       expected=Action Successful:SAVE
+
+Close Browser
+    Close Browser
\ No newline at end of file
diff --git a/test/csit/tests/clamp/UIs/04__Create_Holmes_model.robot b/test/csit/tests/clamp/UIs/04__Create_Holmes_model.robot
new file mode 100644
index 0000000..a531645
--- /dev/null
+++ b/test/csit/tests/clamp/UIs/04__Create_Holmes_model.robot
@@ -0,0 +1,50 @@
+*** Settings ***
+Library     Collections
+Library     RequestsLibrary
+Library     OperatingSystem
+Library     json
+Library     Selenium2Library
+Library     XvfbRobot
+
+
+*** Test Cases ***
+Get Requests health check ok
+    CreateSession   clamp  http://localhost:8080
+    ${resp}=    Get Request    clamp   /restservices/clds/v1/clds/healthcheck
+    Should Be Equal As Strings  ${resp.status_code}     200
+
+Open Browser
+# Next line is to be enabled for Headless tests only (jenkins?). To see the tests desable the line.
+    Start Virtual Display    1920    1080
+    Open Browser    http://localhost:8080/designer/index.html    browser=firefox
+    Set Selenium Speed      .2 seconds
+    Set Window Size    1920    1080
+    ${title}=    Get Title
+    Should Be Equal    CLDS    ${title}
+
+Good Login to Clamp UI and Verify logged in
+    Input Text      locator=username    text=admin
+    Input Text      locator=password    text=password
+    Press Key    locator=password       key=\\13
+    Wait Until Element Is Visible       xpath=//*[@class="navbar-brand logo_name ng-binding"]       timeout=60
+    Element Text Should Be      xpath=//*[@class="navbar-brand logo_name ng-binding"]       expected=Hello:admin
+
+Create Model from Menu
+    Wait Until Element Is Visible       xpath=//*[@id="navbar"]/ul/li[2]/a       timeout=60
+    Click Element    xpath=//*[@id="navbar"]/ul/li[2]/a
+    Wait Until Element Is Visible       locator=Create CL       timeout=60
+    Click Element    locator=Create CL
+    Input Text      locator=modelName       text=HolmesModel
+    Select From List By Label       id=templateName      HolmesTemplate
+    Click Button    locator=Create
+
+Save Model from Menu
+    Wait Until Element Is Visible       xpath=//*[@id="navbar"]/ul/li[2]/a      timeout=60
+    Click Element    xpath=//*[@id="navbar"]/ul/li[2]/a
+    Wait Until Element Is Visible       locator=Save CL      timeout=60
+    Click Element    locator=Save CL
+    Wait Until Element Is Visible       xpath=//*[@id="alert_message_"]      timeout=60
+    Element Text Should Be      xpath=//*[@id="alert_message_"]       expected=Action Successful:SAVE
+
+Close Browser
+    Close Browser