From 83b404d01e4bef291eb21e1fe37673ac4256c8d4 Mon Sep 17 00:00:00 2001 From: James Cole Date: Sun, 18 Dec 2016 21:04:53 +0100 Subject: [PATCH] More tests. --- app/Http/Controllers/RuleController.php | 16 +-- app/Http/Controllers/RuleGroupController.php | 28 ++-- app/Http/breadcrumbs.php | 23 ++-- resources/lang/en_US/firefly.php | 1 + .../Controllers/RuleGroupControllerTest.php | 125 +++++++++++------- 5 files changed, 113 insertions(+), 80 deletions(-) diff --git a/app/Http/Controllers/RuleController.php b/app/Http/Controllers/RuleController.php index 409484b59e..0216496be6 100644 --- a/app/Http/Controllers/RuleController.php +++ b/app/Http/Controllers/RuleController.php @@ -87,10 +87,10 @@ class RuleController extends Controller $subTitle = trans('firefly.make_new_rule', ['title' => $ruleGroup->title]); // put previous url in session if not redirect from store (not "create another"). - if (session('rules.rule.create.fromStore') !== true) { + if (session('rules.create.fromStore') !== true) { Session::put('rules.create.url', URL::previous()); } - Session::forget('rules.rule.create.fromStore'); + Session::forget('rules.create.fromStore'); Session::flash('gaEventCategory', 'rules'); Session::flash('gaEventAction', 'create-rule'); @@ -179,10 +179,10 @@ class RuleController extends Controller $subTitle = trans('firefly.edit_rule', ['title' => $rule->title]); // put previous url in session if not redirect from store (not "return_to_edit"). - if (session('rules.rule.edit.fromUpdate') !== true) { + if (session('rules.edit.fromUpdate') !== true) { Session::put('rules.edit.url', URL::previous()); } - Session::forget('rules.rule.edit.fromUpdate'); + Session::forget('rules.edit.fromUpdate'); Session::flash('gaEventCategory', 'rules'); Session::flash('gaEventAction', 'edit-rule'); @@ -257,9 +257,9 @@ class RuleController extends Controller if (intval(Input::get('create_another')) === 1) { // set value so create routine will not overwrite URL: - Session::put('rules.rule.create.fromStore', true); + Session::put('rules.create.fromStore', true); - return redirect(route('rules.rule.create', [$ruleGroup]))->withInput(); + return redirect(route('rules.create', [$ruleGroup]))->withInput(); } // redirect to previous URL. @@ -344,9 +344,9 @@ class RuleController extends Controller if (intval(Input::get('return_to_edit')) === 1) { // set value so edit routine will not overwrite URL: - Session::put('rules.rule.edit.fromUpdate', true); + Session::put('rules.edit.fromUpdate', true); - return redirect(route('rules.rule.edit', [$rule->id]))->withInput(['return_to_edit' => 1]); + return redirect(route('rules.edit', [$rule->id]))->withInput(['return_to_edit' => 1]); } // redirect to previous URL. diff --git a/app/Http/Controllers/RuleGroupController.php b/app/Http/Controllers/RuleGroupController.php index f1ab10422b..6f0a136a1d 100644 --- a/app/Http/Controllers/RuleGroupController.php +++ b/app/Http/Controllers/RuleGroupController.php @@ -62,10 +62,10 @@ class RuleGroupController extends Controller $subTitle = trans('firefly.make_new_rule_group'); // put previous url in session if not redirect from store (not "create another"). - if (session('rules.rule-group.create.fromStore') !== true) { - Session::put('rules.rule-group.create.url', URL::previous()); + if (session('rule-groups.create.fromStore') !== true) { + Session::put('rule-groups.create.url', URL::previous()); } - Session::forget('rules.rule-group.create.fromStore'); + Session::forget('rule-groups.create.fromStore'); Session::flash('gaEventCategory', 'rules'); Session::flash('gaEventAction', 'create-rule-group'); @@ -86,7 +86,7 @@ class RuleGroupController extends Controller unset($ruleGroupList[$ruleGroup->id]); // put previous url in session - Session::put('rules.rule-group.delete.url', URL::previous()); + Session::put('rule-groups.delete.url', URL::previous()); Session::flash('gaEventCategory', 'rules'); Session::flash('gaEventAction', 'delete-rule-group'); @@ -113,7 +113,7 @@ class RuleGroupController extends Controller Preferences::mark(); - return redirect(session('rules.rule-group.delete.url')); + return redirect(session('rule-groups.delete.url')); } /** @@ -140,10 +140,10 @@ class RuleGroupController extends Controller $subTitle = trans('firefly.edit_rule_group', ['title' => $ruleGroup->title]); // put previous url in session if not redirect from store (not "return_to_edit"). - if (session('rules.rule-group.edit.fromUpdate') !== true) { - Session::put('rules.rule-group.edit.url', URL::previous()); + if (session('rule-groups.edit.fromUpdate') !== true) { + Session::put('rule-groups.edit.url', URL::previous()); } - Session::forget('rules.rule-group.edit.fromUpdate'); + Session::forget('rule-groups.edit.fromUpdate'); Session::flash('gaEventCategory', 'rules'); Session::flash('gaEventAction', 'edit-rule-group'); @@ -220,13 +220,13 @@ class RuleGroupController extends Controller if (intval(Input::get('create_another')) === 1) { // set value so create routine will not overwrite URL: - Session::put('rules.rule-group.create.fromStore', true); + Session::put('rule-groups.create.fromStore', true); - return redirect(route('rules.rule-group.create'))->withInput(); + return redirect(route('rule-groups.create'))->withInput(); } // redirect to previous URL. - return redirect(session('rules.rule-group.create.url')); + return redirect(session('rule-groups.create.url')); } /** @@ -265,13 +265,13 @@ class RuleGroupController extends Controller if (intval(Input::get('return_to_edit')) === 1) { // set value so edit routine will not overwrite URL: - Session::put('rules.rule-group.edit.fromUpdate', true); + Session::put('rule-groups.edit.fromUpdate', true); - return redirect(route('rules.rule-group.edit', [$ruleGroup->id]))->withInput(['return_to_edit' => 1]); + return redirect(route('rule-groups.edit', [$ruleGroup->id]))->withInput(['return_to_edit' => 1]); } // redirect to previous URL. - return redirect(session('rules.rule-group.edit.url')); + return redirect(session('rule-groups.edit.url')); } } diff --git a/app/Http/breadcrumbs.php b/app/Http/breadcrumbs.php index dec743e7c6..339855c695 100644 --- a/app/Http/breadcrumbs.php +++ b/app/Http/breadcrumbs.php @@ -604,29 +604,36 @@ Breadcrumbs::register( } ); Breadcrumbs::register( - 'rules.rule-group.create', function (BreadCrumbGenerator $breadcrumbs) { + 'rule-groups.create', function (BreadCrumbGenerator $breadcrumbs) { $breadcrumbs->parent('rules.index'); - $breadcrumbs->push(trans('firefly.make_new_rule_group'), route('rules.rule-group.create')); + $breadcrumbs->push(trans('firefly.make_new_rule_group'), route('rule-groups.create')); } ); Breadcrumbs::register( - 'rules.rule-group.edit', function (BreadCrumbGenerator $breadcrumbs, RuleGroup $ruleGroup) { + 'rule-groups.edit', function (BreadCrumbGenerator $breadcrumbs, RuleGroup $ruleGroup) { $breadcrumbs->parent('rules.index'); - $breadcrumbs->push(trans('firefly.edit_rule_group', ['title' => $ruleGroup->title]), route('rules.rule-group.edit', [$ruleGroup])); + $breadcrumbs->push(trans('firefly.edit_rule_group', ['title' => $ruleGroup->title]), route('rule-groups.edit', [$ruleGroup])); } ); Breadcrumbs::register( - 'rules.rule-group.delete', function (BreadCrumbGenerator $breadcrumbs, RuleGroup $ruleGroup) { + 'rule-groups.delete', function (BreadCrumbGenerator $breadcrumbs, RuleGroup $ruleGroup) { $breadcrumbs->parent('rules.index'); - $breadcrumbs->push(trans('firefly.delete_rule_group', ['title' => $ruleGroup->title]), route('rules.rule-group.delete', [$ruleGroup])); + $breadcrumbs->push(trans('firefly.delete_rule_group', ['title' => $ruleGroup->title]), route('rule-groups.delete', [$ruleGroup])); } ); Breadcrumbs::register( - 'rules.rule-group.select_transactions', function (BreadCrumbGenerator $breadcrumbs, RuleGroup $ruleGroup) { + 'rule-groups.select-transactions', function (BreadCrumbGenerator $breadcrumbs, RuleGroup $ruleGroup) { + $breadcrumbs->parent('rules.index'); + $breadcrumbs->push(trans('firefly.rule_group_select_transactions', ['title' => $ruleGroup->title]), route('rule-groups.select-transactions', [$ruleGroup])); +} +); + +Breadcrumbs::register( + 'rule-groups.select_transactions', function (BreadCrumbGenerator $breadcrumbs, RuleGroup $ruleGroup) { $breadcrumbs->parent('rules.index'); $breadcrumbs->push( - trans('firefly.execute_group_on_existing_transactions', ['title' => $ruleGroup->title]), route('rules.rule-group.select_transactions', [$ruleGroup]) + trans('firefly.execute_group_on_existing_transactions', ['title' => $ruleGroup->title]), route('rule-groups.select_transactions', [$ruleGroup]) ); } ); diff --git a/resources/lang/en_US/firefly.php b/resources/lang/en_US/firefly.php index 5b9ba90e21..fb82d0af87 100644 --- a/resources/lang/en_US/firefly.php +++ b/resources/lang/en_US/firefly.php @@ -194,6 +194,7 @@ return [ 'warning_no_matching_transactions' => 'No matching transactions found. Please note that for performance reasons, only the last :num_transactions transactions have been checked.', 'warning_no_valid_triggers' => 'No valid triggers provided.', 'execute_on_existing_transactions' => 'Execute for existing transactions', + 'rule_group_select_transactions' => 'Execute rule group ":title" on existing transactions', 'execute_on_existing_transactions_intro' => 'When a rule or group has been changed or added, you can execute it for existing transactions', 'execute_on_existing_transactions_short' => 'Existing transactions', 'executed_group_on_existing_transactions' => 'Executed group ":title" for existing transactions', diff --git a/tests/acceptance/Controllers/RuleGroupControllerTest.php b/tests/acceptance/Controllers/RuleGroupControllerTest.php index 586e4002bf..b61a95409e 100644 --- a/tests/acceptance/Controllers/RuleGroupControllerTest.php +++ b/tests/acceptance/Controllers/RuleGroupControllerTest.php @@ -8,6 +8,9 @@ * * See the LICENSE file for details. */ +use Carbon\Carbon; +use FireflyIII\Models\RuleGroup; +use FireflyIII\Repositories\RuleGroup\RuleGroupRepositoryInterface; /** @@ -28,121 +31,143 @@ class RuleGroupControllerTest extends TestCase /** * @covers \FireflyIII\Http\Controllers\RuleGroupController::create - * Implement testCreate(). */ public function testCreate() { - // Remove the following lines when you implement this test. - $this->markTestIncomplete( - 'This test has not been implemented yet.' - ); + $this->be($this->user()); + $this->call('get', route('rule-groups.create')); + $this->assertResponseStatus(200); + $this->see('