From aa6209af00f2d803dccf858c51d362f1e2d6afd4 Mon Sep 17 00:00:00 2001 From: James Cole Date: Sun, 3 May 2015 15:00:39 +0200 Subject: [PATCH] Covered tag controller. --- app/Validation/FireflyValidator.php | 8 +- tests/controllers/TagControllerTest.php | 217 ++++++++++++++++++++++++ tests/factories/all.php | 1 + 3 files changed, 225 insertions(+), 1 deletion(-) create mode 100644 tests/controllers/TagControllerTest.php diff --git a/app/Validation/FireflyValidator.php b/app/Validation/FireflyValidator.php index b8cf753024..76270a3ff4 100644 --- a/app/Validation/FireflyValidator.php +++ b/app/Validation/FireflyValidator.php @@ -203,7 +203,13 @@ class FireflyValidator extends Validator $alwaysEncrypted = true; } - $query = DB::table($table)->where('user_id', Auth::user()->id); + if(is_null(Auth::user())) { + // user is not logged in.. weird. + return true; + } else { + $query = DB::table($table)->where('user_id', Auth::user()->id); + } + if (!is_null($exclude)) { $query->where('id', '!=', $exclude); diff --git a/tests/controllers/TagControllerTest.php b/tests/controllers/TagControllerTest.php new file mode 100644 index 0000000000..bdbab15d69 --- /dev/null +++ b/tests/controllers/TagControllerTest.php @@ -0,0 +1,217 @@ +be($user); + + $this->call('GET', '/tags/create'); + $this->assertResponseOk(); + } + + public function testDelete() + { + $tag = FactoryMuffin::create('FireflyIII\Models\Tag'); + $this->be($tag->user); + + $this->call('GET', '/tags/delete/' . $tag->id); + $this->assertResponseOk(); + } + + public function testDestroy() + { + $tag = FactoryMuffin::create('FireflyIII\Models\Tag'); + $this->be($tag->user); + + $this->call('POST', '/tags/destroy/' . $tag->id, ['_token' => 'replaceMe']); + $this->assertSessionHas('success'); + $this->assertResponseStatus(302); + + } + + public function testEdit() + { + $tag = FactoryMuffin::create('FireflyIII\Models\Tag'); + $this->be($tag->user); + + $this->call('GET', '/tags/edit/' . $tag->id); + $this->assertResponseOk(); + } + + public function testEditBalancingAct() + { + $tag = FactoryMuffin::create('FireflyIII\Models\Tag'); + $journal = FactoryMuffin::create('FireflyIII\Models\TransactionJournal'); + $type = FactoryMuffin::create('FireflyIII\Models\TransactionType'); + $type->type = 'Transfer'; + $type->save(); + $journal->transactionType()->associate($type); + $journal->save(); + $tag->transactionJournals()->save($journal); + $tag->tagMode = 'balancingAct'; + $tag->save(); + $this->be($tag->user); + + $this->call('GET', '/tags/edit/' . $tag->id); + $this->assertResponseOk(); + } + + public function testEditThreeExpenses() + { + $tag = FactoryMuffin::create('FireflyIII\Models\Tag'); + $type = FactoryMuffin::create('FireflyIII\Models\TransactionType'); + $type->type = 'Withdrawal'; + $type->save(); + + for ($i = 0; $i < 3; $i++) { + $journal = FactoryMuffin::create('FireflyIII\Models\TransactionJournal'); + $journal->transactionType()->associate($type); + $journal->save(); + $tag->transactionJournals()->save($journal); + } + + + $tag->tagMode = 'nothing'; + $tag->save(); + $this->be($tag->user); + + $this->call('GET', '/tags/edit/' . $tag->id); + $this->assertResponseOk(); + } + + + public function testHideTagHelp() + { + $tag = FactoryMuffin::create('FireflyIII\Models\Tag'); + $this->be($tag->user); + + $this->call('POST', '/tags/hideTagHelp/true', ['_token' => 'replaceMe']); + $this->assertResponseOk(); + } + + public function testIndex() + { + $tag = FactoryMuffin::create('FireflyIII\Models\Tag'); + $this->be($tag->user); + + $this->call('GET', '/tags'); + $this->assertResponseOk(); + } + + public function testShow() + { + $tag = FactoryMuffin::create('FireflyIII\Models\Tag'); + $this->be($tag->user); + + $this->call('GET', '/tags/show/' . $tag->id); + $this->assertResponseOk(); + } + + public function testStore() + { + $user = FactoryMuffin::create('FireflyIII\User'); + $this->be($user); + $data = [ + '_token' => 'replaceMe', + 'tag' => 'BlaBla' . rand(1, 1000), + 'tagMode' => 'nothing' + ]; + + $this->call('POST', '/tags/store/', $data); + $this->assertResponseStatus(302); + } + + public function testStoreWithLocation() + { + $user = FactoryMuffin::create('FireflyIII\User'); + $this->be($user); + $data = [ + '_token' => 'replaceMe', + 'tag' => 'BlaBla' . rand(1, 1000), + 'tagMode' => 'nothing', + 'latitude' => 12, + 'longitude' => 13, + 'zoomLevel' => 3, + 'setTag' => 'true', + 'create_another' => 1, + ]; + + $this->call('POST', '/tags/store/', $data); + $this->assertResponseStatus(302); + } + + public function testUpdate() + { + $tag = FactoryMuffin::create('FireflyIII\Models\Tag'); + $this->be($tag->user); + + $data = [ + '_token' => 'replaceMe', + 'tag' => 'BlaBla' . rand(1, 1000), + 'tagMode' => 'nothing', + 'id' => $tag->id, + ]; + + $this->call('POST', '/tags/update/' . $tag->id, $data); + $this->assertResponseStatus(302); + } + + public function testUpdateWithLocation() + { + $tag = FactoryMuffin::create('FireflyIII\Models\Tag'); + $this->be($tag->user); + + $data = [ + '_token' => 'replaceMe', + 'tag' => 'BlaBla' . rand(1, 1000), + 'tagMode' => 'nothing', + 'id' => $tag->id, + 'latitude' => 12, + 'setTag' => 'true', + 'longitude' => 13, + 'zoomLevel' => 3, + 'return_to_edit' => 1, + ]; + + $this->call('POST', '/tags/update/' . $tag->id, $data); + $this->assertResponseStatus(302); + } + + +} \ No newline at end of file diff --git a/tests/factories/all.php b/tests/factories/all.php index 1c98b5b88e..37c528abb0 100644 --- a/tests/factories/all.php +++ b/tests/factories/all.php @@ -78,6 +78,7 @@ FactoryMuffin::define( 'date' => 'date', 'latitude' => 12, 'longitude' => 13, + 'zoomLevel' => 3, ] );