Пример #1
0
        public void MoveTask_ShouldBeMoved(bool moveIt)
        {
            //Arrange
            int initialNumberOfTask = TasksPage.GetCurrentNumberOfTasks();
            int taskIndex           = initialNumberOfTask - 1;

            TasksPage.GoToNewTaskPage(taskIndex);
            NewTaskPage.ShowMoveTaskDialog();
            int tasksListIndex        = TaskMenuOptionsDialog.GetSelectedTaskListIndex();
            int maxIndex              = TaskMenuOptionsDialog.GetNumberOfTaskLists();
            int selectedTaskListIndex = Enumerable.Range(0, maxIndex).First(value => value != tasksListIndex);

            //Act
            TaskMenuOptionsDialog.MoveToDiffTaskList(moveIt, selectedTaskListIndex);

            //Assert
            if (moveIt)
            {
                NewTaskPage.WaitForPageToLeave();
                TasksPage.AssertOnPage();
                int finalNumberOfTasks = TasksPage.GetCurrentNumberOfTasks();
                Assert.AreEqual(initialNumberOfTask - 1, finalNumberOfTasks);
            }
            else
            {
                ManageTaskListsDialog.AssertOnPage(TimeSpan.FromSeconds(10));
                Assert.True(tasksListIndex == TaskMenuOptionsDialog.GetSelectedTaskListIndex());
            }
        }
        public void MoveToDiffTaskList_ShouldBeMoved(bool moveIt)
        {
            //Arrange
            int initialNumberOfTask = TasksPage.GetCurrentNumberOfTasks();

            TaskMenuOptionsDialog.ShowMainDialog().ShowMoveToDiffTaskListDialog();
            int tasksListIndex        = TaskMenuOptionsDialog.GetSelectedTaskListIndex();
            int maxIndex              = TaskMenuOptionsDialog.GetNumberOfTaskLists();
            int selectedTaskListIndex = Enumerable.Range(0, maxIndex).First(value => value != tasksListIndex);

            //Act
            TaskMenuOptionsDialog.MoveToDiffTaskList(moveIt, selectedTaskListIndex);

            //Assert
            int finalNumberOfTask = TasksPage.GetCurrentNumberOfTasks();

            if (moveIt)
            {
                Assert.True(initialNumberOfTask - 1 == finalNumberOfTask);
            }
            else
            {
                ManageTaskListsDialog.AssertOnPage(TimeSpan.FromSeconds(10));
                Assert.True(initialNumberOfTask == finalNumberOfTask);
                Assert.True(tasksListIndex == TaskMenuOptionsDialog.GetSelectedTaskListIndex());
            }
        }
Пример #3
0
        public void AddNewTask_WithACompletitionDate_ShouldShowACompletitionDateIndicator(bool addCompletitionDate)
        {
            //Arrange
            string title               = "Title";
            string content             = $"This task has a completition date = {addCompletitionDate}";
            int    initialNumberOfTask = TasksPage.GetCurrentNumberOfTasks();
            int    taskIndex           = initialNumberOfTask;

            TasksPage.GoToNewTaskPage();

            //Act
            NewTaskPage.ShowAddEditCompletitionDate().AddCompletitionDate(addCompletitionDate);
            bool dateWasAdded = NewTaskPage.CompletitionDateIsShown();

            NewTaskPage.AddEditNewTask(title, content);

            //Assert
            int finalNumberOfTasks = TasksPage.GetCurrentNumberOfTasks();

            Assert.True(initialNumberOfTask + 1 == finalNumberOfTasks);
            Assert.AreEqual(title, TasksPage.GetTaskTitle(taskIndex));
            Assert.AreEqual(content, TasksPage.GetTaskContent(taskIndex));
            if (addCompletitionDate)
            {
                Assert.True(dateWasAdded);
                Assert.True(TasksPage.HasACompletitionDateSet(taskIndex));
            }
            else
            {
                Assert.True(!dateWasAdded);
                Assert.True(!TasksPage.HasACompletitionDateSet(taskIndex));
            }
        }
Пример #4
0
        public void AddNewTask_WithSubTasks_MustCreateXSubTasks(int subTasksToCreate)
        {
            //Arrange
            string title               = "Title";
            string content             = $"This task contains {subTasksToCreate} subtasks";
            int    initialNumberOfTask = TasksPage.GetCurrentNumberOfTasks();
            int    taskIndex           = initialNumberOfTask;

            TasksPage.GoToNewTaskPage();

            //Act
            for (int i = 1; i <= subTasksToCreate; i++)
            {
                NewTaskPage.ShowAddSubTaskDialog();
                TaskMenuOptionsDialog.AddSubTask(true, $"This is subtask number = {i}");
            }
            NewTaskPage.AddEditNewTask(title, content);

            //Assert
            int finalNumberOfTasks = TasksPage.GetCurrentNumberOfTasks();

            Assert.True(initialNumberOfTask + 1 == finalNumberOfTasks);
            Assert.DoesNotThrow(() => TasksPage.ShowSubTasks(taskIndex));
            int numberOfSubTasks = TasksPage.GetNumberOfSubTasks(taskIndex);

            Assert.True(numberOfSubTasks == subTasksToCreate);
            Assert.AreEqual(title, TasksPage.GetTaskTitle(taskIndex));
            Assert.AreEqual(content, TasksPage.GetTaskContent(taskIndex));
        }
        public void EditTaskList_TaskListIsNew_ShouldBeEdited(bool saveChanges)
        {
            //Arrange
            string title    = $"This tasklist will be edited = {saveChanges}";
            string newTitle = "The new tasklist title";

            AddNewTaskList(title);
            TasksPage.OpenDrawer();
            ManageTaskListsDialog.ShowMainDialog();

            int taskListIndex = ManageTaskListsDialog.GetTaskListIndexFromManageTaskListsDialogDialog(title);

            //Act
            ManageTaskListsDialog.ShowEditTaskListDialog(taskListIndex).EditTaskList(saveChanges, newTitle);

            //Assert
            if (saveChanges)
            {
                TasksPage.OpenDrawer();
                ManageTaskListsDialog.ShowMainDialog();
            }
            else
            {
                //In this case the dialog is shown back
                newTitle = title;
            }
            Assert.True(ManageTaskListsDialog.TaskListExistsInManageTaskListsDialog(newTitle));
        }
        public void DeleteTaskList_TaskListIsNew_ShouldBeDeleted(bool deleteIt)
        {
            //Arrange
            string title = $"This tasklist will be deleted = {deleteIt}";

            AddNewTaskList(title);
            TasksPage.OpenDrawer();
            ManageTaskListsDialog.ShowMainDialog();

            int taskListIndex            = ManageTaskListsDialog.GetTaskListIndexFromManageTaskListsDialogDialog(title);
            int initialNumberOfTaskLists = ManageTaskListsDialog.GetTaskListsCountFromManageTaskListsDialogDialog();

            //Act
            ManageTaskListsDialog.ShowDeleteTaskListDialog(taskListIndex).DeleteTaskList(deleteIt);

            //Assert
            if (deleteIt)
            {
                TasksPage.OpenDrawer();
                ManageTaskListsDialog.ShowMainDialog();
                int finalNumberOfTaskLists = ManageTaskListsDialog.GetTaskListsCountFromManageTaskListsDialogDialog();
                Assert.True(initialNumberOfTaskLists - 1 == finalNumberOfTaskLists);
            }
            else
            {
                //In this case the dialog is shown back
                int finalNumberOfTaskLists = ManageTaskListsDialog.GetTaskListsCountFromManageTaskListsDialogDialog();
                Assert.True(initialNumberOfTaskLists == finalNumberOfTaskLists);
            }
        }
Пример #7
0
        public void NavigateThroughSettings_EndsInTheTaskPage()
        {
            //Arrange
            TasksPage.OpenDrawer().GoToSettings();

            //Act
            SettingsPage.GoToGeneral();
            SettingsPage.PressBackButton();
            SettingsPage.AssertOnPage();

            SettingsPage.GoToNotifications();
            SettingsPage.PressBackButton();
            SettingsPage.AssertOnPage();

            SettingsPage.GoToSync();
            SettingsPage.PressBackButton();
            SettingsPage.AssertOnPage();

            SettingsPage.GoToAbout();
            SettingsPage.PressBackButton();
            SettingsPage.AssertOnPage();

            SettingsPage.PressBackButton();

            //Assert
            Assert.DoesNotThrow(() => TasksPage.AssertOnPage());
        }
Пример #8
0
        public void EditTask_ExistingTask_TaskIsTotallyEdited()
        {
            //Arrange
            string newTitle            = "Edited title";
            string newContent          = "This task is edited";
            string subTaskTitle        = "This is subtask of an edited task";
            int    initialNumberOfTask = TasksPage.GetCurrentNumberOfTasks();
            int    taskIndex           = initialNumberOfTask - 1;

            TasksPage.GoToNewTaskPage(taskIndex);

            //Act
            //Here we basically edit everything
            NewTaskPage.ShowAddEditCompletitionDate()
            .AddCompletitionDate(true)
            .ShowAddReminderDialog();
            TaskMenuOptionsDialog.AddAReminder(true);
            NewTaskPage.ShowAddSubTaskDialog();
            TaskMenuOptionsDialog.AddSubTask(true, subTaskTitle);
            NewTaskPage.AddEditNewTask(newTitle, newContent);

            //Assert
            int finalNumberOfTasks = TasksPage.GetCurrentNumberOfTasks();

            Assert.AreEqual(initialNumberOfTask, finalNumberOfTasks);
            Assert.AreEqual(newTitle, TasksPage.GetTaskTitle(taskIndex));
            Assert.AreEqual(newContent, TasksPage.GetTaskContent(taskIndex));
            Assert.True(TasksPage.HasACompletitionDateSet(taskIndex));
            Assert.True(TasksPage.HasAReminderDateSet(taskIndex));
            TasksPage.ShowSubTasks(taskIndex);
            Assert.True(TasksPage.HasSubTasks(taskIndex));
        }
Пример #9
0
        public void AddNewTask_CreatesOrNotANewTaskList(bool createTaskList)
        {
            //Arrange
            string title               = "Title goes here";
            string content             = "Content goes here";
            string taskListTitle       = "A new task list";
            int    initialNumberOfTask = createTaskList
                ? 0 :
                                         TasksPage.GetCurrentNumberOfTasks();
            int taskIndex = initialNumberOfTask;

            if (createTaskList)
            {
                TasksPage.OpenNewTaskListDialog().AddNewTaskList(taskListTitle);
            }
            TasksPage.GoToNewTaskPage();

            //Act
            NewTaskPage.AddEditNewTask(title, content);

            //Assert
            int finalNumberOfTasks = TasksPage.GetCurrentNumberOfTasks();

            Assert.True(createTaskList ? finalNumberOfTasks == 1 : initialNumberOfTask + 1 >= finalNumberOfTasks);
            Assert.AreEqual(title, TasksPage.GetTaskTitle(taskIndex));
            Assert.AreEqual(content, TasksPage.GetTaskContent(taskIndex));
        }
Пример #10
0
        protected override void OnElementChanged(ElementChangedEventArgs <Page> e)
        {
            base.OnElementChanged(e);
            page = e.NewElement as TasksPage;
            var activity = this.Context as Activity;

            page.platformParameters = new PlatformParameters(activity);
        }
Пример #11
0
        public void AddNewTaskList_ShouldNotContainTasks(string title)
        {
            //Arrange - Act
            AddNewTaskList(title);

            //Assert
            int tasks = TasksPage.GetCurrentNumberOfTasks();

            //since this is a new task list, it must contain 0 tasks
            Assert.True(tasks == 0);
        }
Пример #12
0
        public void ShowAccountDialog_LoggedUserIsShown(bool openFromImg)
        {
            //Arrange
            TasksPage.OpenDrawer();

            //Act
            bool accountIsShown = TasksPage.ShowAccountDialog(openFromImg).AccountIsShown();

            //Assert
            Assert.True(accountIsShown);
            Assert.True(!TasksPage.IsDrawerOpen());
        }
        public void EditTaskList_EmptyTitle_MustShowAValidationError()
        {
            //Arrange
            TasksPage.OpenDrawer();
            ManageTaskListsDialog.ShowMainDialog().ShowEditTaskListDialog();

            //Act
            bool isInvalid = ManageTaskListsDialog.IsTaskListTitleInvalid(string.Empty);

            //Assert
            Assert.True(isInvalid);
        }
Пример #14
0
        public void AddNewTask_UserCancelsCreationOfTask_ShouldGoToTheTasksPage()
        {
            //Arrange
            int initialNumberOfTask = TasksPage.GetCurrentNumberOfTasks();

            //Act
            TasksPage.GoToNewTaskPage();
            NewTaskPage.ClosePage();
            int finalNumberOfTasks = TasksPage.GetCurrentNumberOfTasks();

            //Assert
            Assert.AreEqual(initialNumberOfTask, finalNumberOfTasks);
        }
Пример #15
0
        protected void AddNewTaskList(string title)
        {
            //Arrange

            //Act
            TasksPage.OpenNewTaskListDialog();
            string hint = TasksPage.GetHint();

            TasksPage.AddNewTaskList(title);

            //Assert
            Assert.AreEqual(hint, "Title");
        }
Пример #16
0
        public virtual void BeforeEachTest()
        {
            AppManager.StartApp();

            LoginPage             = new LoginPage();
            TasksPage             = new TasksPage();
            NewTaskPage           = new NewTaskPage();
            TaskMenuOptionsDialog = new TaskMenuOptionsDialog();
            ManageTaskListsDialog = new ManageTaskListsDialog();
            SettingsPage          = new SettingsPage();

            LoginPage.Login();
        }
Пример #17
0
        public void SorTask_By(string by)
        {
            //Arrange
            int initialNumberOfTask = TasksPage.GetCurrentNumberOfTasks();

            //Act
            TasksPage.SortTasks(by);

            //Assert
            int finalNumberOfTask = TasksPage.GetCurrentNumberOfTasks();

            Assert.True(initialNumberOfTask == finalNumberOfTask);
        }
        public void Create_Task_Eng()
        {
            ManageDropDown manageDropDown
                = LoadPage <ApplicationHeader>()
                  .DoubleClickOnManageDropDown();

            TasksPage      taskPage   = manageDropDown.ClickOnTasksMenuItem();
            CreateTaskPage createTask = taskPage.ClickOnCreateTaskFolder();

            createTask.InputTitleTextField(this.task.Title);
            createTask.InputDescriptionField(this.task.Description);
            createTask.ClickOnSpecialitiesDropDown();
        }
        public void AddSubTask_EmptyTitle_MustShowAValidationError()
        {
            //Arrange
            int taskIndex = TasksPage.GetFirstNotCompletedTaskIndex();

            TaskMenuOptionsDialog.ShowMainDialog(taskIndex).ShowAddSubTaskDialog();

            //Act
            bool isInvalid = TaskMenuOptionsDialog.IsSubTaskTitleValid(string.Empty);

            //Assert
            Assert.True(isInvalid);
        }
        public void AddSubTask_ToExistingTask_ShouldSaveIt(bool saveIt)
        {
            //Arrange
            int taskIndex = TasksPage.GetFirstNotCompletedTaskIndex();

            TaskMenuOptionsDialog.ShowMainDialog(taskIndex).ShowAddSubTaskDialog();
            string hint = TasksPage.GetHint();

            //Act
            TaskMenuOptionsDialog.AddSubTask(saveIt, "A Subtask goes here");

            //Assert
            Assert.AreEqual(hint, "Title");
        }
Пример #21
0
        public void Create_Task_Eng()
        {
            ApplicationHeader appHeader   = LoadPage <ApplicationHeader>();
            ManagePopUp       managePopUp = appHeader.DoubleClickOnManageDropDown();
            TasksPage         tasksPage   = managePopUp.ClickOnTasksMenuItem();
            CreateTaskPage    createTask  = tasksPage.ClickOnCreateTaskFolder();

            createTask.InputTitleTextField(this.task.Title);
            createTask.InputDescriptionField(this.task.Description);
            createTask.ChooseSpeciality(this.task.Speciality.sector,
                                        this.task.Speciality.speciality,
                                        this.task.Speciality.level);
            createTask.ChooseCurrency(this.task.Currency);
            createTask.InputBudget(this.task.Budget);
            createTask.ChooseRewardType(this.task.RewardType);
            createTask.ClickOnAdditionalInformationLink();
            createTask.ChooseLanguage(this.task.ContractorsLanguages.firstLanguage,
                                      this.task.ContractorsLanguages.additionalLanguage);
            createTask.ChooseVisibility(this.task.Visibility);
            createTask.InputSkills(this.task.Skills.csharp,
                                   this.task.Skills.java,
                                   this.task.Skills.python);
            createTask.ChooseDuration(this.task.Duration);
            createTask.ChooseEmployment(this.task.Employment);

            ApplicationsPage appPage = createTask.ClickOnPublishButton();

            Assert.AreEqual(this.task.Title, appPage.GetTaskTitle(),
                            "Task was not created. Task title is not correct on Applications page.");

            managePopUp = appHeader.DoubleClickOnManageDropDown();
            tasksPage   = managePopUp.ClickOnTasksMenuItem();

            Assert.Contains(this.task.Title, tasksPage.GetTasksTitles(),
                            "Task was not created. Task title is not found on the Tasks Page");

            SearchPopUp     searchPopUp    = appHeader.DoubleClickOnSearchPopUp();
            TasksSearchPage taskSearchPage = searchPopUp.ClickOnTasksMenuItem();

            Assert.Contains(this.task.Title, taskSearchPage.GetTasksTitles(),
                            "Task was not created. Task title is not found on Tasks Search Page");

            managePopUp = appHeader.DoubleClickOnManageDropDown();
            tasksPage   = managePopUp.ClickOnTasksMenuItem();
            appPage     = tasksPage.ClickOnTaskFolder(this.task.Title);
            appPage.ChangeTaskStatus(this.task.TaskStatus);
        }
Пример #22
0
        public void SwipeTask_ToTheRight_ChangeTaskStatus(bool changeStatus)
        {
            //Arrange
            int  index           = 0;
            bool isTaskCompleted = TasksPage.IsTextStrikeThrough(index);

            //Act
            TasksPage.SwipeTaskTo(true, true, index).ChangeTaskStatusFromSwipedTask(changeStatus);

            //Assert
            if (changeStatus)
            {
                Assert.True(TasksPage.IsTextStrikeThrough(index) == !isTaskCompleted);
            }
            else
            {
                Assert.True(TasksPage.IsTextStrikeThrough(index) == isTaskCompleted);
            }
        }
Пример #23
0
        public void Logout_UserIsLoggedOut_ReturnsToLoginPage(bool logOut)
        {
            //Arrange
            TasksPage.OpenDrawer();

            //Act
            TasksPage.ShowLogoutDialog().Logout(logOut);

            //Assert
            if (logOut)
            {
                Assert.DoesNotThrow(() => App.WaitForElement(LoginPage.Trait.Current));
            }
            else
            {
                Assert.DoesNotThrow(() => App.WaitForElement(TasksPage.Trait.Current));
            }
            Assert.True(!TasksPage.IsDrawerOpen());
        }
Пример #24
0
        public void SwipeTask_ToTheLeft_DeleteTask(bool deleteIt)
        {
            //Arrange
            int initialNumberOfTask = TasksPage.GetCurrentNumberOfTasks();

            //Act
            TasksPage.SwipeTaskTo(false).DeleteTaskFromSwipedTask(deleteIt);

            //Assert
            int finalNumberOfTask = TasksPage.GetCurrentNumberOfTasks();

            if (deleteIt)
            {
                Assert.True(initialNumberOfTask - 1 == finalNumberOfTask);
            }
            else
            {
                Assert.True(initialNumberOfTask == finalNumberOfTask);
            }
        }
Пример #25
0
        public void AddEditTask_InvalidTitleAndContent_ShowsAValidationError(bool addTask)
        {
            //Arrange
            string title   = string.Empty;
            string content = string.Empty;

            if (addTask)
            {
                TasksPage.GoToNewTaskPage();
            }
            else
            {
                TasksPage.GoToNewTaskPage(TasksPage.GetCurrentNumberOfTasks() - 1);
            }

            //Act - Assert
            Assert.Throws <Exception>(() => NewTaskPage.AddEditNewTask(title, content));
            Assert.True(NewTaskPage.IsTaskTitleErrorValidationVisible());
            Assert.True(NewTaskPage.IsTaskContentErrorValidationVisibile());
        }
        public void DeleteTask_FreshCreatedTask_MustBeDeleted()
        {
            //Arrange
            int initialNumberOfTask = TasksPage.GetCurrentNumberOfTasks();

            TasksPage.GoToNewTaskPage();
            NewTaskPage.AddEditNewTask("A Task", "This task will be deleted");

            //Act
            //E.g: initially you have 3 task, create another one and you will have 4, but the corresponding
            //index will be equal to the initial number of tasks
            TaskMenuOptionsDialog.ShowMainDialog(initialNumberOfTask)
            .ShowDeleteTaskDialog()
            .DeleteTask(true);

            //Assert
            int finalNumberOfTask = TasksPage.GetCurrentNumberOfTasks();

            Assert.True(initialNumberOfTask == finalNumberOfTask);
        }
Пример #27
0
        public void ChangeAccentColor_AccentColorIsChanged()
        {
            //Arrange
            var currentAccentColor = TasksPage.GetAppBarBgColor();

            TasksPage.OpenDrawer().GoToSettings();
            var colors           = SettingsPage.GoToGeneral().GetAllAccentColors();
            var accentColor      = colors.First(c => !SettingsPage.ColorsAreClose(c, currentAccentColor));
            int accentColorIndex = colors.IndexOf(accentColor);

            //Act
            SettingsPage.SetAccentColor(accentColorIndex);

            //Assert
            //Since we are changing the theme, the activity must be restarted
            TasksPage.AssertOnPage(TimeSpan.FromSeconds(10));
            var finalAccentColor = TasksPage.GetAppBarBgColor();

            Assert.True(TasksPage.ColorsAreClose(finalAccentColor, accentColor));
        }
Пример #28
0
        public void EditTask_CreatesOrNotANewTaskList(bool createTaskList)
        {
            //Arrange
            string newTitle   = "Edited title";
            string newContent = "This task is edited";

            AddNewTask_CreatesOrNotANewTaskList(createTaskList);
            int initialNumberOfTask = TasksPage.GetCurrentNumberOfTasks();
            int taskIndex           = initialNumberOfTask - 1;

            //Act
            TasksPage.GoToNewTaskPage(taskIndex);
            NewTaskPage.AddEditNewTask(newTitle, newContent);

            //Assert
            int finalNumberOfTasks = TasksPage.GetCurrentNumberOfTasks();

            Assert.True(initialNumberOfTask == finalNumberOfTasks);
            Assert.AreEqual(newTitle, TasksPage.GetTaskTitle(taskIndex));
            Assert.AreEqual(newContent, TasksPage.GetTaskContent(taskIndex));
        }
Пример #29
0
        public void ChangeTheme_ThemeIsChanged()
        {
            //Arrange
            TasksPage.OpenDrawer();
            var currentThemeColor = TasksPage.GetNavigationViewBgColor();

            TasksPage.GoToSettings();

            //Act
            SettingsPage.GoToGeneral()
            .OpenAppThemeDialog()
            .ChangeAppTheme();

            //Assert
            //Since we are changing the theme, the activity must be restarted
            TasksPage.AssertOnPage(TimeSpan.FromSeconds(10));
            TasksPage.OpenDrawer();
            var finalThemeColor = TasksPage.GetNavigationViewBgColor();

            Assert.True(currentThemeColor != finalThemeColor);
        }
        public void ChangeTaskStatus_TaskAlreadyExists_ShouldChangeIt(bool changeIt)
        {
            //Arrange
            int  index           = 0;
            bool isTaskCompleted = TasksPage.IsTextStrikeThrough(index);

            //Act
            TaskMenuOptionsDialog.ShowMainDialog(index)
            .ShowChangeTaskStatusDialog()
            .ChangeTaskStatus(changeIt);

            //Assert
            if (changeIt)
            {
                Assert.True(TasksPage.IsTextStrikeThrough(index) == !isTaskCompleted);
            }
            else
            {
                Assert.True(TasksPage.IsTextStrikeThrough(index) == isTaskCompleted);
            }
        }