@Test(groups = "EnterpriseOnly")
  public void Enterprise40x_3960() throws Exception {
    /** Start Test */
    testName = getTestName();

    /** Test Data Setup */
    String siteName = getSiteName(testName);
    String testUser = getUserNameFreeDomain(testName);
    String fileName = getFileName(testName) + ".txt";
    DocumentLibraryPage documentLibraryPage;
    String filePath = downloadDirectory + fileName;

    setupCustomDrone(WebDroneType.DownLoadDrone);

    // Login
    ShareUser.login(customDrone, testUser, DEFAULT_PASSWORD);

    documentLibraryPage = ShareUser.openSitesDocumentLibrary(customDrone, siteName);
    // Document details page has been opened;
    DocumentDetailsPage detailsPage = documentLibraryPage.selectFile(fileName).render();
    Assert.assertFalse(detailsPage.getDocumentVersion().equals("1.0"));

    // Click Download icon for previous version;
    detailsPage.selectDownloadPreviousVersion("2.0");

    // Check the file is downloaded successfully
    detailsPage.waitForFile(maxWaitTime, downloadDirectory + fileName);

    String body = FileUtils.readFileToString(new File(filePath));
    if (body.length() == 0) {
      body = FileUtils.readFileToString(new File(filePath));
    }

    Assert.assertEquals(body, String.format("New version of document %s: %s", 2, fileName));
  }
  @Test(groups = "EnterpriseOnly")
  public void Enterprise40x_14032() {
    /** Start Test */
    testName = getTestName();

    /** Test Data Setup */
    String siteName = getSiteName(testName);
    String testUser = getUserNameFreeDomain(testName);
    String fileName = getFileName(testName) + ".txt";

    DocumentLibraryPage documentLibraryPage;

    // Login
    ShareUser.login(drone, testUser, DEFAULT_PASSWORD);

    documentLibraryPage = ShareUser.openSitesDocumentLibrary(drone, siteName);

    DocumentDetailsPage detailsPage = documentLibraryPage.selectFile(fileName);

    // Click 'Change Type' action
    ChangeTypePage changeTypePage = detailsPage.selectChangeType().render();
    assertTrue(changeTypePage.isChangeTypeDisplayed());

    // Select any type if present and click Cancel
    // The behavior for standard install is: no types are available -> click cancel
    changeTypePage.selectCancel();
  }
  @Test(groups = "EnterpriseOnly")
  public void Enterprise40x_13863() throws Exception {
    /** Start Test */
    testName = getTestName();

    /** Test Data Setup */
    String siteName = getSiteName(testName);
    String testUser = getUserNameFreeDomain(testName);
    String fileName = getFileName(testName) + getRandomStringWithNumders(3) + ".txt";

    DocumentLibraryPage documentLibraryPage;

    // Login
    ShareUser.login(drone, testUser, DEFAULT_PASSWORD);

    documentLibraryPage = ShareUser.openSitesDocumentLibrary(drone, siteName);

    // Upload File
    String[] fileInfo = {fileName, DOCLIB};
    ShareUser.uploadFileInFolder(drone, fileInfo);

    DocumentDetailsPage detailsPage = documentLibraryPage.selectFile(fileName);

    // Click "Edit Properties" in Actions section;
    EditDocumentPropertiesPage editPropertiesPage = detailsPage.selectEditProperties().render();
    editPropertiesPage.selectMimeType(MimeType.XML);
    detailsPage = editPropertiesPage.selectSave().render();
    detailsPage.render();

    Map<String, Object> properties = detailsPage.getProperties();
    Assert.assertEquals(properties.get("Mimetype"), "XML");
  }
 @Test(enabled = true, groups = "alfresco-one", priority = 33)
 public void testIsFileShared() {
   documentLibPage = resolvePage(driver).render();
   ShareLinkPage shareLinkPage =
       documentLibPage.getFileDirectoryInfo(file.getName()).clickShareLink().render();
   Assert.assertNotNull(shareLinkPage);
   assertTrue(documentLibPage.getFileDirectoryInfo(file.getName()).isFileShared());
 }
 @Test(enabled = true, groups = "Enterprise4.2", priority = 29)
 public void renameContentTest() {
   documentLibPage = resolvePage(driver).render();
   FileDirectoryInfo thisRow = documentLibPage.getFileDirectoryInfo(folderName);
   folderName = folderName + " updated";
   thisRow.renameContent(folderName);
   // State of page changed
   documentLibPage.render();
   Assert.assertEquals(documentLibPage.getFileDirectoryInfo(folderName).getName(), folderName);
 }
  @Test(groups = "EnterpriseOnly")
  public void Enterprise40x_3910() {
    /** Start Test */
    testName = getTestName();

    /** Test Data Setup */
    String siteName = getSiteName(testName);
    String testUser = getUserNameFreeDomain(testName);
    String fileName = getFileName(testName) + ".txt";
    String text = getRandomString(5);
    DocumentLibraryPage documentLibraryPage;

    // Login
    ShareUser.login(drone, testUser, DEFAULT_PASSWORD);

    documentLibraryPage = ShareUser.openSitesDocumentLibrary(drone, siteName);

    DocumentDetailsPage detailsPage = documentLibraryPage.selectFile(fileName);
    AddCommentForm addCommentForm = detailsPage.clickAddCommentButton();

    // 1. Type any text and make it bold;
    TinyMceEditor tinyMceEditor = addCommentForm.getTinyMceEditor();
    tinyMceEditor.setText(text);

    tinyMceEditor.clickTextFormatter(BOLD);
    assertEquals(
        tinyMceEditor.getContent(),
        String.format("<p><b>%s</b></p>", text),
        "The text didn't mark as bold.");

    tinyMceEditor.clickTextFormatter(ITALIC);
    assertEquals(
        tinyMceEditor.getContent(),
        String.format("<p><i><b>%s</b></i></p>", text),
        "The text didn't italic.");

    tinyMceEditor.clickTextFormatter(BULLET);
    assertEquals(
        tinyMceEditor.getContent(),
        String.format("<ul><li><i><b>%s</b></i></li></ul>", text),
        "List didn't display.");

    tinyMceEditor.clickTextFormatter(NUMBER);
    assertEquals(
        tinyMceEditor.getContent(),
        String.format("<ol><li><i><b>%s</b></i></li></ol>", text),
        "Numbered list didn't display.");

    tinyMceEditor.clickColorCode(TinyMceColourCode.BLUE);
    assertEquals(
        tinyMceEditor.getColourAttribute(), "BLUE", "The text didn't highlight with any color.");

    addCommentForm.clickAddCommentButton();
    assertTrue(detailsPage.isCommentCorrect(text), "Comment didn't create");
  }
 @Test(
     groups = {"Enterprise4.2", "Cloud2"},
     priority = 19)
 public void test119managePermissionTest() {
   documentLibPage.render();
   Assert.assertTrue(
       documentLibPage.getFileDirectoryInfo(folderName).isManagePermissionLinkPresent());
   ManagePermissionsPage mangPermPage =
       (documentLibPage.getFileDirectoryInfo(folderName).selectManagePermission()).render();
   Assert.assertTrue(mangPermPage.isInheritPermissionEnabled());
   documentLibPage = ((DocumentLibraryPage) mangPermPage.selectSave()).render();
 }
 @Test(
     groups = {"alfresco-one"},
     priority = 1)
 public void test101SelectManageRules() {
   // Get folder
   FileDirectoryInfo thisRow = documentLibPage.getFileDirectoryInfo(folderName);
   FolderRulesPage page = thisRow.selectManageRules().render();
   Assert.assertNotNull(page);
   driver.navigate().to(doclibUrl);
   documentLibPage = (DocumentLibraryPage) resolvePage(driver);
   documentLibPage.render();
 }
  @Test(
      expectedExceptions = UnsupportedOperationException.class,
      groups = {"alfresco-one"},
      priority = 32)
  public void testGetContentNameFromInfoMenu() throws Exception {
    documentLibPage = resolvePage(driver).render();
    documentLibPage = documentLibPage.getSiteNav().selectDocumentLibrary().render();
    // Get File
    FileDirectoryInfo thisRow = documentLibPage.getFileDirectoryInfo(file.getName());

    thisRow.getContentNameFromInfoMenu();
  }
  @Test(groups = "EnterpriseOnly")
  public void Enterprise40x_13861() throws Exception {
    /** Start Test */
    testName = getTestName();

    /** Test Data Setup */
    String siteName = getSiteName(testName);
    String testUser = getUserNameFreeDomain(testName);
    String fileName = getFileName(testName) + ".txt";

    DocumentLibraryPage documentLibraryPage;

    String workFlowName1 = testName + System.currentTimeMillis() + "-1-WF";
    String dueDate = new DateTime().plusDays(2).toString("dd/MM/yyyy");

    // Login
    ShareUser.login(drone, testUser, DEFAULT_PASSWORD);

    documentLibraryPage = ShareUser.openSitesDocumentLibrary(drone, siteName);

    DocumentDetailsPage detailsPage = documentLibraryPage.selectFile(fileName);

    // Click Start Workflow from Actions section

    StartWorkFlowPage startWorkFlowPage =
        ShareUserWorkFlow.selectStartWorkFlowFromDetailsPage(drone).render();

    NewWorkflowPage newWorkflowPage =
        startWorkFlowPage.getWorkflowPage(WorkFlowType.NEW_WORKFLOW).render();

    List<String> reviewers = new ArrayList<String>();
    reviewers.add(username);

    WorkFlowFormDetails formDetails = new WorkFlowFormDetails(siteName, siteName, reviewers);
    formDetails.setMessage(workFlowName1);
    formDetails.setDueDate(dueDate);
    formDetails.setTaskPriority(Priority.MEDIUM);
    // detailsPage = newWorkflowPage.startWorkflow(formDetails).render();

    newWorkflowPage.startWorkflow(formDetails).render();

    // check the document is marked with icon
    assertTrue(detailsPage.isPartOfWorkflow(), "Verifying the file is part of a workflow");

    // site creator logs out and assignee user logs in
    ShareUser.logout(drone);
    ShareUser.login(drone, ADMIN_USERNAME, ADMIN_PASSWORD);

    // check the task is in MyTasks for site creator
    MyTasksPage myTasksPage = ShareUserWorkFlow.navigateToMyTasksPage(drone);
    assertTrue(myTasksPage.isTaskPresent(workFlowName1));
  }
 /**
  * Test updating an existing file with a new uploaded file. The test covers major and minor
  * version changes
  *
  * @throws Exception
  */
 private void createData() throws Exception {
   SitePage page = resolvePage(driver).render();
   documentLibPage = page.getSiteNav().selectDocumentLibrary().render();
   documentLibPage = documentLibPage.getNavigation().selectDetailedView().render();
   UploadFilePage uploadForm = documentLibPage.getNavigation().selectFileUpload().render();
   documentLibPage = uploadForm.uploadFile(testLockedFile.getCanonicalPath()).render();
   NewFolderPage newFolderPage = documentLibPage.getNavigation().selectCreateNewFolder();
   documentLibPage = newFolderPage.createNewFolder(folderName, folderDescription).render();
   uploadForm = documentLibPage.getNavigation().selectFileUpload().render();
   documentLibPage = uploadForm.uploadFile(file.getCanonicalPath()).render();
   documentLibPage = documentLibPage.getNavigation().selectDetailedView().render();
   doclibUrl = driver.getCurrentUrl();
 }
  @Test(
      groups = {"alfresco-one"},
      priority = 13)
  public void test113FavouriteMethodsForFile() throws Exception {
    documentLibPage = documentLibPage.render();
    // Get File
    FileDirectoryInfo thisRow = documentLibPage.getFileDirectoryInfo(file.getName());

    // Favorite
    Assert.assertFalse(thisRow.isFavourite());
    thisRow.selectFavourite();
    Assert.assertTrue(thisRow.isFavourite());
  }
 @Test(enabled = true, groups = "Enterprise4.2", priority = 30)
 public void cancelRenameContentTest() {
   documentLibPage = resolvePage(driver).render();
   FileDirectoryInfo thisRow = documentLibPage.getFileDirectoryInfo(folderName);
   assertFalse(thisRow.isSaveLinkVisible());
   assertFalse(thisRow.isCancelLinkVisible());
   thisRow.contentNameEnableEdit();
   assertTrue(thisRow.isSaveLinkVisible());
   assertTrue(thisRow.isCancelLinkVisible());
   thisRow.contentNameEnter(folderName + " not updated");
   thisRow.contentNameClickCancel();
   driver.navigate().refresh();
   documentLibPage = resolvePage(driver).render();
   Assert.assertEquals(documentLibPage.getFileDirectoryInfo(folderName).getName(), folderName);
 }
 @Test(
     groups = {"alfresco-one"},
     priority = 16)
 public void test116IsDeleteLinkPresent() {
   FileDirectoryInfo thisRow = documentLibPage.getFileDirectoryInfo(file.getName());
   assertTrue(thisRow.isDeletePresent());
 }
 @Test(enabled = true, groups = "alfresco-one", priority = 34)
 public void testClickTitle() {
   documentLibPage = resolvePage(driver).render();
   DocumentDetailsPage detailsPAge =
       documentLibPage.getFileDirectoryInfo(file.getName()).clickOnTitle().render();
   Assert.assertTrue(detailsPAge.isDocumentDetailsPage());
 }
 @Test(
     groups = {"alfresco-one"},
     priority = 28)
 public void test128isCommentOptionPresent() {
   documentLibPage = resolvePage(driver).render();
   Assert.assertTrue(
       documentLibPage.getFileDirectoryInfo(testLockedFile.getName()).isCommentLinkPresent(),
       "Verify the Comment option is displayed");
 }
 @Test(
     expectedExceptions = PageOperationException.class,
     groups = {"Enterprise4.2"},
     priority = 21)
 public void test121SelectDownloadFolderAsZipForFile() throws Exception {
   // Get File
   FileDirectoryInfo thisRow = documentLibPage.getFileDirectoryInfo(file.getName());
   thisRow.selectDownloadFolderAsZip();
 }
 @Test(
     groups = {"alfresco-one"},
     priority = 17)
 public void test117SelectThumbnailForFile() throws Exception {
   // Get File
   FileDirectoryInfo thisRow = documentLibPage.getFileDirectoryInfo(file.getName());
   SitePage sitePage = thisRow.selectThumbnail().render();
   Assert.assertTrue(sitePage instanceof DocumentDetailsPage);
 }
 @Test(
     groups = {"alfresco-one"},
     priority = 15)
 public void test115SelectDownloadForFile() throws Exception {
   // Get File
   FileDirectoryInfo thisRow = documentLibPage.getFileDirectoryInfo(file.getName());
   thisRow.selectDownload();
   Assert.assertNotNull(documentLibPage);
 }
 /**
  * Method renders the documentlibrary page and returns the file as FileDirectoryInfo
  *
  * @return FileDirectoryInfo element for file / row at index 1
  * @throws Exception
  */
 private FileDirectoryInfo getFile() throws Exception {
   documentLibPage = resolvePage(driver).render();
   List<FileDirectoryInfo> results = documentLibPage.getFiles();
   if (results.isEmpty()) {
     throw new Exception("Error getting file");
   } else {
     // Get file
     return results.get(1);
   }
 }
  @Test(enabled = true, groups = "Enterprise4.2", priority = 31)
  public void clickOnCategoryLink() {
    documentLibPage = resolvePage(driver).render();
    SelectAspectsPage selectAspectsPage =
        documentLibPage.getFileDirectoryInfo(folderName).selectManageAspects().render();

    // Get several aspects in left hand side
    List<DocumentAspect> aspects = new ArrayList<DocumentAspect>();
    aspects.add(CLASSIFIABLE);

    // Add several aspects to right hand side
    selectAspectsPage = selectAspectsPage.add(aspects).render();

    // Click on Apply changes on select aspects page
    selectAspectsPage.clickApplyChanges().render();

    EditDocumentPropertiesPage editDocumentPropertiesPopup =
        documentLibPage.getFileDirectoryInfo(folderName).selectEditProperties().render();
    // Add category and click ok
    CategoryPage categoryPage = editDocumentPropertiesPopup.getCategory().render();
    // Verify added category is displayed beneath categories part

    // Select add category
    categoryPage.addCategories(Arrays.asList(Categories.LANGUAGES.getValue()));

    // Click on save button in edit document properties pop up page
    categoryPage.clickOk().render();

    editDocumentPropertiesPopup.selectSave().render();

    documentLibPage =
        documentLibPage
            .getFileDirectoryInfo(folderName)
            .clickOnCategoryNameLink(Categories.LANGUAGES.getValue())
            .render();
    int i = 0;
    do {
      i++;
      driver.navigate().refresh();
      documentLibPage = resolvePage(driver).render();
    } while (!documentLibPage.isFileVisible(folderName) && i < 5);
    Assert.assertTrue(documentLibPage.isFileVisible(folderName));
  }
  @Test(
      groups = {"alfresco-one"},
      priority = 3)
  public void test103NodeRefForFolder() throws Exception {
    // Get folder
    FileDirectoryInfo thisRow = documentLibPage.getFileDirectoryInfo(folderName);

    // NodeRef
    Assert.assertNotNull(thisRow.getContentNodeRef(), "Node Reference is null");
  }
 @Test(enabled = true, groups = "alfresco-one", priority = 32)
 public void testSelectViewInBrowser() {
   documentLibPage = resolvePage(driver).render();
   FileDirectoryInfo thisRow = documentLibPage.getFileDirectoryInfo(file.getName());
   String mainWinHandle = driver.getWindowHandle();
   thisRow.selectViewInBrowser();
   assertTrue(driver.getCurrentUrl().toLowerCase().contains(file.getName().toLowerCase()));
   driver.close();
   driver.switchTo().window(mainWinHandle);
 }
  @Test(
      groups = {"alfresco-one"},
      priority = 4)
  public void test104ContentEditInfoForFolder() throws Exception {
    // Get folder
    FileDirectoryInfo thisRow = documentLibPage.getFileDirectoryInfo(folderName);

    // Get ContentEditInfo
    Assert.assertNotNull(thisRow.getContentEditInfo());
    Assert.assertTrue(thisRow.getContentEditInfo().contains("Created"));
  }
 @Test(
     groups = {"alfresco-one"},
     priority = 5)
 public void test105LikeMethodsForFolder() throws Exception {
   // Get folder
   FileDirectoryInfo thisRow = documentLibPage.getFileDirectoryInfo(folderName);
   // Like
   Assert.assertFalse(thisRow.isLiked());
   Assert.assertEquals(thisRow.getLikeCount(), "0");
   thisRow.selectLike();
 }
  @Test(
      expectedExceptions = UnsupportedOperationException.class,
      groups = {"alfresco-one"},
      priority = 8)
  public void test108SelectDownloadForFolderWithExpection() throws Exception {
    // Get folder
    FileDirectoryInfo thisRow = documentLibPage.getFileDirectoryInfo(folderName);

    if (thisRow.isFolder()) {
      thisRow.selectDownload();
    }
  }
  @Test(groups = {"DataPrepDocumentLibrary"})
  public void dataPrep_Enterprise40x_3960() throws Exception {

    String testName = getTestName();
    String testUser = getUserNameFreeDomain(testName);
    String siteName = getSiteName(testName);
    String fileName = getFileName(testName) + ".txt";

    // User
    String[] testUserInfo = new String[] {testUser};
    CreateUserAPI.CreateActivateUser(drone, ADMIN_USERNAME, testUserInfo);

    // Login
    ShareUser.login(drone, testUser, DEFAULT_PASSWORD);

    // Create Site
    ShareUser.createSite(drone, siteName, AbstractUtils.SITE_VISIBILITY_PUBLIC);
    ShareUser.openSiteDashboard(drone, siteName);
    ShareUser.openSitesDocumentLibrary(drone, siteName);

    // Upload File
    String[] fileInfo = {fileName, DOCLIB};
    DocumentLibraryPage documentLibraryPage =
        ShareUser.uploadFileInFolder(drone, fileInfo).render();

    // Upload New version of the document.
    for (int i = 0; i < 2; i++) {
      UpdateFilePage updatePage =
          documentLibraryPage.getFileDirectoryInfo(fileName).selectUploadNewVersion().render();
      updatePage.selectMajorVersionChange();
      String fileContents = String.format("New version of document %s: %s", i + 2, fileName);
      File newFileName = newFile(DATA_FOLDER + (fileName + getRandomString(3)), fileContents);
      updatePage.uploadFile(newFileName.getCanonicalPath());
      updatePage.setComment(fileName);
      SitePage sitePage = updatePage.submit().render();
      documentLibraryPage = (DocumentLibraryPage) sitePage.render();
      FileUtils.forceDelete(newFileName);
    }
  }
  @Test(
      groups = {"Enterprise4.2"},
      priority = 24)
  public void test124SelectStartWorkFlow() throws Exception {
    // Select SyncToCloud
    FileDirectoryInfo thisRow = documentLibPage.getFileDirectoryInfo(file.getName());
    StartWorkFlowPage startWorkFlowPage = thisRow.selectStartWorkFlow().render();
    Assert.assertTrue(startWorkFlowPage.getTitle().contains("Start Workflow"));

    SiteFinderPage siteFinder = startWorkFlowPage.getNav().selectSearchForSites().render();
    siteFinder = siteFinder.searchForSite(siteName).render();
    SiteDashboardPage siteDash = siteFinder.selectSite(siteName).render();
    documentLibPage = siteDash.getSiteNav().selectDocumentLibrary().render();
    Assert.assertNotNull(documentLibPage);
  }
  @Test(groups = "EnterpriseOnly")
  public void Enterprise40x_5675() {
    /** Start Test */
    testName = getTestName();

    /** Test Data Setup */
    String siteName = getSiteName(testName);
    String testUser = getUserNameFreeDomain(testName);
    String fileName = getFileName(testName) + ".txt";
    String text = getRandomString(5);
    DocumentLibraryPage documentLibraryPage;

    // Login
    ShareUser.login(drone, testUser, DEFAULT_PASSWORD);

    documentLibraryPage = ShareUser.openSitesDocumentLibrary(drone, siteName);
    // Click Comment link near created file
    DocumentDetailsPage detailsPage =
        documentLibraryPage.getFileDirectoryInfo(fileName).clickCommentsLink().render();
    // Write some text in text box and click Add Comment button
    detailsPage.addComment(text);

    // Go to document library and verify comment counter

    documentLibraryPage = ShareUser.openDocumentLibrary(drone);
    Assert.assertEquals(documentLibraryPage.getFileDirectoryInfo(fileName).getCommentsCount(), 1);

    // Go to Details page and delete the comment
    detailsPage = documentLibraryPage.selectFile(fileName);
    detailsPage.removeComment(text);

    // Go to document library and verify comment counter

    documentLibraryPage = ShareUser.openDocumentLibrary(drone);
    Assert.assertEquals(documentLibraryPage.getFileDirectoryInfo(fileName).getCommentsCount(), 0);
  }
  @Test(
      groups = {"alfresco-one"},
      priority = 10)
  public void test110NodeRefForFile() throws Exception {
    // Get File
    FileDirectoryInfo thisRow = documentLibPage.getFileDirectoryInfo(file.getName());

    // NodeRef
    Assert.assertNotNull(thisRow.getContentNodeRef(), "Node Reference is null");
    logger.info("NodeRef:" + thisRow.getContentNodeRef());

    Assert.assertFalse(thisRow.isVersionVisible());
    Assert.assertTrue(thisRow.isCheckBoxVisible());
    Assert.assertTrue(thisRow.getVersionInfo().equalsIgnoreCase("1.0"));
  }