Index: tests/features/CMakeLists.txt =================================================================== --- tests/features/CMakeLists.txt +++ tests/features/CMakeLists.txt @@ -1 +1,7 @@ add_subdirectory(inbox) +add_subdirectory(workday) +add_subdirectory(editing) +add_subdirectory(contexts) +add_subdirectory(datasource) +add_subdirectory(pages) +add_subdirectory(projects) Index: tests/features/contexts/CMakeLists.txt =================================================================== --- /dev/null +++ tests/features/contexts/CMakeLists.txt @@ -0,0 +1,9 @@ +zanshin_feature_tests( + contextaddfeature + contexteditfeature + contextdraganddropfeature + contextremovefeature + contexttaskremovefeature + contextdisplayfeature + contexttaskaddfeature +) Index: tests/features/contexts/contextaddfeature.cpp =================================================================== --- /dev/null +++ tests/features/contexts/contextaddfeature.cpp @@ -0,0 +1,66 @@ +/* This file is part of Zanshin + + Copyright 2019 Kevin Ottens + Copyright 2019 David Faure + + This program is free software; you can redistribute it and/or + modify it under the terms of the GNU General Public License as + published by the Free Software Foundation; either version 2 of + the License or (at your option) version 3 or any later version + accepted by the membership of KDE e.V. (or its successor approved + by the membership of KDE e.V.), which shall act as a proxy + defined in Section 14 of version 3 of the license. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, + USA. +*/ + +#include +#include + +using namespace Testlib; + +// Feature: Context creation +// As someone using tasks +// I can create a context +// In order to give them some semantic +class ContextAddFeature : public QObject +{ + Q_OBJECT +private slots: + void New_contexts_appear_in_the_list() + { + ZANSHIN_CONTEXT; + Given(I_display_the_available_pages()); + When(I_add_a_context("Internet")); + And(I_list_the_items()); + Then(the_list_is({ + { "display", "icon" }, + { + { "Inbox", "mail-folder-inbox" }, + { "Workday", "go-jump-today" }, + { "Projects", "folder" }, + { "Projects / TestData » Calendar1", "folder" }, + { "Projects / TestData » Calendar1 / Prepare talk about TDD", "view-pim-tasks" }, + { "Projects / TestData » Calendar1 / Read List", "view-pim-tasks" }, + { "Projects / TestData » Calendar1 » Calendar2", "folder" }, + { "Projects / TestData » Calendar1 » Calendar2 / Backlog", "view-pim-tasks" }, + { "Contexts", "folder" }, + { "Contexts / Errands", "view-pim-notes" }, + { "Contexts / Internet", "view-pim-notes" }, + { "Contexts / Online", "view-pim-notes" }, + } + })); + } +}; + +ZANSHIN_TEST_MAIN(ContextAddFeature) + +#include "contextaddfeature.moc" Index: tests/features/contexts/contextdisplayfeature.cpp =================================================================== --- /dev/null +++ tests/features/contexts/contextdisplayfeature.cpp @@ -0,0 +1,55 @@ +/* This file is part of Zanshin + + Copyright 2019 Kevin Ottens + Copyright 2019 David Faure + + This program is free software; you can redistribute it and/or + modify it under the terms of the GNU General Public License as + published by the Free Software Foundation; either version 2 of + the License or (at your option) version 3 or any later version + accepted by the membership of KDE e.V. (or its successor approved + by the membership of KDE e.V.), which shall act as a proxy + defined in Section 14 of version 3 of the license. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, + USA. +*/ + +#include +#include + +using namespace Testlib; + +// Feature: Context content +// As someone collecting tasks +// I can display a context +// In order to see the tasks associated to it +class ContextDisplayFeature : public QObject +{ + Q_OBJECT +private slots: + void Context_tasks_appear_in_the_corresponding_page() + { + ZANSHIN_CONTEXT; + Given(I_display_the_page("Contexts / Errands")); + And(I_look_at_the_central_list()); + When(I_list_the_items()); + Then(the_list_is({ + { "display" }, + { + { "Buy kiwis" }, + } + })); + } +}; + +ZANSHIN_TEST_MAIN(ContextDisplayFeature) + +#include "contextdisplayfeature.moc" Index: tests/features/contexts/contextdraganddropfeature.cpp =================================================================== --- /dev/null +++ tests/features/contexts/contextdraganddropfeature.cpp @@ -0,0 +1,78 @@ +/* This file is part of Zanshin + + Copyright 2019 Kevin Ottens + Copyright 2019 David Faure + + This program is free software; you can redistribute it and/or + modify it under the terms of the GNU General Public License as + published by the Free Software Foundation; either version 2 of + the License or (at your option) version 3 or any later version + accepted by the membership of KDE e.V. (or its successor approved + by the membership of KDE e.V.), which shall act as a proxy + defined in Section 14 of version 3 of the license. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, + USA. +*/ + +#include +#include + +using namespace Testlib; + +// Feature: Context task association +// As someone collecting tasks +// I can associate tasks to a context +// In order to describe the tasks resources +class ContextDragAndDropFeature : public QObject +{ + Q_OBJECT +private slots: + void Dropping_a_task_on_a_context_from_the_inbox() + { + ZANSHIN_CONTEXT; + Given(I_display_the_page("Inbox")); + And(there_is_an_item_in_the_central_list("Buy rutabagas")); + When(I_drop_the_item_on_the_page_list("Contexts / Errands")); + And(I_display_the_page("Contexts / Errands")); + And(I_look_at_the_central_list()); + And(I_list_the_items()); + Then(the_list_is({ + { "display" }, + { + { "Buy kiwis" }, + { "Buy rutabagas" }, + } + })); + } + + void Dropping_a_task_on_a_context_from_the_project_central_list() + { + ZANSHIN_CONTEXT; + Given(I_display_the_page("Projects / TestData » Calendar1 / Prepare talk about TDD")); + And(there_is_an_item_in_the_central_list("Create examples and exercices")); + When(I_drop_the_item_on_the_page_list("Contexts / Online")); + And(I_display_the_page("Contexts / Online")); + And(I_look_at_the_central_list()); + And(I_list_the_items()); + Then(the_list_is({ + { "display" }, + { + { "Create examples and exercices" }, + { "Create examples and exercices / Train for the FizzBuzz kata" }, + { "Create examples and exercices / Train for the Gilded Rose kata" }, + } + })); + } +}; + +ZANSHIN_TEST_MAIN(ContextDragAndDropFeature) + +#include "contextdraganddropfeature.moc" Index: tests/features/contexts/contexteditfeature.cpp =================================================================== --- /dev/null +++ tests/features/contexts/contexteditfeature.cpp @@ -0,0 +1,65 @@ +/* This file is part of Zanshin + + Copyright 2019 Kevin Ottens + Copyright 2019 David Faure + + This program is free software; you can redistribute it and/or + modify it under the terms of the GNU General Public License as + published by the Free Software Foundation; either version 2 of + the License or (at your option) version 3 or any later version + accepted by the membership of KDE e.V. (or its successor approved + by the membership of KDE e.V.), which shall act as a proxy + defined in Section 14 of version 3 of the license. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, + USA. +*/ + +#include +#include + +using namespace Testlib; + +// Feature: Context rename +// As someone collecting tasks +// I can rename a context +// In order to refine my tasks organization +class ContextEditFeature : public QObject +{ + Q_OBJECT +private slots: + void Renamed_context_appear_in_the_list() + { + ZANSHIN_CONTEXT; + Given(I_display_the_available_pages()); + When(I_rename_a_page("Contexts", "Errands", "Chores")); + And(I_list_the_items()); + Then(the_list_is({ + { "display", "icon" }, + { + { "Inbox", "mail-folder-inbox" }, + { "Workday", "go-jump-today" }, + { "Projects", "folder" }, + { "Projects / TestData » Calendar1", "folder" }, + { "Projects / TestData » Calendar1 / Prepare talk about TDD", "view-pim-tasks" }, + { "Projects / TestData » Calendar1 / Read List", "view-pim-tasks" }, + { "Projects / TestData » Calendar1 » Calendar2", "folder" }, + { "Projects / TestData » Calendar1 » Calendar2 / Backlog", "view-pim-tasks" }, + { "Contexts", "folder" }, + { "Contexts / Chores", "view-pim-notes" }, + { "Contexts / Online", "view-pim-notes" }, + } + })); + } +}; + +ZANSHIN_TEST_MAIN(ContextEditFeature) + +#include "contexteditfeature.moc" Index: tests/features/contexts/contextremovefeature.cpp =================================================================== --- /dev/null +++ tests/features/contexts/contextremovefeature.cpp @@ -0,0 +1,64 @@ +/* This file is part of Zanshin + + Copyright 2019 Kevin Ottens + Copyright 2019 David Faure + + This program is free software; you can redistribute it and/or + modify it under the terms of the GNU General Public License as + published by the Free Software Foundation; either version 2 of + the License or (at your option) version 3 or any later version + accepted by the membership of KDE e.V. (or its successor approved + by the membership of KDE e.V.), which shall act as a proxy + defined in Section 14 of version 3 of the license. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, + USA. +*/ + +#include +#include + +using namespace Testlib; + +// Feature: Context removal +// As someone using tasks +// I can remove a context +// In order to maintain their semantic +class ContextRemoveFeature : public QObject +{ + Q_OBJECT +private slots: + void Removed_context_disappear_from_the_list() + { + ZANSHIN_CONTEXT; + Given(I_display_the_available_pages()); + When(I_remove_a_page("Contexts", "Online")); + And(I_list_the_items()); + Then(the_list_is({ + { "display", "icon" }, + { + { "Inbox", "mail-folder-inbox" }, + { "Workday", "go-jump-today" }, + { "Projects", "folder" }, + { "Projects / TestData » Calendar1", "folder" }, + { "Projects / TestData » Calendar1 / Prepare talk about TDD", "view-pim-tasks" }, + { "Projects / TestData » Calendar1 / Read List", "view-pim-tasks" }, + { "Projects / TestData » Calendar1 » Calendar2", "folder" }, + { "Projects / TestData » Calendar1 » Calendar2 / Backlog", "view-pim-tasks" }, + { "Contexts", "folder" }, + { "Contexts / Errands", "view-pim-notes" }, + } + })); + } +}; + +ZANSHIN_TEST_MAIN(ContextRemoveFeature) + +#include "contextremovefeature.moc" Index: tests/features/contexts/contexttaskaddfeature.cpp =================================================================== --- /dev/null +++ tests/features/contexts/contexttaskaddfeature.cpp @@ -0,0 +1,57 @@ +/* This file is part of Zanshin + + Copyright 2019 Kevin Ottens + Copyright 2019 David Faure + + This program is free software; you can redistribute it and/or + modify it under the terms of the GNU General Public License as + published by the Free Software Foundation; either version 2 of + the License or (at your option) version 3 or any later version + accepted by the membership of KDE e.V. (or its successor approved + by the membership of KDE e.V.), which shall act as a proxy + defined in Section 14 of version 3 of the license. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, + USA. +*/ + +#include +#include + +using namespace Testlib; + +// Feature: Task creation from a context +// As someone collecting tasks +// I can add a task directly associated to a context +// In order to give my tasks some semantic +// @wip +class ContextTaskAddFeature : public QObject +{ + Q_OBJECT +private slots: + void Task_added_from_a_context_appear_in_its_list() + { + ZANSHIN_CONTEXT; + Given(I_display_the_page("Context / Online")); + When(I_add_a_task("Checking mail")); + And(I_look_at_the_central_list()); + When(I_list_the_items()); + Then(the_list_is({ + { "display" }, + { + { "Checking mail" }, + } + })); + } +}; + +ZANSHIN_TEST_MAIN(ContextTaskAddFeature) + +#include "contexttaskaddfeature.moc" Index: tests/features/contexts/contexttaskremovefeature.cpp =================================================================== --- /dev/null +++ tests/features/contexts/contexttaskremovefeature.cpp @@ -0,0 +1,75 @@ +/* This file is part of Zanshin + + Copyright 2019 Kevin Ottens + Copyright 2019 David Faure + + This program is free software; you can redistribute it and/or + modify it under the terms of the GNU General Public License as + published by the Free Software Foundation; either version 2 of + the License or (at your option) version 3 or any later version + accepted by the membership of KDE e.V. (or its successor approved + by the membership of KDE e.V.), which shall act as a proxy + defined in Section 14 of version 3 of the license. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, + USA. +*/ + +#include +#include + +using namespace Testlib; + +// Feature: Context task dissociation +// As someone collecting tasks +// I can delete a task related to a context +// In order to keep my context meaningful +class ContextTaskRemoveFeature : public QObject +{ + Q_OBJECT +private slots: + void Removing_a_task_from_a_context_keeps_it_in_the_project_page_it_s_linked_to() + { + ZANSHIN_CONTEXT; + Given(I_display_the_page("Projects / TestData » Calendar1 / Prepare talk about TDD")); + And(there_is_an_item_in_the_central_list("Create examples and exercices")); + And(I_drop_the_item_on_the_page_list("Contexts / Online")); + And(I_display_the_page("Contexts / Online")); + And(there_is_an_item_in_the_central_list("Create examples and exercices")); + When(I_remove_the_item()); + And(I_look_at_the_central_list()); + Then(the_list_does_not_contain("Create examples and exercices")); + And(I_display_the_page("Projects / TestData » Calendar1 / Prepare talk about TDD")); + Then(there_is_an_item_in_the_central_list("Create examples and exercices")); + } + + void Removing_a_task_linked_only_to_a_context_moves_it_back_to_the_inbox() + { + ZANSHIN_CONTEXT; + Given(I_display_the_page("Inbox")); + And(I_look_at_the_central_list()); + Then(the_list_is({ + { "display" }, + { + } + })); + And(I_display_the_page("Contexts / Errands")); + And(there_is_an_item_in_the_central_list("Buy kiwis")); + When(I_remove_the_item()); + And(I_look_at_the_central_list()); + Then(the_list_does_not_contain("Buy kiwis")); + And(I_display_the_page("Inbox")); + Then(there_is_an_item_in_the_central_list("Buy kiwis")); + } +}; + +ZANSHIN_TEST_MAIN(ContextTaskRemoveFeature) + +#include "contexttaskremovefeature.moc" Index: tests/features/datasource/CMakeLists.txt =================================================================== --- /dev/null +++ tests/features/datasource/CMakeLists.txt @@ -0,0 +1,5 @@ +zanshin_feature_tests( + datasourcedefaultsettingsfeature + datasourcelistingfeature + datasourceselectionfeature +) Index: tests/features/datasource/datasourcedefaultsettingsfeature.cpp =================================================================== --- /dev/null +++ tests/features/datasource/datasourcedefaultsettingsfeature.cpp @@ -0,0 +1,58 @@ +/* This file is part of Zanshin + + Copyright 2019 Kevin Ottens + Copyright 2019 David Faure + + This program is free software; you can redistribute it and/or + modify it under the terms of the GNU General Public License as + published by the Free Software Foundation; either version 2 of + the License or (at your option) version 3 or any later version + accepted by the membership of KDE e.V. (or its successor approved + by the membership of KDE e.V.), which shall act as a proxy + defined in Section 14 of version 3 of the license. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, + USA. +*/ + +#include +#include + +using namespace Testlib; + +// Feature: Default data source +// As an advanced user +// I can choose the default data source +// In order to quickly store tasks +class DatasourceDefaultSettingsFeature : public QObject +{ + Q_OBJECT +private slots: + void Have_a_default_data_source_for_tasks_in_the_inbox() + { + ZANSHIN_CONTEXT; + Given(I_display_the_available_data_sources()); + When(I_change_the_setting("defaultCollection", 7)); + Then(the_default_data_source_is("TestData / Calendar1 / Calendar2")); + } + + void Change_the_default_data_source_for_tasks_in_the_inbox() + { + ZANSHIN_CONTEXT; + Given(I_display_the_available_data_sources()); + And(I_change_the_setting("defaultCollection", 42)); + When(I_change_the_default_data_source("TestData / Calendar1 / Calendar2")); + Then(the_setting_is("defaultCollection", 7)); + } +}; + +ZANSHIN_TEST_MAIN(DatasourceDefaultSettingsFeature) + +#include "datasourcedefaultsettingsfeature.moc" Index: tests/features/datasource/datasourcelistingfeature.cpp =================================================================== --- /dev/null +++ tests/features/datasource/datasourcelistingfeature.cpp @@ -0,0 +1,57 @@ +/* This file is part of Zanshin + + Copyright 2019 Kevin Ottens + Copyright 2019 David Faure + + This program is free software; you can redistribute it and/or + modify it under the terms of the GNU General Public License as + published by the Free Software Foundation; either version 2 of + the License or (at your option) version 3 or any later version + accepted by the membership of KDE e.V. (or its successor approved + by the membership of KDE e.V.), which shall act as a proxy + defined in Section 14 of version 3 of the license. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, + USA. +*/ + +#include +#include + +using namespace Testlib; + +// Feature: Data sources listing +// As an advanced user +// I can list sources +// In order to list and store tasks +class DatasourceListingFeature : public QObject +{ + Q_OBJECT +private slots: + void All_task_sources_appear_in_the_list() + { + ZANSHIN_CONTEXT; + Given(I_display_the_available_data_sources()); + When(I_list_the_items()); + Then(the_list_is({ + { "display", "icon" }, + { + { "TestData", "folder" }, + { "TestData / Calendar1", "view-calendar-tasks" }, + { "TestData / Calendar1 / Calendar2", "view-calendar-tasks" }, + { "TestData / Calendar1 / Calendar2 / Calendar3", "folder" }, + } + })); + } +}; + +ZANSHIN_TEST_MAIN(DatasourceListingFeature) + +#include "datasourcelistingfeature.moc" Index: tests/features/datasource/datasourceselectionfeature.cpp =================================================================== --- /dev/null +++ tests/features/datasource/datasourceselectionfeature.cpp @@ -0,0 +1,129 @@ +/* This file is part of Zanshin + + Copyright 2019 Kevin Ottens + Copyright 2019 David Faure + + This program is free software; you can redistribute it and/or + modify it under the terms of the GNU General Public License as + published by the Free Software Foundation; either version 2 of + the License or (at your option) version 3 or any later version + accepted by the membership of KDE e.V. (or its successor approved + by the membership of KDE e.V.), which shall act as a proxy + defined in Section 14 of version 3 of the license. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, + USA. +*/ + +#include +#include + +using namespace Testlib; + +// Feature: Data sources selection +// As an advanced user +// I can select or deselect sources +// In order to see more or less content +class DatasourceSelectionFeature : public QObject +{ + Q_OBJECT +private slots: + void Unchecking_impacts_the_inbox() + { + ZANSHIN_CONTEXT; + Given(I_display_the_page("Inbox")); + And(there_is_an_item_in_the_available_data_sources("TestData / Calendar1")); + When(I_uncheck_the_item()); + And(I_look_at_the_central_list()); + And(I_list_the_items()); + Then(the_list_is({ + { "display" }, + { + { "Buy apples" }, + { "Buy pears" }, + { "Errands" }, + } + })); + } + + void Checking_impacts_the_inbox() + { + ZANSHIN_CONTEXT; + Given(I_display_the_page("Inbox")); + And(there_is_an_item_in_the_available_data_sources("TestData / Calendar1")); + When(I_check_the_item()); + And(I_look_at_the_central_list()); + And(I_list_the_items()); + Then(the_list_is({ + { "display" }, + { + { "\"Capital in the Twenty-First Century\" by Thomas Piketty" }, + { "\"The Pragmatic Programmer\" by Hunt and Thomas" }, + { "Buy cheese" }, + { "Buy kiwis" }, + { "Buy apples" }, + { "Buy pears" }, + { "Errands" }, + { "Buy rutabagas" }, + } + })); + } + + void Unchecking_impacts_project_list() + { + ZANSHIN_CONTEXT; + Given(there_is_an_item_in_the_available_data_sources("TestData / Calendar1")); + When(I_uncheck_the_item()); + And(I_display_the_available_pages()); + And(I_list_the_items()); + Then(the_list_is({ + { "display" }, + { + { "Inbox" }, + { "Workday" }, + { "Projects" }, + { "Projects / TestData » Calendar1 » Calendar2" }, + { "Projects / TestData » Calendar1 » Calendar2 / Backlog" }, + { "Contexts" }, + { "Contexts / Errands" }, + { "Contexts / Online" }, + } + })); + } + + void Checking_impacts_project_list() + { + ZANSHIN_CONTEXT; + Given(there_is_an_item_in_the_available_data_sources("TestData / Calendar1")); + When(I_check_the_item()); + And(I_display_the_available_pages()); + And(I_list_the_items()); + Then(the_list_is({ + { "display" }, + { + { "Inbox" }, + { "Workday" }, + { "Projects" }, + { "Projects / TestData » Calendar1" }, + { "Projects / TestData » Calendar1 / Prepare talk about TDD" }, + { "Projects / TestData » Calendar1 / Read List" }, + { "Projects / TestData » Calendar1 » Calendar2" }, + { "Projects / TestData » Calendar1 » Calendar2 / Backlog" }, + { "Contexts" }, + { "Contexts / Errands" }, + { "Contexts / Online" }, + } + })); + } +}; + +ZANSHIN_TEST_MAIN(DatasourceSelectionFeature) + +#include "datasourceselectionfeature.moc" Index: tests/features/editing/CMakeLists.txt =================================================================== --- /dev/null +++ tests/features/editing/CMakeLists.txt @@ -0,0 +1,6 @@ +zanshin_feature_tests( + completingtaskfeature + editingtaskfeature +) +# TODO addingtaskfeature, broken by the "Examples" thing +# TODO removingtaskfeature, broken by the "Examples" thing Index: tests/features/editing/completingtaskfeature.cpp =================================================================== --- /dev/null +++ tests/features/editing/completingtaskfeature.cpp @@ -0,0 +1,62 @@ +/* This file is part of Zanshin + + Copyright 2019 Kevin Ottens + Copyright 2019 David Faure + + This program is free software; you can redistribute it and/or + modify it under the terms of the GNU General Public License as + published by the Free Software Foundation; either version 2 of + the License or (at your option) version 3 or any later version + accepted by the membership of KDE e.V. (or its successor approved + by the membership of KDE e.V.), which shall act as a proxy + defined in Section 14 of version 3 of the license. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, + USA. +*/ + +#include +#include + +using namespace Testlib; + +// Feature: Completing tasks +// As someone who just accomplished something +// I can mark a task as completed +// In order to have a warm feeling about getting it done +class CompletingTaskFeature : public QObject +{ + Q_OBJECT +private slots: + void Checking_task_in_the_list() + { + ZANSHIN_CONTEXT; + Given(I_display_the_page("Inbox")); + And(there_is_an_item_in_the_central_list("Buy cheese")); + When(I_check_the_item()); + Then(the_task_corresponding_to_the_item_is_done()); + } + + void Checking_task_in_the_editor() + { + ZANSHIN_CONTEXT; + Given(I_display_the_page("Inbox")); + And(there_is_an_item_in_the_central_list("Buy apples")); + When(I_open_the_item_in_the_editor()); + And(I_mark_the_item_done_in_the_editor()); + And(I_open_the_item_in_the_editor_again()); + Then(the_task_corresponding_to_the_item_is_done()); + And(the_editor_shows_the_task_as_done()); + } +}; + +ZANSHIN_TEST_MAIN(CompletingTaskFeature) + +#include "completingtaskfeature.moc" Index: tests/features/editing/editingtaskfeature.cpp =================================================================== --- /dev/null +++ tests/features/editing/editingtaskfeature.cpp @@ -0,0 +1,97 @@ +/* This file is part of Zanshin + + Copyright 2019 Kevin Ottens + Copyright 2019 David Faure + + This program is free software; you can redistribute it and/or + modify it under the terms of the GNU General Public License as + published by the Free Software Foundation; either version 2 of + the License or (at your option) version 3 or any later version + accepted by the membership of KDE e.V. (or its successor approved + by the membership of KDE e.V.), which shall act as a proxy + defined in Section 14 of version 3 of the license. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, + USA. +*/ + +#include +#include + +using namespace Testlib; + +// Feature: Editing tasks +// As an organized person +// I can edit a previously created task +// In order to refine its definition and react to change +class EditingTaskFeature : public QObject +{ + Q_OBJECT +private slots: + void Editing_a_task_text() + { + ZANSHIN_CONTEXT; + Given(I_display_the_page("Inbox")); + And(there_is_an_item_in_the_central_list("Buy cheese")); + When(I_open_the_item_in_the_editor()); + And(I_change_the_editor_field("text", "More information")); + And(I_open_the_item_in_the_editor_again()); + Then(the_editor_shows_the_field("text", "More information")); + And(the_editor_shows_the_field("title", "Buy cheese")); + } + + void Editing_a_task_title_using_the_editor() + { + ZANSHIN_CONTEXT; + Given(I_display_the_page("Inbox")); + And(there_is_an_item_in_the_central_list("Buy cheese")); + When(I_open_the_item_in_the_editor()); + And(I_change_the_editor_field("title", "Borrow cheese")); + And(I_open_the_item_in_the_editor_again()); + Then(the_editor_shows_the_field("title", "Borrow cheese")); + And(there_is_an_item_in_the_central_list("Borrow cheese")); + } + + void Editing_a_task_title_in_the_central_list() + { + ZANSHIN_CONTEXT; + Given(I_display_the_page("Inbox")); + And(there_is_an_item_in_the_central_list("Buy cheese")); + When(I_open_the_item_in_the_editor()); + And(I_rename_the_item("Buy better cheese")); + Then(the_editor_shows_the_field("title", "Buy better cheese")); + } + + void Editing_a_task_start_date() + { + ZANSHIN_CONTEXT; + Given(I_display_the_page("Inbox")); + And(there_is_an_item_in_the_central_list("Buy cheese")); + When(I_open_the_item_in_the_editor()); + And(I_change_the_editor_field("start date", "2014-06-20")); + And(I_open_the_item_in_the_editor_again()); + Then(the_editor_shows_the_field("start date", "2014-06-20")); + } + + void Editing_a_task_due_date() + { + ZANSHIN_CONTEXT; + Given(I_display_the_page("Inbox")); + And(there_is_an_item_in_the_central_list("Buy cheese")); + When(I_open_the_item_in_the_editor()); + And(I_change_the_editor_field("due date", "2014-07-20")); + And(I_open_the_item_in_the_editor_again()); + Then(the_editor_shows_the_field("due date", "2014-07-20")); + } +}; + +ZANSHIN_TEST_MAIN(EditingTaskFeature) + +#include "editingtaskfeature.moc" Index: tests/features/pages/CMakeLists.txt =================================================================== --- /dev/null +++ tests/features/pages/CMakeLists.txt @@ -0,0 +1,3 @@ +zanshin_feature_tests( + pagesdisplayfeature +) Index: tests/features/pages/pagesdisplayfeature.cpp =================================================================== --- /dev/null +++ tests/features/pages/pagesdisplayfeature.cpp @@ -0,0 +1,64 @@ +/* This file is part of Zanshin + + Copyright 2019 Kevin Ottens + Copyright 2019 David Faure + + This program is free software; you can redistribute it and/or + modify it under the terms of the GNU General Public License as + published by the Free Software Foundation; either version 2 of + the License or (at your option) version 3 or any later version + accepted by the membership of KDE e.V. (or its successor approved + by the membership of KDE e.V.), which shall act as a proxy + defined in Section 14 of version 3 of the license. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, + USA. +*/ + +#include +#include + +using namespace Testlib; + +// Feature: Available pages content +// As someone collecting tasks +// I can see all the pages available to me +// In order to display them and add tasks to them +class PagesDisplayFeature : public QObject +{ + Q_OBJECT +private slots: + void Inbox_projects_contexts_and_tags_appear_in_the_list() + { + ZANSHIN_CONTEXT; + Given(I_display_the_available_pages()); + When(I_list_the_items()); + Then(the_list_is({ + { "display", "icon" }, + { + { "Inbox", "mail-folder-inbox" }, + { "Workday", "go-jump-today" }, + { "Projects", "folder" }, + { "Projects / TestData » Calendar1", "folder" }, + { "Projects / TestData » Calendar1 / Prepare talk about TDD", "view-pim-tasks" }, + { "Projects / TestData » Calendar1 / Read List", "view-pim-tasks" }, + { "Projects / TestData » Calendar1 » Calendar2", "folder" }, + { "Projects / TestData » Calendar1 » Calendar2 / Backlog", "view-pim-tasks" }, + { "Contexts", "folder" }, + { "Contexts / Errands", "view-pim-notes" }, + { "Contexts / Online", "view-pim-notes" }, + } + })); + } +}; + +ZANSHIN_TEST_MAIN(PagesDisplayFeature) + +#include "pagesdisplayfeature.moc" Index: tests/features/projects/CMakeLists.txt =================================================================== --- /dev/null +++ tests/features/projects/CMakeLists.txt @@ -0,0 +1,9 @@ +zanshin_feature_tests( + projectdisplayfeature + projectaddfeature + projectdraganddropfeature + projecteditfeature + projecttaskpromotefeature + projecttaskaddfeature + projectremovefeature +) Index: tests/features/projects/projectaddfeature.cpp =================================================================== --- /dev/null +++ tests/features/projects/projectaddfeature.cpp @@ -0,0 +1,66 @@ +/* This file is part of Zanshin + + Copyright 2019 Kevin Ottens + Copyright 2019 David Faure + + This program is free software; you can redistribute it and/or + modify it under the terms of the GNU General Public License as + published by the Free Software Foundation; either version 2 of + the License or (at your option) version 3 or any later version + accepted by the membership of KDE e.V. (or its successor approved + by the membership of KDE e.V.), which shall act as a proxy + defined in Section 14 of version 3 of the license. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, + USA. +*/ + +#include +#include + +using namespace Testlib; + +// Feature: Project creation +// As someone collecting tasks +// I can create a project +// In order to organize my tasks +class ProjectAddFeature : public QObject +{ + Q_OBJECT +private slots: + void New_projects_appear_in_the_list() + { + ZANSHIN_CONTEXT; + Given(I_display_the_available_pages()); + When(I_add_a_project("Birthday", "TestData / Calendar1")); + And(I_list_the_items()); + Then(the_list_is({ + { "display", "icon" }, + { + { "Inbox", "mail-folder-inbox" }, + { "Workday", "go-jump-today" }, + { "Projects", "folder" }, + { "Projects / TestData » Calendar1", "folder" }, + { "Projects / TestData » Calendar1 / Birthday", "view-pim-tasks" }, + { "Projects / TestData » Calendar1 / Prepare talk about TDD", "view-pim-tasks" }, + { "Projects / TestData » Calendar1 / Read List", "view-pim-tasks" }, + { "Projects / TestData » Calendar1 » Calendar2", "folder" }, + { "Projects / TestData » Calendar1 » Calendar2 / Backlog", "view-pim-tasks" }, + { "Contexts", "folder" }, + { "Contexts / Errands", "view-pim-notes" }, + { "Contexts / Online", "view-pim-notes" }, + } + })); + } +}; + +ZANSHIN_TEST_MAIN(ProjectAddFeature) + +#include "projectaddfeature.moc" Index: tests/features/projects/projectdisplayfeature.cpp =================================================================== --- /dev/null +++ tests/features/projects/projectdisplayfeature.cpp @@ -0,0 +1,56 @@ +/* This file is part of Zanshin + + Copyright 2019 Kevin Ottens + Copyright 2019 David Faure + + This program is free software; you can redistribute it and/or + modify it under the terms of the GNU General Public License as + published by the Free Software Foundation; either version 2 of + the License or (at your option) version 3 or any later version + accepted by the membership of KDE e.V. (or its successor approved + by the membership of KDE e.V.), which shall act as a proxy + defined in Section 14 of version 3 of the license. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, + USA. +*/ + +#include +#include + +using namespace Testlib; + +// Feature: Project content +// As someone collecting tasks +// I can display a project +// In order to see the artifacts associated to it +class ProjectDisplayFeature : public QObject +{ + Q_OBJECT +private slots: + void Project_tasks_appear_in_the_corresponding_page() + { + ZANSHIN_CONTEXT; + Given(I_display_the_page("Projects / TestData » Calendar1 / Read List")); + And(I_look_at_the_central_list()); + When(I_list_the_items()); + Then(the_list_is({ + { "display" }, + { + { "\"Clean Code\" by Robert C Martin" }, + { "\"Domain Driven Design\" by Eric Evans" }, + } + })); + } +}; + +ZANSHIN_TEST_MAIN(ProjectDisplayFeature) + +#include "projectdisplayfeature.moc" Index: tests/features/projects/projectdraganddropfeature.cpp =================================================================== --- /dev/null +++ tests/features/projects/projectdraganddropfeature.cpp @@ -0,0 +1,77 @@ +/* This file is part of Zanshin + + Copyright 2019 Kevin Ottens + Copyright 2019 David Faure + + This program is free software; you can redistribute it and/or + modify it under the terms of the GNU General Public License as + published by the Free Software Foundation; either version 2 of + the License or (at your option) version 3 or any later version + accepted by the membership of KDE e.V. (or its successor approved + by the membership of KDE e.V.), which shall act as a proxy + defined in Section 14 of version 3 of the license. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, + USA. +*/ + +#include +#include + +using namespace Testlib; + +// Feature: Project task association +// As someone collecting tasks +// I can associate a task to a project +// In order to organize my work +class ProjectDragAndDropFeature : public QObject +{ + Q_OBJECT +private slots: + void Dropping_a_task_on_a_project() + { + ZANSHIN_CONTEXT; + Given(I_display_the_page("Inbox")); + And(there_is_an_item_in_the_central_list("\"The Pragmatic Programmer\" by Hunt and Thomas")); + When(I_drop_the_item_on_the_page_list("Projects / TestData » Calendar1 / Read List")); + And(I_display_the_page("Projects / TestData » Calendar1 / Read List")); + And(I_look_at_the_central_list()); + And(I_list_the_items()); + Then(the_list_is({ + { "display" }, + { + { "\"Clean Code\" by Robert C Martin" }, + { "\"Domain Driven Design\" by Eric Evans" }, + { "\"The Pragmatic Programmer\" by Hunt and Thomas" }, + } + })); + } + + void Dropping_a_task_on_a_project_from_context_central_list() + { + ZANSHIN_CONTEXT; + Given(I_display_the_page("Contexts / Errands")); + And(there_is_an_item_in_the_central_list("Buy kiwis")); + When(I_drop_the_item_on_the_page_list("Projects / TestData » Calendar1 » Calendar2 / Backlog")); + And(I_display_the_page("Projects / TestData » Calendar1 » Calendar2 / Backlog")); + And(I_look_at_the_central_list()); + And(I_list_the_items()); + Then(the_list_is({ + { "display" }, + { + { "Buy kiwis" }, + } + })); + } +}; + +ZANSHIN_TEST_MAIN(ProjectDragAndDropFeature) + +#include "projectdraganddropfeature.moc" Index: tests/features/projects/projecteditfeature.cpp =================================================================== --- /dev/null +++ tests/features/projects/projecteditfeature.cpp @@ -0,0 +1,65 @@ +/* This file is part of Zanshin + + Copyright 2019 Kevin Ottens + Copyright 2019 David Faure + + This program is free software; you can redistribute it and/or + modify it under the terms of the GNU General Public License as + published by the Free Software Foundation; either version 2 of + the License or (at your option) version 3 or any later version + accepted by the membership of KDE e.V. (or its successor approved + by the membership of KDE e.V.), which shall act as a proxy + defined in Section 14 of version 3 of the license. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, + USA. +*/ + +#include +#include + +using namespace Testlib; + +// Feature: Project rename +// As someone collecting tasks +// I can rename a project +// In order to refine my tasks organization +class ProjectEditFeature : public QObject +{ + Q_OBJECT +private slots: + void Renamed_projects_appear_in_the_list() + { + ZANSHIN_CONTEXT; + Given(I_display_the_available_pages()); + When(I_rename_a_page("Projects / TestData » Calendar1 » Calendar2", "Backlog", "Party")); + And(I_list_the_items()); + Then(the_list_is({ + { "display", "icon" }, + { + { "Inbox", "mail-folder-inbox" }, + { "Workday", "go-jump-today" }, + { "Projects", "folder" }, + { "Projects / TestData » Calendar1", "folder" }, + { "Projects / TestData » Calendar1 / Prepare talk about TDD", "view-pim-tasks" }, + { "Projects / TestData » Calendar1 / Read List", "view-pim-tasks" }, + { "Projects / TestData » Calendar1 » Calendar2", "folder" }, + { "Projects / TestData » Calendar1 » Calendar2 / Party", "view-pim-tasks" }, + { "Contexts", "folder" }, + { "Contexts / Errands", "view-pim-notes" }, + { "Contexts / Online", "view-pim-notes" }, + } + })); + } +}; + +ZANSHIN_TEST_MAIN(ProjectEditFeature) + +#include "projecteditfeature.moc" Index: tests/features/projects/projectremovefeature.cpp =================================================================== --- /dev/null +++ tests/features/projects/projectremovefeature.cpp @@ -0,0 +1,64 @@ +/* This file is part of Zanshin + + Copyright 2019 Kevin Ottens + Copyright 2019 David Faure + + This program is free software; you can redistribute it and/or + modify it under the terms of the GNU General Public License as + published by the Free Software Foundation; either version 2 of + the License or (at your option) version 3 or any later version + accepted by the membership of KDE e.V. (or its successor approved + by the membership of KDE e.V.), which shall act as a proxy + defined in Section 14 of version 3 of the license. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, + USA. +*/ + +#include +#include + +using namespace Testlib; + +// Feature: Project destruction +// As someone collecting tasks +// I can delete a project +// In order to clean my tasks +class ProjectRemoveFeature : public QObject +{ + Q_OBJECT +private slots: + void Removing_a_simple_project_from_the_list() + { + ZANSHIN_CONTEXT; + Given(I_display_the_available_pages()); + When(I_remove_a_page("Projects / TestData » Calendar1", "Prepare talk about TDD")); + And(I_list_the_items()); + Then(the_list_is({ + { "display", "icon" }, + { + { "Inbox", "mail-folder-inbox" }, + { "Workday", "go-jump-today" }, + { "Projects", "folder" }, + { "Projects / TestData » Calendar1", "folder" }, + { "Projects / TestData » Calendar1 / Read List", "view-pim-tasks" }, + { "Projects / TestData » Calendar1 » Calendar2", "folder" }, + { "Projects / TestData » Calendar1 » Calendar2 / Backlog", "view-pim-tasks" }, + { "Contexts", "folder" }, + { "Contexts / Errands", "view-pim-notes" }, + { "Contexts / Online", "view-pim-notes" }, + } + })); + } +}; + +ZANSHIN_TEST_MAIN(ProjectRemoveFeature) + +#include "projectremovefeature.moc" Index: tests/features/projects/projecttaskaddfeature.cpp =================================================================== --- /dev/null +++ tests/features/projects/projecttaskaddfeature.cpp @@ -0,0 +1,58 @@ +/* This file is part of Zanshin + + Copyright 2019 Kevin Ottens + Copyright 2019 David Faure + + This program is free software; you can redistribute it and/or + modify it under the terms of the GNU General Public License as + published by the Free Software Foundation; either version 2 of + the License or (at your option) version 3 or any later version + accepted by the membership of KDE e.V. (or its successor approved + by the membership of KDE e.V.), which shall act as a proxy + defined in Section 14 of version 3 of the license. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, + USA. +*/ + +#include +#include + +using namespace Testlib; + +// Feature: Task creation from a project +// As someone collecting tasks +// I can add a task directly inside a project +// In order to organize my tasks +class ProjectTaskAddFeature : public QObject +{ + Q_OBJECT +private slots: + void Task_added_from_a_project_appear_in_its_list() + { + ZANSHIN_CONTEXT; + Given(I_display_the_page("Projects / TestData » Calendar1 » Calendar2 / Backlog")); + When(I_add_a_task("Buy a cake")); + And(I_add_a_task("Buy a present")); + And(I_look_at_the_central_list()); + When(I_list_the_items()); + Then(the_list_is({ + { "display" }, + { + { "Buy a cake" }, + { "Buy a present" }, + } + })); + } +}; + +ZANSHIN_TEST_MAIN(ProjectTaskAddFeature) + +#include "projecttaskaddfeature.moc" Index: tests/features/projects/projecttaskpromotefeature.cpp =================================================================== --- /dev/null +++ tests/features/projects/projecttaskpromotefeature.cpp @@ -0,0 +1,70 @@ +/* This file is part of Zanshin + + Copyright 2019 Kevin Ottens + Copyright 2019 David Faure + + This program is free software; you can redistribute it and/or + modify it under the terms of the GNU General Public License as + published by the Free Software Foundation; either version 2 of + the License or (at your option) version 3 or any later version + accepted by the membership of KDE e.V. (or its successor approved + by the membership of KDE e.V.), which shall act as a proxy + defined in Section 14 of version 3 of the license. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, + USA. +*/ + +#include +#include + +using namespace Testlib; + +// Feature: Task promotion +// As someone collecting tasks +// I can promote a task into a project +// In order to organize my tasks +class ProjectTaskPromoteFeature : public QObject +{ + Q_OBJECT +private slots: + void Task_promoted_into_a_project_appears_in_the_list() + { + ZANSHIN_CONTEXT; + Given(I_display_the_page("Projects / TestData » Calendar1 » Calendar2 / Backlog")); + And(I_add_a_task("Design a present")); + And(I_look_at_the_central_list()); + And(there_is_an_item_in_the_central_list("Design a present")); + When(I_promote_the_item()); + And(I_display_the_available_pages()); + And(I_list_the_items()); + Then(the_list_is({ + { "display", "icon" }, + { + { "Inbox", "mail-folder-inbox" }, + { "Workday", "go-jump-today" }, + { "Projects", "folder" }, + { "Projects / TestData » Calendar1", "folder" }, + { "Projects / TestData » Calendar1 / Prepare talk about TDD", "view-pim-tasks" }, + { "Projects / TestData » Calendar1 / Read List", "view-pim-tasks" }, + { "Projects / TestData » Calendar1 » Calendar2", "folder" }, + { "Projects / TestData » Calendar1 » Calendar2 / Backlog", "view-pim-tasks" }, + { "Projects / TestData » Calendar1 » Calendar2 / Design a present", "view-pim-tasks" }, + { "Contexts", "folder" }, + { "Contexts / Errands", "view-pim-notes" }, + { "Contexts / Online", "view-pim-notes" }, + } + })); + } +}; + +ZANSHIN_TEST_MAIN(ProjectTaskPromoteFeature) + +#include "projecttaskpromotefeature.moc" Index: tests/features/workday/CMakeLists.txt =================================================================== --- /dev/null +++ tests/features/workday/CMakeLists.txt @@ -0,0 +1,12 @@ +zanshin_feature_tests( + workdaydisplayfeature + workdaypostponingfeature + workdaystartdateeditfeature + workdaydropfeature + workdaystartbuttonfeature + workdaytaskaddfeature + workdayduedateeditfeature + workdaydisplaycompletedfeature + workdaydraganddropfeature + workdaytaskremovefeature +) Index: tests/features/workday/workdaydisplaycompletedfeature.cpp =================================================================== --- /dev/null +++ tests/features/workday/workdaydisplaycompletedfeature.cpp @@ -0,0 +1,53 @@ +/* This file is part of Zanshin + + Copyright 2019 Kevin Ottens + Copyright 2019 David Faure + + This program is free software; you can redistribute it and/or + modify it under the terms of the GNU General Public License as + published by the Free Software Foundation; either version 2 of + the License or (at your option) version 3 or any later version + accepted by the membership of KDE e.V. (or its successor approved + by the membership of KDE e.V.), which shall act as a proxy + defined in Section 14 of version 3 of the license. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, + USA. +*/ + +#include +#include + +using namespace Testlib; + +// Feature: Display completed tasks in Workday list +// As someone using tasks +// I can display the Workday list +// In order to know which tasks I’ve completed today (e.g. if done date is today) +class WorkdayDisplayCompletedFeature : public QObject +{ + Q_OBJECT +private slots: + void The_tasks_that_have_been_done_today_appear_in_the_Workday_list() + { + ZANSHIN_CONTEXT; + Given(I_display_the_page("Inbox")); + And(there_is_an_item_in_the_central_list("Buy rutabagas")); + When(I_check_the_item()); + And(I_display_the_page("Workday")); + And(I_look_at_the_central_list()); + And(I_list_the_items()); + Then(the_list_contains("Buy rutabagas")); + } +}; + +ZANSHIN_TEST_MAIN(WorkdayDisplayCompletedFeature) + +#include "workdaydisplaycompletedfeature.moc" Index: tests/features/workday/workdaydisplayfeature.cpp =================================================================== --- /dev/null +++ tests/features/workday/workdaydisplayfeature.cpp @@ -0,0 +1,58 @@ +/* This file is part of Zanshin + + Copyright 2019 Kevin Ottens + Copyright 2019 David Faure + + This program is free software; you can redistribute it and/or + modify it under the terms of the GNU General Public License as + published by the Free Software Foundation; either version 2 of + the License or (at your option) version 3 or any later version + accepted by the membership of KDE e.V. (or its successor approved + by the membership of KDE e.V.), which shall act as a proxy + defined in Section 14 of version 3 of the license. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, + USA. +*/ + +#include +#include + +using namespace Testlib; + +// Feature: Workday content +// As someone using tasks +// I can display the Workday list +// In order to know which tasks should be completed today (e.g. if start date or due date is today or in the past) +class WorkdayDisplayFeature : public QObject +{ + Q_OBJECT +private slots: + void The_tasks_that_need_to_be_done_today_appear_in_the_Workday_list() + { + ZANSHIN_CONTEXT; + Given(I_display_the_page("Workday")); + And(I_look_at_the_central_list()); + When(I_list_the_items()); + Then(the_list_is({ + { "display" }, + { + { "\"Clean Code\" by Robert C Martin" }, + { "Buy kiwis" }, + { "Buy pears" }, + { "Errands" }, + } + })); + } +}; + +ZANSHIN_TEST_MAIN(WorkdayDisplayFeature) + +#include "workdaydisplayfeature.moc" Index: tests/features/workday/workdaydraganddropfeature.cpp =================================================================== --- /dev/null +++ tests/features/workday/workdaydraganddropfeature.cpp @@ -0,0 +1,75 @@ +/* This file is part of Zanshin + + Copyright 2019 Kevin Ottens + Copyright 2019 David Faure + + This program is free software; you can redistribute it and/or + modify it under the terms of the GNU General Public License as + published by the Free Software Foundation; either version 2 of + the License or (at your option) version 3 or any later version + accepted by the membership of KDE e.V. (or its successor approved + by the membership of KDE e.V.), which shall act as a proxy + defined in Section 14 of version 3 of the license. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, + USA. +*/ + +#include +#include + +using namespace Testlib; + +// Feature: Drag and drop a task in workday view +// As someone reviewing his tasks in the workday view +// I can drag task within the workday view +// In order to change parent/child relationships +class WorkdayDragAndDropFeature : public QObject +{ + Q_OBJECT +private slots: + void Parenting_a_task_in_the_Workday_page() + { + ZANSHIN_CONTEXT; + Given(I_display_the_page("Workday")); + And(I_add_a_task("parent")); + And(I_add_a_task("child")); + And(there_is_an_item_in_the_central_list("parent")); + And(there_is_an_item_in_the_central_list("child")); + When(I_drop_the_item_on_the_central_list("parent")); + And(I_look_at_the_central_list()); + And(I_list_the_items()); + Then(the_central_list_contains_items_named({ + "parent", + "parent / child", + })); + } + + void Deparenting_a_task_in_the_Workday_page() + { + ZANSHIN_CONTEXT; + Given(I_display_the_page("Workday")); + And(I_add_a_task("parent")); + And(there_is_an_item_in_the_central_list("parent")); + And(I_add_a_task_child("child", "parent")); + And(there_is_an_item_in_the_central_list("parent / child")); + When(I_drop_the_item_on_the_blank_area_of_the_central_list()); + And(I_look_at_the_central_list()); + And(I_list_the_items()); + Then(the_central_list_contains_items_named({ + "parent", + "child", + })); + } +}; + +ZANSHIN_TEST_MAIN(WorkdayDragAndDropFeature) + +#include "workdaydraganddropfeature.moc" Index: tests/features/workday/workdaydropfeature.cpp =================================================================== --- /dev/null +++ tests/features/workday/workdaydropfeature.cpp @@ -0,0 +1,72 @@ +/* This file is part of Zanshin + + Copyright 2019 Kevin Ottens + Copyright 2019 David Faure + + This program is free software; you can redistribute it and/or + modify it under the terms of the GNU General Public License as + published by the Free Software Foundation; either version 2 of + the License or (at your option) version 3 or any later version + accepted by the membership of KDE e.V. (or its successor approved + by the membership of KDE e.V.), which shall act as a proxy + defined in Section 14 of version 3 of the license. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, + USA. +*/ + +#include +#include + +using namespace Testlib; + +// Feature: Drop a task on workday view +// As someone reviewing his tasks +// I can drag a task from the current view and drop it in the workday view +// In order to have the task start today +class WorkdayDropFeature : public QObject +{ + Q_OBJECT +private slots: + void Dropping_a_task_on_Workday_page() + { + ZANSHIN_CONTEXT; + Given(I_display_the_page("Inbox")); + And(I_add_a_task("Buy Pineapples")); + And(there_is_an_item_in_the_central_list("Buy Pineapples")); + When(I_drop_the_item_on_the_page_list("Workday")); + And(I_display_the_page("Workday")); + And(I_look_at_the_central_list()); + And(I_list_the_items()); + Then(the_list_contains("Buy Pineapples")); + } + + void Dropping_two_tasks_on_Workday_page() + { + ZANSHIN_CONTEXT; + Given(I_display_the_page("Inbox")); + And(I_add_a_task("Don't eat the cake")); + And(I_add_a_task("The cake is a lie")); + And(the_central_list_contains_items_named({ + "Don't eat the cake", + "The cake is a lie", + })); + When(I_drop_items_on_the_page_list("Workday")); + And(I_display_the_page("Workday")); + And(I_look_at_the_central_list()); + And(I_list_the_items()); + Then(the_list_contains("Don't eat the cake")); + And(the_list_contains("The cake is a lie")); + } +}; + +ZANSHIN_TEST_MAIN(WorkdayDropFeature) + +#include "workdaydropfeature.moc" Index: tests/features/workday/workdayduedateeditfeature.cpp =================================================================== --- /dev/null +++ tests/features/workday/workdayduedateeditfeature.cpp @@ -0,0 +1,69 @@ +/* This file is part of Zanshin + + Copyright 2019 Kevin Ottens + Copyright 2019 David Faure + + This program is free software; you can redistribute it and/or + modify it under the terms of the GNU General Public License as + published by the Free Software Foundation; either version 2 of + the License or (at your option) version 3 or any later version + accepted by the membership of KDE e.V. (or its successor approved + by the membership of KDE e.V.), which shall act as a proxy + defined in Section 14 of version 3 of the license. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, + USA. +*/ + +#include +#include + +using namespace Testlib; + +// Feature: Modifying a task's due date +// As someone adding a task +// I can set the due date by editing the field "due date" +// In order to have a task that ends at the entered date +class WorkdayDuedateEditFeature : public QObject +{ + Q_OBJECT +private slots: + void Setting_a_date_s_due_date_to_today_makes_it_appear_in_the_Workday_page() + { + ZANSHIN_CONTEXT; + Given(I_display_the_page("Inbox")); + And(I_add_a_task("Make more test tasks")); + And(there_is_an_item_in_the_central_list("Make more test tasks")); + When(I_open_the_item_in_the_editor()); + And(I_change_the_editor_field("due date", "2015-03-10")); + And(I_display_the_page("Workday")); + And(I_look_at_the_central_list()); + And(I_list_the_items()); + Then(the_list_contains("Make more test tasks")); + } + + void Setting_a_date_s_due_date_to_a_date_in_the_past_makes_it_appear_in_the_Workday_page() + { + ZANSHIN_CONTEXT; + Given(I_display_the_page("Inbox")); + And(I_add_a_task("Buy potatoes")); + And(there_is_an_item_in_the_central_list("Buy potatoes")); + When(I_open_the_item_in_the_editor()); + And(I_change_the_editor_field("due date", "2001-03-10")); + And(I_display_the_page("Workday")); + And(I_look_at_the_central_list()); + And(I_list_the_items()); + Then(the_list_contains("Buy potatoes")); + } +}; + +ZANSHIN_TEST_MAIN(WorkdayDuedateEditFeature) + +#include "workdayduedateeditfeature.moc" Index: tests/features/workday/workdaypostponingfeature.cpp =================================================================== --- /dev/null +++ tests/features/workday/workdaypostponingfeature.cpp @@ -0,0 +1,65 @@ +/* This file is part of Zanshin + + Copyright 2019 Kevin Ottens + Copyright 2019 David Faure + + This program is free software; you can redistribute it and/or + modify it under the terms of the GNU General Public License as + published by the Free Software Foundation; either version 2 of + the License or (at your option) version 3 or any later version + accepted by the membership of KDE e.V. (or its successor approved + by the membership of KDE e.V.), which shall act as a proxy + defined in Section 14 of version 3 of the license. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, + USA. +*/ + +#include +#include + +using namespace Testlib; + +// Feature: Postponing a task +// As someone using tasks +// I can change the start or due date of a task +// In order to procrastinate +class WorkdayPostponingFeature : public QObject +{ + Q_OBJECT +private slots: + void Setting_a_date_s_start_date_to_a_date_in_the_future_makes_it_disappear_in_the_Workday_page() + { + ZANSHIN_CONTEXT; + Given(I_display_the_page("Workday")); + And(there_is_an_item_in_the_central_list("Errands")); + When(I_open_the_item_in_the_editor()); + And(I_change_the_editor_field("start date", "2015-03-20")); + And(I_look_at_the_central_list()); + And(I_list_the_items()); + Then(the_list_does_not_contain("Errands")); + } + + void Setting_a_date_s_due_date_to_a_date_in_the_future_makes_it_disappear_in_the_Workday_page() + { + ZANSHIN_CONTEXT; + Given(I_display_the_page("Workday")); + And(there_is_an_item_in_the_central_list("Buy kiwis")); + When(I_open_the_item_in_the_editor()); + And(I_change_the_editor_field("due date", "2015-03-20")); + And(I_look_at_the_central_list()); + And(I_list_the_items()); + Then(the_list_does_not_contain("Buy kiwis")); + } +}; + +ZANSHIN_TEST_MAIN(WorkdayPostponingFeature) + +#include "workdaypostponingfeature.moc" Index: tests/features/workday/workdaystartbuttonfeature.cpp =================================================================== --- /dev/null +++ tests/features/workday/workdaystartbuttonfeature.cpp @@ -0,0 +1,42 @@ +/* This file is part of Zanshin + + Copyright 2019 Kevin Ottens + Copyright 2019 David Faure + + This program is free software; you can redistribute it and/or + modify it under the terms of the GNU General Public License as + published by the Free Software Foundation; either version 2 of + the License or (at your option) version 3 or any later version + accepted by the membership of KDE e.V. (or its successor approved + by the membership of KDE e.V.), which shall act as a proxy + defined in Section 14 of version 3 of the license. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, + USA. +*/ + +#include +#include + +using namespace Testlib; + +// Feature: adding a task with start today button +// As someone using tasks +// I can set the date of a task to today by clicking on the "start today" button +// In order to have my task start today + +class WorkdayStartbuttonFeature : public QObject +{ + Q_OBJECT +}; + +ZANSHIN_TEST_MAIN(WorkdayStartbuttonFeature) + +#include "workdaystartbuttonfeature.moc" Index: tests/features/workday/workdaystartdateeditfeature.cpp =================================================================== --- /dev/null +++ tests/features/workday/workdaystartdateeditfeature.cpp @@ -0,0 +1,71 @@ +/* This file is part of Zanshin + + Copyright 2019 Kevin Ottens + Copyright 2019 David Faure + + This program is free software; you can redistribute it and/or + modify it under the terms of the GNU General Public License as + published by the Free Software Foundation; either version 2 of + the License or (at your option) version 3 or any later version + accepted by the membership of KDE e.V. (or its successor approved + by the membership of KDE e.V.), which shall act as a proxy + defined in Section 14 of version 3 of the license. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, + USA. +*/ + +#include +#include + +using namespace Testlib; + +// Feature: Modifying a task's start date +// As someone using tasks +// I can modify the start date of tasks to today +// In order to have them plan from today +class WorkdayStartdateEditFeature : public QObject +{ + Q_OBJECT +private slots: + void Setting_a_date_s_start_date_to_today_makes_it_appear_in_the_workday_view() + { + ZANSHIN_CONTEXT; + Given(I_display_the_page("Inbox")); + And(there_is_an_item_in_the_central_list("Buy rutabagas")); + When(I_open_the_item_in_the_editor()); + And(I_change_the_editor_field("start date", "2015-03-10")); + And(I_display_the_page("Workday")); + And(I_look_at_the_central_list()); + And(I_list_the_items()); + Then(the_list_contains("Buy rutabagas")); + } + + void Setting_a_date_s_start_date_to_a_date_in_the_past_makes_it_appear_in_the_workday_view() + { + ZANSHIN_CONTEXT; + Given(I_display_the_page("Workday")); + And(I_look_at_the_central_list()); + And(I_list_the_items()); + And(the_list_does_not_contain("Buy rutabagas")); + And(I_display_the_page("Inbox")); + And(there_is_an_item_in_the_central_list("Buy rutabagas")); + When(I_open_the_item_in_the_editor()); + And(I_change_the_editor_field("start date", "2014-03-10")); + And(I_display_the_page("Workday")); + And(I_look_at_the_central_list()); + And(I_list_the_items()); + Then(the_list_contains("Buy rutabagas")); + } +}; + +ZANSHIN_TEST_MAIN(WorkdayStartdateEditFeature) + +#include "workdaystartdateeditfeature.moc" Index: tests/features/workday/workdaytaskaddfeature.cpp =================================================================== --- /dev/null +++ tests/features/workday/workdaytaskaddfeature.cpp @@ -0,0 +1,51 @@ +/* This file is part of Zanshin + + Copyright 2019 Kevin Ottens + Copyright 2019 David Faure + + This program is free software; you can redistribute it and/or + modify it under the terms of the GNU General Public License as + published by the Free Software Foundation; either version 2 of + the License or (at your option) version 3 or any later version + accepted by the membership of KDE e.V. (or its successor approved + by the membership of KDE e.V.), which shall act as a proxy + defined in Section 14 of version 3 of the license. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, + USA. +*/ + +#include +#include + +using namespace Testlib; + +// Feature: Adding a task from the workday view +// As someone adding tasks +// I can input a task for today in the quick entry +// In order to have a new task that starts today +class WorkdayTaskAddFeature : public QObject +{ + Q_OBJECT +private slots: + void Tasks_added_from_the_workday_view_start_today() + { + ZANSHIN_CONTEXT; + Given(I_display_the_page("Workday")); + When(I_look_at_the_central_list()); + And(I_add_a_task("Burn some confidential documents")); + And(I_list_the_items()); + Then(the_list_contains("Burn some confidential documents")); + } +}; + +ZANSHIN_TEST_MAIN(WorkdayTaskAddFeature) + +#include "workdaytaskaddfeature.moc" Index: tests/features/workday/workdaytaskremovefeature.cpp =================================================================== --- /dev/null +++ tests/features/workday/workdaytaskremovefeature.cpp @@ -0,0 +1,51 @@ +/* This file is part of Zanshin + + Copyright 2019 Kevin Ottens + Copyright 2019 David Faure + + This program is free software; you can redistribute it and/or + modify it under the terms of the GNU General Public License as + published by the Free Software Foundation; either version 2 of + the License or (at your option) version 3 or any later version + accepted by the membership of KDE e.V. (or its successor approved + by the membership of KDE e.V.), which shall act as a proxy + defined in Section 14 of version 3 of the license. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, + USA. +*/ + +#include +#include + +using namespace Testlib; + +// Feature: Removing a task +// As someone using tasks +// I can remove a task +// In order to clean up +class WorkdayTaskRemoveFeature : public QObject +{ + Q_OBJECT +private slots: + void Removing_a_task_that_appear_in_the_Workday_list() + { + ZANSHIN_CONTEXT; + Given(I_display_the_page("Workday")); + And(there_is_an_item_in_the_central_list("Buy pears")); + When(I_remove_the_item()); + And(I_list_the_items()); + Then(the_list_does_not_contain("Buy pears")); + } +}; + +ZANSHIN_TEST_MAIN(WorkdayTaskRemoveFeature) + +#include "workdaytaskremovefeature.moc" Index: tests/features/zanshin/features/contexts/context-add.feature =================================================================== --- tests/features/zanshin/features/contexts/context-add.feature +++ /dev/null @@ -1,25 +0,0 @@ -Feature: Context creation - As someone using tasks - I can create a context - In order to give them some semantic - - - Scenario: New contexts appear in the list - Given I display the available pages - When I add a "context" named "Internet" - And I list the items - Then the list is: - | display | icon | - | Inbox | mail-folder-inbox | - | Workday | go-jump-today | - | Projects | folder | - | Projects / TestData » Calendar1 | folder | - | Projects / TestData » Calendar1 / Prepare talk about TDD | view-pim-tasks | - | Projects / TestData » Calendar1 / Read List | view-pim-tasks | - | Projects / TestData » Calendar1 » Calendar2 | folder | - | Projects / TestData » Calendar1 » Calendar2 / Backlog | view-pim-tasks | - | Contexts | folder | - | Contexts / Errands | view-pim-notes | - | Contexts / Internet | view-pim-notes | - | Contexts / Online | view-pim-notes | - Index: tests/features/zanshin/features/contexts/context-display.feature =================================================================== --- tests/features/zanshin/features/contexts/context-display.feature +++ /dev/null @@ -1,12 +0,0 @@ -Feature: Context content - As someone collecting tasks - I can display a context - In order to see the tasks associated to it - - Scenario: Context tasks appear in the corresponding page - Given I display the "Contexts / Errands" page - And I look at the central list - When I list the items - Then the list is: - | display | - | Buy kiwis | Index: tests/features/zanshin/features/contexts/context-drag-and-drop.feature =================================================================== --- tests/features/zanshin/features/contexts/context-drag-and-drop.feature +++ /dev/null @@ -1,29 +0,0 @@ -Feature: Context task association - As someone collecting tasks - I can associate tasks to a context - In order to describe the tasks resources - - Scenario: Dropping a task on a context from the inbox - Given I display the "Inbox" page - And there is an item named "Buy rutabagas" in the central list - When I drop the item on "Contexts / Errands" in the page list - And I display the "Contexts / Errands" page - And I look at the central list - And I list the items - Then the list is: - | display | - | Buy kiwis | - | Buy rutabagas | - - Scenario: Dropping a task on a context from the project central list - Given I display the "Projects / TestData » Calendar1 / Prepare talk about TDD" page - And there is an item named "Create examples and exercices" in the central list - When I drop the item on "Contexts / Online" in the page list - And I display the "Contexts / Online" page - And I look at the central list - And I list the items - Then the list is: - | display | - | Create examples and exercices | - | Create examples and exercices / Train for the FizzBuzz kata | - | Create examples and exercices / Train for the Gilded Rose kata | Index: tests/features/zanshin/features/contexts/context-edit.feature =================================================================== --- tests/features/zanshin/features/contexts/context-edit.feature +++ /dev/null @@ -1,22 +0,0 @@ -Feature: Context rename - As someone collecting tasks - I can rename a context - In order to refine my tasks organization - - Scenario: Renamed context appear in the list - Given I display the available pages - When I rename the page named "Errands" under "Contexts" to "Chores" - And I list the items - Then the list is: - | display | icon | - | Inbox | mail-folder-inbox | - | Workday | go-jump-today | - | Projects | folder | - | Projects / TestData » Calendar1 | folder | - | Projects / TestData » Calendar1 / Prepare talk about TDD | view-pim-tasks | - | Projects / TestData » Calendar1 / Read List | view-pim-tasks | - | Projects / TestData » Calendar1 » Calendar2 | folder | - | Projects / TestData » Calendar1 » Calendar2 / Backlog | view-pim-tasks | - | Contexts | folder | - | Contexts / Chores | view-pim-notes | - | Contexts / Online | view-pim-notes | Index: tests/features/zanshin/features/contexts/context-remove.feature =================================================================== --- tests/features/zanshin/features/contexts/context-remove.feature +++ /dev/null @@ -1,22 +0,0 @@ -Feature: Context removal - As someone using tasks - I can remove a context - In order to maintain their semantic - - Scenario: Removed context disappear from the list - Given I display the available pages - When I remove the page named "Online" under "Contexts" - And I list the items - Then the list is: - | display | icon | - | Inbox | mail-folder-inbox | - | Workday | go-jump-today | - | Projects | folder | - | Projects / TestData » Calendar1 | folder | - | Projects / TestData » Calendar1 / Prepare talk about TDD | view-pim-tasks | - | Projects / TestData » Calendar1 / Read List | view-pim-tasks | - | Projects / TestData » Calendar1 » Calendar2 | folder | - | Projects / TestData » Calendar1 » Calendar2 / Backlog | view-pim-tasks | - | Contexts | folder | - | Contexts / Errands | view-pim-notes | - Index: tests/features/zanshin/features/contexts/context-task-add.feature =================================================================== --- tests/features/zanshin/features/contexts/context-task-add.feature +++ /dev/null @@ -1,13 +0,0 @@ -Feature: Task creation from a context - As someone collecting tasks - I can add a task directly associated to a context - In order to give my tasks some semantic -@wip - Scenario: Task added from a context appear in its list - Given I display the "Context / Online" page - When I add a "task" named "Checking mail" - And I look at the central list - When I list the items - Then the list is: - | display | - | Checking mail | Index: tests/features/zanshin/features/contexts/context-task-remove.feature =================================================================== --- tests/features/zanshin/features/contexts/context-task-remove.feature +++ /dev/null @@ -1,29 +0,0 @@ -Feature: Context task dissociation - As someone collecting tasks - I can delete a task related to a context - In order to keep my context meaningful - - Scenario: Removing a task from a context keeps it in the project page it's linked to - Given I display the "Projects / TestData » Calendar1 / Prepare talk about TDD" page - And there is an item named "Create examples and exercices" in the central list - And I drop the item on "Contexts / Online" in the page list - And I display the "Contexts / Online" page - And there is an item named "Create examples and exercices" in the central list - When I remove the item - And I look at the central list - Then the list does not contain "Create examples and exercices" - And I display the "Projects / TestData » Calendar1 / Prepare talk about TDD" page - Then there is an item named "Create examples and exercices" in the central list - - Scenario: Removing a task linked only to a context moves it back to the inbox - Given I display the "Inbox" page - And I look at the central list - Then the list is: - | display | - And I display the "Contexts / Errands" page - And there is an item named "Buy kiwis" in the central list - When I remove the item - And I look at the central list - Then the list does not contain "Buy kiwis" - And I display the "Inbox" page - Then there is an item named "Buy kiwis" in the central list Index: tests/features/zanshin/features/datasource/datasource-default-settings.feature =================================================================== --- tests/features/zanshin/features/datasource/datasource-default-settings.feature +++ /dev/null @@ -1,16 +0,0 @@ -Feature: Default data source - As an advanced user - I can choose the default data source - In order to quickly store tasks - - Scenario: Have a default data source for tasks in the inbox - Given I display the available data sources - When the setting key defaultCollection changes to 7 - Then the default data source is "TestData / Calendar1 / Calendar2" - - Scenario: Change the default data source for tasks in the inbox - Given I display the available data sources - And the setting key defaultCollection changes to 42 - When the user changes the default data source to "TestData / Calendar1 / Calendar2" - Then the setting key defaultCollection is 7 - Index: tests/features/zanshin/features/datasource/datasource-listing.feature =================================================================== --- tests/features/zanshin/features/datasource/datasource-listing.feature +++ /dev/null @@ -1,14 +0,0 @@ -Feature: Data sources listing - As an advanced user - I can list sources - In order to list and store tasks - - Scenario: All task sources appear in the list - Given I display the available data sources - When I list the items - Then the list is: - | display | icon | - | TestData | folder | - | TestData / Calendar1 | view-calendar-tasks | - | TestData / Calendar1 / Calendar2 | view-calendar-tasks | - | TestData / Calendar1 / Calendar2 / Calendar3 | folder | Index: tests/features/zanshin/features/datasource/datasource-selection.feature =================================================================== --- tests/features/zanshin/features/datasource/datasource-selection.feature +++ /dev/null @@ -1,68 +0,0 @@ -Feature: Data sources selection - As an advanced user - I can select or deselect sources - In order to see more or less content - - Scenario: Unchecking impacts the inbox - Given I display the "Inbox" page - And there is an item named "TestData / Calendar1" in the available data sources - When I uncheck the item - And I look at the central list - And I list the items - Then the list is: - | display | - | Buy apples | - | Buy pears | - | Errands | - - Scenario: Checking impacts the inbox - Given I display the "Inbox" page - And there is an item named "TestData / Calendar1" in the available data sources - When I check the item - And I look at the central list - And I list the items - Then the list is: - | display | - | "Capital in the Twenty-First Century" by Thomas Piketty | - | "The Pragmatic Programmer" by Hunt and Thomas | - | Buy cheese | - | Buy kiwis | - | Buy apples | - | Buy pears | - | Errands | - | Buy rutabagas | - - Scenario: Unchecking impacts project list - Given there is an item named "TestData / Calendar1" in the available data sources - When I uncheck the item - And I display the available pages - And I list the items - Then the list is: - | display | - | Inbox | - | Workday | - | Projects | - | Projects / TestData » Calendar1 » Calendar2 | - | Projects / TestData » Calendar1 » Calendar2 / Backlog | - | Contexts | - | Contexts / Errands | - | Contexts / Online | - - Scenario: Checking impacts project list - Given there is an item named "TestData / Calendar1" in the available data sources - When I check the item - And I display the available pages - And I list the items - Then the list is: - | display | - | Inbox | - | Workday | - | Projects | - | Projects / TestData » Calendar1 | - | Projects / TestData » Calendar1 / Prepare talk about TDD | - | Projects / TestData » Calendar1 / Read List | - | Projects / TestData » Calendar1 » Calendar2 | - | Projects / TestData » Calendar1 » Calendar2 / Backlog | - | Contexts | - | Contexts / Errands | - | Contexts / Online | Index: tests/features/zanshin/features/editing/completing-task.feature =================================================================== --- tests/features/zanshin/features/editing/completing-task.feature +++ /dev/null @@ -1,20 +0,0 @@ -Feature: Completing tasks - As someone who just accomplished something - I can mark a task as completed - In order to have a warm feeling about getting it done - - Scenario: Checking task in the list - Given I display the "Inbox" page - And there is an item named "Buy cheese" in the central list - When I check the item - Then the task corresponding to the item is done - - Scenario: Checking task in the editor - Given I display the "Inbox" page - And there is an item named "Buy apples" in the central list - When I open the item in the editor - And I mark it done in the editor - And I open the item in the editor again - Then the task corresponding to the item is done - And the editor shows the task as done - Index: tests/features/zanshin/features/editing/editing-task.feature =================================================================== --- tests/features/zanshin/features/editing/editing-task.feature +++ /dev/null @@ -1,46 +0,0 @@ -Feature: Editing tasks - As an organized person - I can edit a previously created task - In order to refine its definition and react to change - - Scenario: Editing a task text - Given I display the "Inbox" page - And there is an item named "Buy cheese" in the central list - When I open the item in the editor - And I change the editor text to "More information" - And I open the item in the editor again - Then the editor shows "More information" as text - And the editor shows "Buy cheese" as title - - Scenario: Editing a task title using the editor - Given I display the "Inbox" page - And there is an item named "Buy cheese" in the central list - When I open the item in the editor - And I change the editor title to "Borrow cheese" - And I open the item in the editor again - Then the editor shows "Borrow cheese" as title - And there is an item named "Borrow cheese" in the central list - - Scenario: Editing a task title in the central list - Given I display the "Inbox" page - And there is an item named "Buy cheese" in the central list - When I open the item in the editor - And I rename the item to "Buy better cheese" - Then the editor shows "Buy better cheese" as title - - Scenario: Editing a task start date - Given I display the "Inbox" page - And there is an item named "Buy cheese" in the central list - When I open the item in the editor - And I change the editor start date to "2014-06-20" - And I open the item in the editor again - Then the editor shows "2014-06-20" as start date - - Scenario: Editing a task due date - Given I display the "Inbox" page - And there is an item named "Buy cheese" in the central list - When I open the item in the editor - And I change the editor due date to "2014-07-20" - And I open the item in the editor again - Then the editor shows "2014-07-20" as due date - Index: tests/features/zanshin/features/pages/pages-display.feature =================================================================== --- tests/features/zanshin/features/pages/pages-display.feature +++ /dev/null @@ -1,22 +0,0 @@ -Feature: Available pages content - As someone collecting tasks - I can see all the pages available to me - In order to display them and add tasks to them - - Scenario: Inbox, projects, contexts and tags appear in the list - Given I display the available pages - When I list the items - Then the list is: - | display | icon | - | Inbox | mail-folder-inbox | - | Workday | go-jump-today | - | Projects | folder | - | Projects / TestData » Calendar1 | folder | - | Projects / TestData » Calendar1 / Prepare talk about TDD | view-pim-tasks | - | Projects / TestData » Calendar1 / Read List | view-pim-tasks | - | Projects / TestData » Calendar1 » Calendar2 | folder | - | Projects / TestData » Calendar1 » Calendar2 / Backlog | view-pim-tasks | - | Contexts | folder | - | Contexts / Errands | view-pim-notes | - | Contexts / Online | view-pim-notes | - Index: tests/features/zanshin/features/projects/project-add.feature =================================================================== --- tests/features/zanshin/features/projects/project-add.feature +++ /dev/null @@ -1,23 +0,0 @@ -Feature: Project creation - As someone collecting tasks - I can create a project - In order to organize my tasks - - Scenario: New projects appear in the list - Given I display the available pages - When I add a project named "Birthday" in the source named "TestData / Calendar1" - And I list the items - Then the list is: - | display | icon | - | Inbox | mail-folder-inbox | - | Workday | go-jump-today | - | Projects | folder | - | Projects / TestData » Calendar1 | folder | - | Projects / TestData » Calendar1 / Birthday | view-pim-tasks | - | Projects / TestData » Calendar1 / Prepare talk about TDD | view-pim-tasks | - | Projects / TestData » Calendar1 / Read List | view-pim-tasks | - | Projects / TestData » Calendar1 » Calendar2 | folder | - | Projects / TestData » Calendar1 » Calendar2 / Backlog | view-pim-tasks | - | Contexts | folder | - | Contexts / Errands | view-pim-notes | - | Contexts / Online | view-pim-notes | Index: tests/features/zanshin/features/projects/project-display.feature =================================================================== --- tests/features/zanshin/features/projects/project-display.feature +++ /dev/null @@ -1,13 +0,0 @@ -Feature: Project content - As someone collecting tasks - I can display a project - In order to see the artifacts associated to it - - Scenario: Project tasks appear in the corresponding page - Given I display the "Projects / TestData » Calendar1 / Read List" page - And I look at the central list - When I list the items - Then the list is: - | display | - | "Clean Code" by Robert C Martin | - | "Domain Driven Design" by Eric Evans | Index: tests/features/zanshin/features/projects/project-drag-and-drop.feature =================================================================== --- tests/features/zanshin/features/projects/project-drag-and-drop.feature +++ /dev/null @@ -1,28 +0,0 @@ -Feature: Project task association - As someone collecting tasks - I can associate a task to a project - In order to organize my work - - Scenario: Dropping a task on a project - Given I display the "Inbox" page - And there is an item named ""The Pragmatic Programmer" by Hunt and Thomas" in the central list - When I drop the item on "Projects / TestData » Calendar1 / Read List" in the page list - And I display the "Projects / TestData » Calendar1 / Read List" page - And I look at the central list - And I list the items - Then the list is: - | display | - | "Clean Code" by Robert C Martin | - | "Domain Driven Design" by Eric Evans | - | "The Pragmatic Programmer" by Hunt and Thomas | - - Scenario: Dropping a task on a project from context central list - Given I display the "Contexts / Errands" page - And there is an item named "Buy kiwis" in the central list - When I drop the item on "Projects / TestData » Calendar1 » Calendar2 / Backlog" in the page list - And I display the "Projects / TestData » Calendar1 » Calendar2 / Backlog" page - And I look at the central list - And I list the items - Then the list is: - | display | - | Buy kiwis | Index: tests/features/zanshin/features/projects/project-edit.feature =================================================================== --- tests/features/zanshin/features/projects/project-edit.feature +++ /dev/null @@ -1,22 +0,0 @@ -Feature: Project rename - As someone collecting tasks - I can rename a project - In order to refine my tasks organization - - Scenario: Renamed projects appear in the list - Given I display the available pages - When I rename the page named "Backlog" under "Projects / TestData » Calendar1 » Calendar2" to "Party" - And I list the items - Then the list is: - | display | icon | - | Inbox | mail-folder-inbox | - | Workday | go-jump-today | - | Projects | folder | - | Projects / TestData » Calendar1 | folder | - | Projects / TestData » Calendar1 / Prepare talk about TDD | view-pim-tasks | - | Projects / TestData » Calendar1 / Read List | view-pim-tasks | - | Projects / TestData » Calendar1 » Calendar2 | folder | - | Projects / TestData » Calendar1 » Calendar2 / Party | view-pim-tasks | - | Contexts | folder | - | Contexts / Errands | view-pim-notes | - | Contexts / Online | view-pim-notes | Index: tests/features/zanshin/features/projects/project-remove.feature =================================================================== --- tests/features/zanshin/features/projects/project-remove.feature +++ /dev/null @@ -1,21 +0,0 @@ -Feature: Project destruction - As someone collecting tasks - I can delete a project - In order to clean my tasks - - Scenario: Removing a simple project from the list - Given I display the available pages - When I remove the page named "Prepare talk about TDD" under "Projects / TestData » Calendar1" - And I list the items - Then the list is: - | display | icon | - | Inbox | mail-folder-inbox | - | Workday | go-jump-today | - | Projects | folder | - | Projects / TestData » Calendar1 | folder | - | Projects / TestData » Calendar1 / Read List | view-pim-tasks | - | Projects / TestData » Calendar1 » Calendar2 | folder | - | Projects / TestData » Calendar1 » Calendar2 / Backlog | view-pim-tasks | - | Contexts | folder | - | Contexts / Errands | view-pim-notes | - | Contexts / Online | view-pim-notes | Index: tests/features/zanshin/features/projects/project-task-add.feature =================================================================== --- tests/features/zanshin/features/projects/project-task-add.feature +++ /dev/null @@ -1,15 +0,0 @@ -Feature: Task creation from a project -As someone collecting tasks -I can add a task directly inside a project -In order to organize my tasks - - Scenario: Task added from a project appear in its list - Given I display the "Projects / TestData » Calendar1 » Calendar2 / Backlog" page - When I add a "task" named "Buy a cake" - And I add a "task" named "Buy a present" - And I look at the central list - When I list the items - Then the list is: - | display | - | Buy a cake | - | Buy a present | Index: tests/features/zanshin/features/projects/project-task-promote.feature =================================================================== --- tests/features/zanshin/features/projects/project-task-promote.feature +++ /dev/null @@ -1,28 +0,0 @@ -Feature: Task promotion -As someone collecting tasks -I can promote a task into a project -In order to organize my tasks - - Scenario: Task promoted into a project appears in the list - Given I display the "Projects / TestData » Calendar1 » Calendar2 / Backlog" page - And I add a "task" named "Design a present" - And I look at the central list - And there is an item named "Design a present" in the central list - When I promote the item - And I display the available pages - And I list the items - Then the list is: - | display | icon | - | Inbox | mail-folder-inbox | - | Workday | go-jump-today | - | Projects | folder | - | Projects / TestData » Calendar1 | folder | - | Projects / TestData » Calendar1 / Prepare talk about TDD | view-pim-tasks | - | Projects / TestData » Calendar1 / Read List | view-pim-tasks | - | Projects / TestData » Calendar1 » Calendar2 | folder | - | Projects / TestData » Calendar1 » Calendar2 / Backlog | view-pim-tasks | - | Projects / TestData » Calendar1 » Calendar2 / Design a present | view-pim-tasks | - | Contexts | folder | - | Contexts / Errands | view-pim-notes | - | Contexts / Online | view-pim-notes | - Index: tests/features/zanshin/features/workday/workday-display-completed.feature =================================================================== --- tests/features/zanshin/features/workday/workday-display-completed.feature +++ /dev/null @@ -1,13 +0,0 @@ -Feature: Display completed tasks in Workday list - As someone using tasks - I can display the Workday list - In order to know which tasks I’ve completed today (e.g. if done date is today) - - Scenario: The tasks that have been done today appear in the Workday list - Given I display the "Inbox" page - And there is an item named "Buy rutabagas" in the central list - When I check the item - And I display the "Workday" page - And I look at the central list - And I list the items - Then the list contains "Buy rutabagas" Index: tests/features/zanshin/features/workday/workday-display.feature =================================================================== --- tests/features/zanshin/features/workday/workday-display.feature +++ /dev/null @@ -1,15 +0,0 @@ -Feature: Workday content - As someone using tasks - I can display the Workday list - In order to know which tasks should be completed today (e.g. if start date or due date is today or in the past) - - Scenario: The tasks that need to be done today appear in the Workday list - Given I display the "Workday" page - And I look at the central list - When I list the items - Then the list is : - | display | - | "Clean Code" by Robert C Martin | - | Buy kiwis | - | Buy pears | - | Errands | Index: tests/features/zanshin/features/workday/workday-drag-and-drop.feature =================================================================== --- tests/features/zanshin/features/workday/workday-drag-and-drop.feature +++ /dev/null @@ -1,33 +0,0 @@ -Feature: Drag and drop a task in workday view - As someone reviewing his tasks in the workday view - I can drag task within the workday view - In order to change parent/child relationships - - Scenario: Parenting a task in the Workday page - Given I display the "Workday" page - And I add a "task" named "parent" - And I add a "task" named "child" - And there is an item named "parent" in the central list - And there is an item named "child" in the central list - When I drop the item on "parent" in the central list - And I look at the central list - And I list the items - Then the list contains items named: - | display | - | parent | - | parent / child | - - Scenario: Deparenting a task in the Workday page - Given I display the "Workday" page - And I add a "task" named "parent" - And there is an item named "parent" in the central list - And I add a child named "child" under the task named "parent" - And there is an item named "parent / child" in the central list - When I drop the item on the blank area of the central list - And I look at the central list - And I list the items - Then the list contains items named: - | display | - | parent | - | child | - Index: tests/features/zanshin/features/workday/workday-drop.feature =================================================================== --- tests/features/zanshin/features/workday/workday-drop.feature +++ /dev/null @@ -1,29 +0,0 @@ -Feature: Drop a task on workday view - As someone reviewing his tasks - I can drag a task from the current view and drop it in the workday view - In order to have the task start today - - Scenario: Dropping a task on Workday page - Given I display the "Inbox" page - And I add a "task" named "Buy Pineapples" - And there is an item named "Buy Pineapples" in the central list - When I drop the item on "Workday" in the page list - And I display the "Workday" page - And I look at the central list - And I list the items - Then the list contains "Buy Pineapples" - - Scenario: Dropping two tasks on Workday page - Given I display the "Inbox" page - And I add a "task" named "Don't eat the cake" - And I add a "task" named "The cake is a lie" - And the central list contains items named: - | display | - | Don't eat the cake | - | The cake is a lie | - When I drop items on "Workday" in the page list - And I display the "Workday" page - And I look at the central list - And I list the items - Then the list contains "Don't eat the cake" - And the list contains "The cake is a lie" Index: tests/features/zanshin/features/workday/workday-duedate-edit.feature =================================================================== --- tests/features/zanshin/features/workday/workday-duedate-edit.feature +++ /dev/null @@ -1,27 +0,0 @@ -Feature: Modifying a task's due date -As someone adding a task -I can set the due date by editing the field "due date" -In order to have a task that ends at the entered date - - Scenario: Setting a date's due date to today makes it appear in the Workday page - Given I display the "Inbox" page - And I add a "task" named "Make more test tasks" - And there is an item named "Make more test tasks" in the central list - When I open the item in the editor - And I change the editor due date to "2015-03-10" - And I display the "Workday" page - And I look at the central list - And I list the items - Then the list contains "Make more test tasks" - - Scenario: Setting a date's due date to a date in the past makes it appear in the Workday page - Given I display the "Inbox" page - And I add a "task" named "Buy potatoes" - And there is an item named "Buy potatoes" in the central list - When I open the item in the editor - And I change the editor due date to "2001-03-10" - And I display the "Workday" page - And I look at the central list - And I list the items - Then the list contains "Buy potatoes" - Index: tests/features/zanshin/features/workday/workday-postponing.feature =================================================================== --- tests/features/zanshin/features/workday/workday-postponing.feature +++ /dev/null @@ -1,22 +0,0 @@ -Feature: Postponing a task - As someone using tasks - I can change the start or due date of a task - In order to procrastinate - - Scenario: Setting a date's start date to a date in the future makes it disappear in the Workday page - Given I display the "Workday" page - And there is an item named "Errands" in the central list - When I open the item in the editor - And I change the editor start date to "2015-03-20" - And I look at the central list - And I list the items - Then the list does not contain "Errands" - - Scenario: Setting a date's due date to a date in the future makes it disappear in the Workday page - Given I display the "Workday" page - And there is an item named "Buy kiwis" in the central list - When I open the item in the editor - And I change the editor due date to "2015-03-20" - And I look at the central list - And I list the items - Then the list does not contain "Buy kiwis" Index: tests/features/zanshin/features/workday/workday-startbutton.feature =================================================================== --- tests/features/zanshin/features/workday/workday-startbutton.feature +++ /dev/null @@ -1,4 +0,0 @@ -Feature: adding a task with start today button - As someone using tasks - I can set the date of a task to today by clicking on the "start today" button - In order to have my task start today Index: tests/features/zanshin/features/workday/workday-startdate-edit.feature =================================================================== --- tests/features/zanshin/features/workday/workday-startdate-edit.feature +++ /dev/null @@ -1,28 +0,0 @@ -Feature: Modifying a task's start date -As someone using tasks -I can modify the start date of tasks to today -In order to have them plan from today - - Scenario: Setting a date's start date to today makes it appear in the workday view - Given I display the "Inbox" page - And there is an item named "Buy rutabagas" in the central list - When I open the item in the editor - And I change the editor start date to "2015-03-10" - And I display the "Workday" page - And I look at the central list - And I list the items - Then the list contains "Buy rutabagas" - - Scenario: Setting a date's start date to a date in the past makes it appear in the workday view - Given I display the "Workday" page - And I look at the central list - And I list the items - And the list does not contain "Buy rutabagas" - And I display the "Inbox" page - And there is an item named "Buy rutabagas" in the central list - When I open the item in the editor - And I change the editor start date to "2014-03-10" - And I display the "Workday" page - And I look at the central list - And I list the items - Then the list contains "Buy rutabagas" Index: tests/features/zanshin/features/workday/workday-task-add.feature =================================================================== --- tests/features/zanshin/features/workday/workday-task-add.feature +++ /dev/null @@ -1,11 +0,0 @@ -Feature: Adding a task from the workday view - As someone adding tasks - I can input a task for today in the quick entry - In order to have a new task that starts today - - Scenario: Tasks added from the workday view start today - Given I display the "Workday" page - When I look at the central list - And I add a "task" named "Burn some confidential documents" - And I list the items - Then the list contains "Burn some confidential documents" Index: tests/features/zanshin/features/workday/workday-task-remove.feature =================================================================== --- tests/features/zanshin/features/workday/workday-task-remove.feature +++ /dev/null @@ -1,11 +0,0 @@ -Feature: Removing a task - As someone using tasks - I can remove a task - In order to clean up - - Scenario: Removing a task that appear in the Workday list - Given I display the "Workday" page - And there is an item named "Buy pears" in the central list - When I remove the item - And I list the items - Then the list does not contain "Buy pears"