it('should allow editing courses', () => {

    // Check browser url (dashboard)
    expect(browser.driver.getCurrentUrl()).toMatch('/courses');

    // Get and click the button to edit the last one of the courses
    var lastEditCoursesIcon = element.all(by.className('course-put-icon')).last();
    page.waitUntilElementNotVisible('#course-modal');
    lastEditCoursesIcon.click();
    page.waitUntilElementPresent('#put-delete-course-modal');

    // Get field inputs
    var courseNameField = browser.driver.findElement(by.id('inputPutCourseName'));

    // Fill input field
    courseNameField.clear();
    courseNameField.sendKeys('[EDITED]');

    // Ensure field contains what has been entered
    expect(courseNameField.getAttribute('value')).toEqual('[EDITED]');

    browser.driver.findElement(by.id('submit-put-course-btn')).then(function(submitEditCourseBtn) {
      // Click submit form
      submitEditCourseBtn.click().then(function() {
        browser.waitForAngular();

        //The last course should have changed its name
        var editedCourse = element.all(by.className('course-title')).last();
        expect(editedCourse.getText()).toEqual('[EDITED]');
      });
    });
  });
  it('should log in', () => {

    // Check browser url (root)
    expect(browser.driver.getCurrentUrl()).toMatch('/');

    // Find form elements (login modal is already opened)
    var userNameField = browser.driver.findElement(by.id('email'));
    var userPassField = browser.driver.findElement(by.id('password'));

    // Fill input fields
    userNameField.sendKeys(userEmail);
    userPassField.sendKeys(userPass);

    // Ensure fields contain what has been entered
    expect(userNameField.getAttribute('value')).toEqual(userEmail);
    expect(userPassField.getAttribute('value')).toEqual(userPass);

    browser.driver.findElement(by.id('log-in-btn')).then(function(loginBtn) {
      // Click to log in - waiting for Angular as it is manually bootstrapped.
      loginBtn.click().then(function() {
        browser.waitForAngular();

        // Browser url must have changed to the dashboard route
        expect(browser.driver.getCurrentUrl()).toMatch('/courses');
      });
    });
  });
      welcomeBtn.click().then(function() {

        // Find form elements
        var userNameField = browser.driver.findElement(by.id('email'));
        var userPassField = browser.driver.findElement(by.id('password'));

        // Fill input fields
        userNameField.sendKeys('*****@*****.**');
        userPassField.sendKeys('pass');

        // Ensure fields contain what has been entered
        expect(userNameField.getAttribute('value')).toEqual('*****@*****.**');
        expect(userPassField.getAttribute('value')).toEqual('pass');

        browser.driver.findElement(by.id('log-in-btn')).then(function(loginBtn) {
          // Click to log in - waiting for Angular as it is manually bootstrapped.
          loginBtn.click().then(function() {
            browser.waitForAngular();

            // Error message appears warning about an invalid field
            expect(browser.driver.findElement(by.tagName('app-error-message')).getText()).toContain('Invalid field');
            //Route mustn't change
            expect(browser.driver.getCurrentUrl()).toMatch('/');

            // Clear field inputs
            userNameField.clear();
            userPassField.clear();
          });
        });
      });
            btn.click().then(function() {
              page.waitUntilElementPresent('#course-details-modal');

              // Find form elements
              var entryTitleField = browser.driver.findElement(by.css('input#inputTitle'));
              var entryCommentField = browser.driver.findElement(by.css('textarea#inputComment'));
              // Fill input fields
              entryTitleField.sendKeys('New testing entry title');
              entryCommentField.sendKeys('New testing entry comment');
              // Ensure fields contain what has been entered
              expect(entryTitleField.getAttribute('value')).toEqual('New testing entry title');
              expect(entryCommentField.getAttribute('value')).toEqual('New testing entry comment');

              // Send new entry
              browser.driver.findElement(by.css('#post-modal-btn')).then(function(sendButton) {
                sendButton.click().then(function() {
                  browser.waitForAngular();
                  page.waitUntilElementNotVisible('#course-details-modal');

                  // Get and check the title of last entry
                  var entries = element.all(by.css('li.entry-title div div a'));
                  expect(entries.last().getText()).toContain('New testing entry title');

                });
              });
            });
 getIconButton(name: string, className: string) {
     return element.all(by.css('table>tbody>tr')).filter(row => {
         return row.all(by.tagName('td')).get(0).getText().then(pName => {
             return pName === name;
         })
     }).get(0).element(by.css(className));
 }
  it('should allow removing courses', () => {

    // Check browser url (dashboard)
    expect(browser.driver.getCurrentUrl()).toMatch('/courses');

    // Get the number of courses present in the dashboard
    var courses1 = element.all(by.className('course-title'));
    var i = courses1.count;

    // Get and click the button to edit the last one of the courses
    var lastEditCoursesIcon = element.all(by.className('course-put-icon')).last();
    page.waitUntilElementNotVisible('#put-delete-course-modal');
    lastEditCoursesIcon.click();
    page.waitForAnimation();

    // Get and click the checkbox to allow the course's deletion
    browser.driver.findElement(by.css('label[for=delete-checkbox]')).then(function(deletionAllow) {
      deletionAllow.click();

      // Get and click the button to delete the course
      browser.driver.findElement(by.css('div.delete-div a.btn-flat')).then(function(deleteButton) {
        deleteButton.click().then(function() {
          browser.waitForAngular();

          // Get the number of courses present in the dashboard
          var courses2 = element.all(by.className('course-title'));
          var j = courses2.count;

          // Should be exactly one course less than before the deletion
          expect(Number(j.toString()) === (Number(i.toString()) - 1));
        });
      });
    });
  });
 getFormData() {
   let mainPanel = element.all(by.css('.metron-slider-pane-edit')).last();
   return protractor.promise.all([
     mainPanel.element(by.css('.form-title')).getText(),
     mainPanel.element(by.css('input[name="sensorTopic"]')).getAttribute('value'),
     mainPanel.element(by.css('select[formcontrolname="parserClassName"]')).getAttribute('value'),
     mainPanel.element(by.css('input[formcontrolname="grokStatement"]')).getAttribute('value'),
     mainPanel.all(by.css('div[name="fieldSchema"] table tr')).getText(),
     mainPanel.all(by.css('div[name="threatTriage"] table tr')).getText(),
     mainPanel.element(by.css('input[formcontrolname="index"]')).getAttribute('value'),
     mainPanel.element(by.css('metron-config-number-spinner[name="batchSize"] input')).getAttribute('value'),
     mainPanel.all(by.css('metron-config-advanced-form input')).getAttribute('value')
   ]).then(args => {
     return  {
       title: args[0],
       parserName: args[1],
       parserType: args[2],
       grokStatement: args[3],
       fieldSchemaSummary: args[4],
       threatTriageSummary: args[5],
       indexName: args[6],
       batchSize: args[7],
       advancedConfig: args[8]
     }
   });
 }
 getActions(name: string) {
     return element.all(by.css('table>tbody>tr')).filter(row => {
         return row.all(by.tagName('td')).get(0).getText().then(pName => {
             return pName === name;
         })
     }).get(0).all(by.tagName('i')).map(icon => {
         return icon.getAttribute('class').then(classNames => {
             let className = classNames.replace('fa ', '').replace('fa-lg', '').replace('fa-spin  fa-fw', '').trim();
             return {classNames: className, displayed: icon.isDisplayed()};
         });
     });
 }
 getDropdownActionState() {
     return protractor.promise.all([
         element.all(by.css('.dropdown.open .dropdown-menu span:not(.disabled)')).count(),
         element.all(by.css('.dropdown.open .dropdown-menu span.disabled')).count(),
         element.all(by.css('.dropdown-menu')).isDisplayed()
     ]).then(args => {
         return  {
             enabled: args[0],
             disabled: args[1],
             displayed: args[2][0],
         }
     });
 }
Example #10
0
        element(by.css('.card-panel.warning')).isPresent().then(function(pres) {
          if (pres) {
            element(by.css('#edit-forum-icon')).click().then(function() {
              page.waitForAnimation();
              // Get and click the checkbox to allow the forum's activation
              browser.driver.findElement(by.css('label[for=delete-checkbox]')).then(function(activationAllowed) {
                activationAllowed.click();

                // Get and click the button to activate the forum
                browser.driver.findElement(by.css('#put-modal-btn')).then(function(activateButton) {
                  activateButton.click().then(function() {
                    browser.waitForAngular();
                    page.waitForAnimation();
                    page.waitUntilElementPresent('#add-entry-icon');
                  });
                });
              });
            });
          }
          browser.driver.findElement(by.css('#add-entry-icon')).then(function(btn) {
            btn.click().then(function() {
              page.waitUntilElementPresent('#course-details-modal');

              // Find form elements
              var entryTitleField = browser.driver.findElement(by.css('input#inputTitle'));
              var entryCommentField = browser.driver.findElement(by.css('textarea#inputComment'));
              // Fill input fields
              entryTitleField.sendKeys('New testing entry title');
              entryCommentField.sendKeys('New testing entry comment');
              // Ensure fields contain what has been entered
              expect(entryTitleField.getAttribute('value')).toEqual('New testing entry title');
              expect(entryCommentField.getAttribute('value')).toEqual('New testing entry comment');

              // Send new entry
              browser.driver.findElement(by.css('#post-modal-btn')).then(function(sendButton) {
                sendButton.click().then(function() {
                  browser.waitForAngular();
                  page.waitUntilElementNotVisible('#course-details-modal');

                  // Get and check the title of last entry
                  var entries = element.all(by.css('li.entry-title div div a'));
                  expect(entries.last().getText()).toContain('New testing entry title');

                });
              });
            });
          });
        });