it('[C274687] Should upload with drag and drop only the extension filter allowed when Enable extension filter is enabled', () => {
        uploadToggles.enableExtensionFilter();
        browser.driver.sleep(1000);
        uploadToggles.addExtension('.docx');

        let dragAndDrop = new DropActions();
        let dragAndDropArea = element.all(by.css('adf-upload-drag-area div')).first();

        dragAndDrop.dropFile(dragAndDropArea, docxFileModel.location);
        contentServicesPage.checkContentIsDisplayed(docxFileModel.name);

        uploadDialog.removeUploadedFile(docxFileModel.name).fileIsCancelled(docxFileModel.name);
        uploadDialog.clickOnCloseButton().dialogIsNotDisplayed();

        dragAndDrop.dropFile(dragAndDropArea, pngFileModel.location);
        contentServicesPage.checkContentIsNotDisplayed(pngFileModel.name);
        uploadDialog.dialogIsNotDisplayed();
        uploadToggles.disableExtensionFilter();
    });
    beforeAll(async (done) => {
        fileNames = Util.generateSequenceFiles(1, nrOfFiles, search.active.base, search.active.extension);
        adminFileNames = Util.generateSequenceFiles(nrOfFiles + 1, nrOfFiles + adminNrOfFiles, search.active.base, search.active.extension);
        search.active.firstFile = fileNames[0];
        search.active.secondFile = fileNames[1];
        fileNames.splice(0, 1);

        firstFileModel = new FileModel({
            'name': search.active.firstFile,
            'location': resources.Files.ADF_DOCUMENTS.TXT.file_location
        });

        let uploadActions = new UploadActions();

        this.alfrescoJsApi = new AlfrescoApi({
            provider: 'ECM',
            hostEcm: TestConfig.adf.url
        });

        await this.alfrescoJsApi.login(TestConfig.adf.adminEmail, TestConfig.adf.adminPassword);

        await this.alfrescoJsApi.core.peopleApi.addPerson(acsUser);

        await this.alfrescoJsApi.login(acsUser.id, acsUser.password);

        await uploadActions.createFolder(this.alfrescoJsApi, emptyFolderModel.name, '-my-');
        let newFolderModelUploaded = await uploadActions.createFolder(this.alfrescoJsApi, newFolderModel.name, '-my-');

        await uploadActions.createEmptyFiles(this.alfrescoJsApi, fileNames, newFolderModelUploaded.entry.id);

        await uploadActions.uploadFile(this.alfrescoJsApi, firstFileModel.location, firstFileModel.name, '-my-');

        await this.alfrescoJsApi.login(TestConfig.adf.adminEmail, TestConfig.adf.adminPassword);

        await uploadActions.createEmptyFiles(this.alfrescoJsApi, adminFileNames, newFolderModelUploaded.entry.id);

        browser.driver.sleep(15000);

        loginPage.loginToContentServicesUsingUserModel(acsUser);

        done();
    });
    it('[C268901] Should need a password when opening a protected file', () => {
        viewerPage.viewFile(protectedFile.name);

        browser.driver.sleep(3000); // wait open file

        viewerPage.checkZoomInButtonIsDisplayed();
        viewerPage.checkPasswordDialogIsDisplayed();
        viewerPage.checkPasswordSubmitDisabledIsDisplayed();

        viewerPage.enterPassword('random password');
        viewerPage.clickPasswordSubmit();
        viewerPage.checkPasswordErrorIsDisplayed();
        viewerPage.checkPasswordInputIsDisplayed();

        viewerPage.enterPassword(protectedFile.password);
        viewerPage.clickPasswordSubmit();
        viewerPage.checkFileContent('1', protectedFile.firstPageText);

        viewerPage.clickCloseButton();
    });
 beforeAll(function () {
     browser.driver.manage().deleteAllCookies();
     browser.wait(() => tribeCollection.drop()
         .then(() => tribeCollection.insert([
             {
                 id: 'e2e1',
                 name: 'E2E Example Tribe 1'
             }, {
                 id: 'e2e2',
                 name: 'E2E Example Tribe 2'
             }
         ]))
         .then(() => authorizeAllTribes())
         .then(() => tribeCollection.find({}, {}))
         .then(tribesInCollection => {
             tribeDocuments = tribesInCollection;
             return true;
         }));
     browser.get(hostName + '/test-login?username='******'&password="******"');
 });
    it('times out with a list of tasks', done => {
      browser.get(URL);
      browser.ignoreSynchronization = true;

      // Script that runs in the browser and calls whenStable with a timeout.
      let waitWithResultScript = function(done: any) {
        let rootEl = document.querySelector('example-app');
        let testability = window.getAngularTestability(rootEl);
        testability.whenStable((didWork: boolean, tasks: any) => { done(tasks); }, 1000);
      };

      element(by.css('.start-button')).click();

      browser.driver.executeAsyncScript(waitWithResultScript).then((result: any[]) => {
        let pendingTask = result[0];
        expect(pendingTask.data.delay).toEqual(5000);
        expect(pendingTask.source).toEqual('setTimeout');
        expect(element(by.css('.status')).getText()).not.toContain('done');
        done();
      });
    });
    beforeAll(async (done) => {

        this.alfrescoJsApi = new AlfrescoApi({
            provider: 'ECM',
            hostEcm: TestConfig.adf.url
        });

        await this.alfrescoJsApi.login(TestConfig.adf.adminEmail, TestConfig.adf.adminPassword);

        await this.alfrescoJsApi.core.peopleApi.addPerson(acsUser);

        await this.alfrescoJsApi.login(acsUser.id, acsUser.password);

        let firstFileUploaded = await uploadActions.uploadFile(this.alfrescoJsApi, firstFileModel.location, firstFileModel.name, '-my-');
        Object.assign(firstFileModel, firstFileUploaded.entry);

        fileHighlightUploaded = await this.alfrescoJsApi.nodes.addNode('-my-', {
            'name': Util.generateRandomString(16),
            'nodeType': 'cm:content',
            'properties': {
                'cm:title': term,
                'cm:description': 'Jadore les ' + term
            }
        });

        filesToDelete.push(fileHighlightUploaded);
        filesToDelete.push(firstFileUploaded);
        filesToDelete.push(await uploadActions.createFolder(this.alfrescoJsApi, firstFolderModel.name, '-my-'));
        filesToDelete.push(await uploadActions.createFolder(this.alfrescoJsApi, secondFolder.name, '-my-'));
        filesToDelete.push(await uploadActions.createFolder(this.alfrescoJsApi, thirdFolder.name, '-my-'));

        await browser.driver.sleep(15000); // wait search index previous file/folder uploaded

        loginPage.loginToContentServicesUsingUserModel(acsUser);

        done();
    });
    beforeAll(async (done) => {

        this.alfrescoJsApi = new AlfrescoApi({
            provider: 'ECM',
            hostEcm: TestConfig.adf.url
        });

        await this.alfrescoJsApi.login(TestConfig.adf.adminEmail, TestConfig.adf.adminPassword);

        await this.alfrescoJsApi.core.peopleApi.addPerson(acsUser);

        await this.alfrescoJsApi.login(acsUser.id, acsUser.password);

        file2Bytes = await uploadActions.uploadFile(this.alfrescoJsApi, file2BytesModel.location, file2BytesModel.name, '-my-');
        await browser.driver.sleep(15000);

        loginPage.loginToContentServices(acsUser.id, acsUser.password);

        searchDialog.checkSearchIconIsVisible()
            .clickOnSearchIcon()
            .enterTextAndPressEnter('*');

        done();
    });
    beforeAll(async (done) => {

        this.alfrescoJsApi = new AlfrescoApi({
            provider: 'ECM',
            hostEcm: TestConfig.adf.url
        });

        await this.alfrescoJsApi.login(TestConfig.adf.adminEmail, TestConfig.adf.adminPassword);

        await this.alfrescoJsApi.core.peopleApi.addPerson(acsUser);

        await this.alfrescoJsApi.login(acsUser.id, acsUser.password);

        createdFolder = await this.alfrescoJsApi.nodes.addNode('-my-', {name: nodeNames.folder, nodeType: 'cm:folder'});
        createdFile = await this.alfrescoJsApi.nodes.addNode('-my-', {name: nodeNames.document, nodeType: 'cm:content'});

        await browser.driver.sleep(15000);

        loginPage.loginToContentServicesUsingUserModel(acsUser);

        browser.get(TestConfig.adf.url + '/search;q=' + randomName + '');

        done();
    });
    it('[C260038] Should display first page, toolbar and pagination when opening a .pdf file', () => {
        contentServicesPage.checkAcsContainer();

        viewerPage.viewFile(pdfFile.name);
        browser.driver.sleep(3000); // wait open file
        viewerPage.checkZoomInButtonIsDisplayed();

        viewerPage.checkFileContent('1', pdfFile.firstPageText);
        viewerPage.checkCloseButtonIsDisplayed();
        viewerPage.checkFileNameIsDisplayed(pdfFile.name);
        viewerPage.checkFileThumbnailIsDisplayed();
        viewerPage.checkDownloadButtonIsDisplayed();
        viewerPage.checkFullScreenButtonIsDisplayed();
        viewerPage.checkInfoButtonIsDisplayed();
        viewerPage.checkPreviousPageButtonIsDisplayed();
        viewerPage.checkNextPageButtonIsDisplayed();
        viewerPage.checkPageSelectorInputIsDisplayed('1');
        viewerPage.checkPercentageIsDisplayed();
        viewerPage.checkZoomInButtonIsDisplayed();
        viewerPage.checkZoomOutButtonIsDisplayed();
        viewerPage.checkScalePageButtonIsDisplayed();

        viewerPage.clickCloseButton();
    });
 it('should delete a Clicker', () => {
   removeButton.click();
   browser.driver.sleep(1000);
   element.all(by.className('clickerList')).count()
     .then((count) => expect(count).toEqual(0));
 });