New tests

This commit is contained in:
James Cole 2017-02-12 17:58:16 +01:00
parent ec146d4cbe
commit 2c36820622
No known key found for this signature in database
GPG Key ID: C16961E655E74B5E
12 changed files with 761 additions and 14 deletions

View File

@ -55,7 +55,7 @@ echo "CREATE DATABASE IF NOT EXISTS firefly; GRANT ALL on firefly.* TO 'firefly'
echo "Done!"
echo "Migrating..."
php /opt/app/artisan migrate:refresh --seed --force
php /opt/app/artisan migrate --seed --force
echo "Done!"
# Start nginx.

View File

@ -232,8 +232,14 @@ opt/app/app/Console/Kernel.php
opt/app/app/Exceptions/Handler.php
opt/app/app/Generator/Chart/Basic/ChartJsGenerator.php
opt/app/app/Generator/Chart/Basic/GeneratorInterface.php
opt/app/app/Helpers/Attachments/AttachmentHelper.php
opt/app/app/Helpers/Attachments/AttachmentHelperInterface.php
opt/app/app/Helpers/Collector/JournalCollector.php
opt/app/app/Helpers/Collector/JournalCollectorInterface.php
opt/app/app/Helpers/FiscalHelper.php
opt/app/app/Helpers/FiscalHelperInterface.php
opt/app/app/Helpers/Report/ReportHelper.php
opt/app/app/Helpers/Report/ReportHelperInterface.php
opt/app/app/Http/Controllers/Auth/LoginController.php
opt/app/app/Http/Controllers/BudgetController.php
opt/app/app/Http/Controllers/Chart/AccountController.php
@ -245,6 +251,8 @@ opt/app/app/Http/Controllers/JavascriptController.php
opt/app/app/Http/Controllers/JsonController.php
opt/app/app/Http/Controllers/NewUserController.php
opt/app/app/Http/Controllers/ProfileController.php
opt/app/app/Http/Controllers/ReportController.php
opt/app/app/Http/Controllers/Transaction/SingleController.php
opt/app/app/Http/Kernel.php
opt/app/app/Http/Middleware/Authenticate.php
opt/app/app/Http/Middleware/AuthenticateTwoFactor.php
@ -253,8 +261,11 @@ opt/app/app/Http/Middleware/EncryptCookies.php
opt/app/app/Http/Middleware/Range.php
opt/app/app/Http/Middleware/RedirectIfAuthenticated.php
opt/app/app/Http/Middleware/Sandstorm.php
opt/app/app/Http/Middleware/StartFireflySession.php
opt/app/app/Http/Middleware/VerifyCsrfToken.php
opt/app/app/Http/Requests/JournalFormRequest.php
opt/app/app/Http/Requests/NewUserFormRequest.php
opt/app/app/Http/Requests/ProfileFormRequest.php
opt/app/app/Http/Requests/Request.php
opt/app/app/Http/breadcrumbs.php
opt/app/app/Jobs/Job.php
@ -283,12 +294,13 @@ opt/app/app/Providers/AuthServiceProvider.php
opt/app/app/Providers/BillServiceProvider.php
opt/app/app/Providers/BudgetServiceProvider.php
opt/app/app/Providers/CategoryServiceProvider.php
opt/app/app/Providers/CrudServiceProvider.php
opt/app/app/Providers/CurrencyServiceProvider.php
opt/app/app/Providers/EventServiceProvider.php
opt/app/app/Providers/ExportJobServiceProvider.php
opt/app/app/Providers/FireflyServiceProvider.php
opt/app/app/Providers/FireflySessionProvider.php
opt/app/app/Providers/JournalServiceProvider.php
opt/app/app/Providers/LogServiceProvider.php
opt/app/app/Providers/PiggyBankServiceProvider.php
opt/app/app/Providers/RouteServiceProvider.php
opt/app/app/Providers/RuleGroupServiceProvider.php
@ -307,6 +319,11 @@ opt/app/app/Repositories/Category/CategoryRepository.php
opt/app/app/Repositories/Category/CategoryRepositoryInterface.php
opt/app/app/Repositories/Journal/JournalRepository.php
opt/app/app/Repositories/Journal/JournalRepositoryInterface.php
opt/app/app/Repositories/PiggyBank/PiggyBankRepository.php
opt/app/app/Repositories/PiggyBank/PiggyBankRepositoryInterface.php
opt/app/app/Repositories/Tag/TagRepository.php
opt/app/app/Repositories/Tag/TagRepositoryInterface.php
opt/app/app/Repositories/User/UserRepositoryInterface.php
opt/app/app/Support/Amount.php
opt/app/app/Support/CacheProperties.php
opt/app/app/Support/Domain.php
@ -368,9 +385,13 @@ opt/app/database/seeds/DatabaseSeeder.php
opt/app/database/seeds/PermissionSeeder.php
opt/app/database/seeds/TransactionCurrencySeeder.php
opt/app/database/seeds/TransactionTypeSeeder.php
opt/app/public/css/bootstrap-multiselect.css
opt/app/public/css/bootstrap-tagsinput.css
opt/app/public/css/bootstrap-tour.min.css
opt/app/public/css/daterangepicker.css
opt/app/public/css/firefly.css
opt/app/public/css/jquery-ui/jquery-ui.structure.min.css
opt/app/public/css/jquery-ui/jquery-ui.theme.min.css
opt/app/public/index.php
opt/app/public/js/ff/budgets/index.js
opt/app/public/js/ff/charts.defaults.js
@ -379,11 +400,18 @@ opt/app/public/js/ff/firefly.js
opt/app/public/js/ff/guest.js
opt/app/public/js/ff/help.js
opt/app/public/js/ff/index.js
opt/app/public/js/ff/reports/index.js
opt/app/public/js/ff/transactions/single/create.js
opt/app/public/js/lib/Chart.bundle.min.js
opt/app/public/js/lib/accounting.min.js
opt/app/public/js/lib/bootstrap-multiselect.js
opt/app/public/js/lib/bootstrap-tagsinput.min.js
opt/app/public/js/lib/bootstrap-tour.min.js
opt/app/public/js/lib/bootstrap3-typeahead.min.js
opt/app/public/js/lib/daterangepicker.js
opt/app/public/js/lib/jquery-3.1.1.min.js
opt/app/public/js/lib/jquery-ui.min.js
opt/app/public/js/lib/modernizr-custom.js
opt/app/public/js/lib/moment.min.js
opt/app/public/lib/adminlte/css/AdminLTE.min.css
opt/app/public/lib/adminlte/css/skins/skin-blue-light.min.css
@ -406,9 +434,14 @@ opt/app/resources/views/emails/footer-html.twig
opt/app/resources/views/emails/footer-text.twig
opt/app/resources/views/emails/header-html.twig
opt/app/resources/views/emails/header-text.twig
opt/app/resources/views/error.twig
opt/app/resources/views/form/amount.twig
opt/app/resources/views/form/balance.twig
opt/app/resources/views/form/date.twig
opt/app/resources/views/form/feedback.twig
opt/app/resources/views/form/help.twig
opt/app/resources/views/form/options.twig
opt/app/resources/views/form/select.twig
opt/app/resources/views/form/text.twig
opt/app/resources/views/index.twig
opt/app/resources/views/javascript/variables.twig
@ -423,7 +456,12 @@ opt/app/resources/views/partials/favicons.twig
opt/app/resources/views/partials/flashes.twig
opt/app/resources/views/partials/menu-sidebar.twig
opt/app/resources/views/partials/page-header.twig
opt/app/resources/views/profile/change-password.twig
opt/app/resources/views/profile/delete-account.twig
opt/app/resources/views/profile/index.twig
opt/app/resources/views/reports/index.twig
opt/app/resources/views/reports/options/no-options.twig
opt/app/resources/views/transactions/single/create.twig
opt/app/routes/api.php
opt/app/routes/console.php
opt/app/routes/web.php
@ -517,6 +555,8 @@ opt/app/vendor/laravel/framework/src/Illuminate/Cache/CacheManager.php
opt/app/vendor/laravel/framework/src/Illuminate/Cache/CacheServiceProvider.php
opt/app/vendor/laravel/framework/src/Illuminate/Cache/Console/CacheTableCommand.php
opt/app/vendor/laravel/framework/src/Illuminate/Cache/Console/ClearCommand.php
opt/app/vendor/laravel/framework/src/Illuminate/Cache/Console/ForgetCommand.php
opt/app/vendor/laravel/framework/src/Illuminate/Cache/Events/CacheEvent.php
opt/app/vendor/laravel/framework/src/Illuminate/Cache/Events/CacheHit.php
opt/app/vendor/laravel/framework/src/Illuminate/Cache/Events/CacheMissed.php
opt/app/vendor/laravel/framework/src/Illuminate/Cache/Events/KeyForgotten.php
@ -525,17 +565,18 @@ opt/app/vendor/laravel/framework/src/Illuminate/Cache/FileStore.php
opt/app/vendor/laravel/framework/src/Illuminate/Cache/Repository.php
opt/app/vendor/laravel/framework/src/Illuminate/Cache/RetrievesMultipleKeys.php
opt/app/vendor/laravel/framework/src/Illuminate/Config/Repository.php
opt/app/vendor/laravel/framework/src/Illuminate/Console/AppNamespaceDetectorTrait.php
opt/app/vendor/laravel/framework/src/Illuminate/Console/Application.php
opt/app/vendor/laravel/framework/src/Illuminate/Console/Command.php
opt/app/vendor/laravel/framework/src/Illuminate/Console/ConfirmableTrait.php
opt/app/vendor/laravel/framework/src/Illuminate/Console/DetectsApplicationNamespace.php
opt/app/vendor/laravel/framework/src/Illuminate/Console/Events/ArtisanStarting.php
opt/app/vendor/laravel/framework/src/Illuminate/Console/GeneratorCommand.php
opt/app/vendor/laravel/framework/src/Illuminate/Console/OutputStyle.php
opt/app/vendor/laravel/framework/src/Illuminate/Console/Parser.php
opt/app/vendor/laravel/framework/src/Illuminate/Console/ScheduleServiceProvider.php
opt/app/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Schedule.php
opt/app/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleFinishCommand.php
opt/app/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php
opt/app/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php
opt/app/vendor/laravel/framework/src/Illuminate/Container/Container.php
opt/app/vendor/laravel/framework/src/Illuminate/Contracts/Auth/Access/Authorizable.php
opt/app/vendor/laravel/framework/src/Illuminate/Contracts/Auth/Access/Gate.php
@ -561,7 +602,10 @@ opt/app/vendor/laravel/framework/src/Illuminate/Contracts/Debug/ExceptionHandler
opt/app/vendor/laravel/framework/src/Illuminate/Contracts/Encryption/DecryptException.php
opt/app/vendor/laravel/framework/src/Illuminate/Contracts/Encryption/Encrypter.php
opt/app/vendor/laravel/framework/src/Illuminate/Contracts/Events/Dispatcher.php
opt/app/vendor/laravel/framework/src/Illuminate/Contracts/Filesystem/Cloud.php
opt/app/vendor/laravel/framework/src/Illuminate/Contracts/Filesystem/Factory.php
opt/app/vendor/laravel/framework/src/Illuminate/Contracts/Filesystem/FileNotFoundException.php
opt/app/vendor/laravel/framework/src/Illuminate/Contracts/Filesystem/Filesystem.php
opt/app/vendor/laravel/framework/src/Illuminate/Contracts/Foundation/Application.php
opt/app/vendor/laravel/framework/src/Illuminate/Contracts/Hashing/Hasher.php
opt/app/vendor/laravel/framework/src/Illuminate/Contracts/Http/Kernel.php
@ -577,16 +621,19 @@ opt/app/vendor/laravel/framework/src/Illuminate/Contracts/Queue/Queue.php
opt/app/vendor/laravel/framework/src/Illuminate/Contracts/Queue/QueueableCollection.php
opt/app/vendor/laravel/framework/src/Illuminate/Contracts/Queue/QueueableEntity.php
opt/app/vendor/laravel/framework/src/Illuminate/Contracts/Queue/ShouldQueue.php
opt/app/vendor/laravel/framework/src/Illuminate/Contracts/Routing/BindingRegistrar.php
opt/app/vendor/laravel/framework/src/Illuminate/Contracts/Routing/Registrar.php
opt/app/vendor/laravel/framework/src/Illuminate/Contracts/Routing/ResponseFactory.php
opt/app/vendor/laravel/framework/src/Illuminate/Contracts/Routing/UrlGenerator.php
opt/app/vendor/laravel/framework/src/Illuminate/Contracts/Routing/UrlRoutable.php
opt/app/vendor/laravel/framework/src/Illuminate/Contracts/Session/Session.php
opt/app/vendor/laravel/framework/src/Illuminate/Contracts/Support/Arrayable.php
opt/app/vendor/laravel/framework/src/Illuminate/Contracts/Support/Htmlable.php
opt/app/vendor/laravel/framework/src/Illuminate/Contracts/Support/Jsonable.php
opt/app/vendor/laravel/framework/src/Illuminate/Contracts/Support/MessageBag.php
opt/app/vendor/laravel/framework/src/Illuminate/Contracts/Support/MessageProvider.php
opt/app/vendor/laravel/framework/src/Illuminate/Contracts/Support/Renderable.php
opt/app/vendor/laravel/framework/src/Illuminate/Contracts/Translation/Translator.php
opt/app/vendor/laravel/framework/src/Illuminate/Contracts/Validation/Factory.php
opt/app/vendor/laravel/framework/src/Illuminate/Contracts/Validation/ValidatesWhenResolved.php
opt/app/vendor/laravel/framework/src/Illuminate/Contracts/Validation/Validator.php
@ -596,6 +643,7 @@ opt/app/vendor/laravel/framework/src/Illuminate/Cookie/CookieJar.php
opt/app/vendor/laravel/framework/src/Illuminate/Cookie/CookieServiceProvider.php
opt/app/vendor/laravel/framework/src/Illuminate/Cookie/Middleware/AddQueuedCookiesToResponse.php
opt/app/vendor/laravel/framework/src/Illuminate/Cookie/Middleware/EncryptCookies.php
opt/app/vendor/laravel/framework/src/Illuminate/Database/Concerns/ManagesTransactions.php
opt/app/vendor/laravel/framework/src/Illuminate/Database/Connection.php
opt/app/vendor/laravel/framework/src/Illuminate/Database/ConnectionInterface.php
opt/app/vendor/laravel/framework/src/Illuminate/Database/ConnectionResolverInterface.php
@ -619,16 +667,27 @@ opt/app/vendor/laravel/framework/src/Illuminate/Database/DetectsDeadlocks.php
opt/app/vendor/laravel/framework/src/Illuminate/Database/DetectsLostConnections.php
opt/app/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Builder.php
opt/app/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Collection.php
opt/app/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Concerns/GuardsAttributes.php
opt/app/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Concerns/HasAttributes.php
opt/app/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Concerns/HasEvents.php
opt/app/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Concerns/HasGlobalScopes.php
opt/app/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Concerns/HasRelationships.php
opt/app/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Concerns/HasTimestamps.php
opt/app/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Concerns/HidesAttributes.php
opt/app/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Concerns/QueriesRelationships.php
opt/app/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Model.php
opt/app/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Relations/BelongsTo.php
opt/app/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Relations/BelongsToMany.php
opt/app/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Relations/Concerns/InteractsWithPivotTable.php
opt/app/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Relations/HasMany.php
opt/app/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Relations/HasManyThrough.php
opt/app/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Relations/HasOneOrMany.php
opt/app/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Relations/Relation.php
opt/app/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Scope.php
opt/app/vendor/laravel/framework/src/Illuminate/Database/Eloquent/SoftDeletes.php
opt/app/vendor/laravel/framework/src/Illuminate/Database/Eloquent/SoftDeletingScope.php
opt/app/vendor/laravel/framework/src/Illuminate/Database/Events/QueryExecuted.php
opt/app/vendor/laravel/framework/src/Illuminate/Database/Events/StatementPrepared.php
opt/app/vendor/laravel/framework/src/Illuminate/Database/Grammar.php
opt/app/vendor/laravel/framework/src/Illuminate/Database/MigrationServiceProvider.php
opt/app/vendor/laravel/framework/src/Illuminate/Database/Migrations/DatabaseMigrationRepository.php
@ -647,16 +706,19 @@ opt/app/vendor/laravel/framework/src/Illuminate/Database/Query/Processors/Proces
opt/app/vendor/laravel/framework/src/Illuminate/Database/QueryException.php
opt/app/vendor/laravel/framework/src/Illuminate/Database/Schema/Blueprint.php
opt/app/vendor/laravel/framework/src/Illuminate/Database/Schema/Builder.php
opt/app/vendor/laravel/framework/src/Illuminate/Database/Schema/Grammars/ChangeColumn.php
opt/app/vendor/laravel/framework/src/Illuminate/Database/Schema/Grammars/Grammar.php
opt/app/vendor/laravel/framework/src/Illuminate/Database/Schema/Grammars/MySqlGrammar.php
opt/app/vendor/laravel/framework/src/Illuminate/Database/Schema/Grammars/RenameColumn.php
opt/app/vendor/laravel/framework/src/Illuminate/Database/Schema/MySqlBuilder.php
opt/app/vendor/laravel/framework/src/Illuminate/Database/SeedServiceProvider.php
opt/app/vendor/laravel/framework/src/Illuminate/Database/Seeder.php
opt/app/vendor/laravel/framework/src/Illuminate/Encryption/Encrypter.php
opt/app/vendor/laravel/framework/src/Illuminate/Encryption/EncryptionServiceProvider.php
opt/app/vendor/laravel/framework/src/Illuminate/Events/Dispatcher.php
opt/app/vendor/laravel/framework/src/Illuminate/Events/EventServiceProvider.php
opt/app/vendor/laravel/framework/src/Illuminate/Filesystem/Filesystem.php
opt/app/vendor/laravel/framework/src/Illuminate/Filesystem/FilesystemAdapter.php
opt/app/vendor/laravel/framework/src/Illuminate/Filesystem/FilesystemManager.php
opt/app/vendor/laravel/framework/src/Illuminate/Filesystem/FilesystemServiceProvider.php
opt/app/vendor/laravel/framework/src/Illuminate/Foundation/AliasLoader.php
opt/app/vendor/laravel/framework/src/Illuminate/Foundation/Application.php
@ -667,10 +729,9 @@ opt/app/vendor/laravel/framework/src/Illuminate/Foundation/Auth/RedirectsUsers.p
opt/app/vendor/laravel/framework/src/Illuminate/Foundation/Auth/ThrottlesLogins.php
opt/app/vendor/laravel/framework/src/Illuminate/Foundation/Auth/User.php
opt/app/vendor/laravel/framework/src/Illuminate/Foundation/Bootstrap/BootProviders.php
opt/app/vendor/laravel/framework/src/Illuminate/Foundation/Bootstrap/ConfigureLogging.php
opt/app/vendor/laravel/framework/src/Illuminate/Foundation/Bootstrap/DetectEnvironment.php
opt/app/vendor/laravel/framework/src/Illuminate/Foundation/Bootstrap/HandleExceptions.php
opt/app/vendor/laravel/framework/src/Illuminate/Foundation/Bootstrap/LoadConfiguration.php
opt/app/vendor/laravel/framework/src/Illuminate/Foundation/Bootstrap/LoadEnvironmentVariables.php
opt/app/vendor/laravel/framework/src/Illuminate/Foundation/Bootstrap/RegisterFacades.php
opt/app/vendor/laravel/framework/src/Illuminate/Foundation/Bootstrap/RegisterProviders.php
opt/app/vendor/laravel/framework/src/Illuminate/Foundation/Bootstrap/SetRequestForConsole.php
@ -701,12 +762,13 @@ opt/app/vendor/laravel/framework/src/Illuminate/Foundation/Console/RouteListComm
opt/app/vendor/laravel/framework/src/Illuminate/Foundation/Console/ServeCommand.php
opt/app/vendor/laravel/framework/src/Illuminate/Foundation/Console/StorageLinkCommand.php
opt/app/vendor/laravel/framework/src/Illuminate/Foundation/Console/TestMakeCommand.php
opt/app/vendor/laravel/framework/src/Illuminate/Foundation/Console/TinkerCommand.php
opt/app/vendor/laravel/framework/src/Illuminate/Foundation/Console/UpCommand.php
opt/app/vendor/laravel/framework/src/Illuminate/Foundation/Console/VendorPublishCommand.php
opt/app/vendor/laravel/framework/src/Illuminate/Foundation/Console/ViewClearCommand.php
opt/app/vendor/laravel/framework/src/Illuminate/Foundation/EnvironmentDetector.php
opt/app/vendor/laravel/framework/src/Illuminate/Foundation/Events/LocaleUpdated.php
opt/app/vendor/laravel/framework/src/Illuminate/Foundation/Exceptions/Handler.php
opt/app/vendor/laravel/framework/src/Illuminate/Foundation/Http/Events/RequestHandled.php
opt/app/vendor/laravel/framework/src/Illuminate/Foundation/Http/FormRequest.php
opt/app/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php
opt/app/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/CheckForMaintenanceMode.php
@ -715,6 +777,7 @@ opt/app/vendor/laravel/framework/src/Illuminate/Foundation/ProviderRepository.ph
opt/app/vendor/laravel/framework/src/Illuminate/Foundation/Providers/ArtisanServiceProvider.php
opt/app/vendor/laravel/framework/src/Illuminate/Foundation/Providers/ComposerServiceProvider.php
opt/app/vendor/laravel/framework/src/Illuminate/Foundation/Providers/ConsoleSupportServiceProvider.php
opt/app/vendor/laravel/framework/src/Illuminate/Foundation/Providers/FormRequestServiceProvider.php
opt/app/vendor/laravel/framework/src/Illuminate/Foundation/Providers/FoundationServiceProvider.php
opt/app/vendor/laravel/framework/src/Illuminate/Foundation/Support/Providers/AuthServiceProvider.php
opt/app/vendor/laravel/framework/src/Illuminate/Foundation/Support/Providers/EventServiceProvider.php
@ -723,11 +786,16 @@ opt/app/vendor/laravel/framework/src/Illuminate/Foundation/Validation/ValidatesR
opt/app/vendor/laravel/framework/src/Illuminate/Foundation/helpers.php
opt/app/vendor/laravel/framework/src/Illuminate/Hashing/BcryptHasher.php
opt/app/vendor/laravel/framework/src/Illuminate/Hashing/HashServiceProvider.php
opt/app/vendor/laravel/framework/src/Illuminate/Http/Concerns/InteractsWithContentTypes.php
opt/app/vendor/laravel/framework/src/Illuminate/Http/Concerns/InteractsWithFlashData.php
opt/app/vendor/laravel/framework/src/Illuminate/Http/Concerns/InteractsWithInput.php
opt/app/vendor/laravel/framework/src/Illuminate/Http/JsonResponse.php
opt/app/vendor/laravel/framework/src/Illuminate/Http/RedirectResponse.php
opt/app/vendor/laravel/framework/src/Illuminate/Http/Request.php
opt/app/vendor/laravel/framework/src/Illuminate/Http/Response.php
opt/app/vendor/laravel/framework/src/Illuminate/Http/ResponseTrait.php
opt/app/vendor/laravel/framework/src/Illuminate/Log/Events/MessageLogged.php
opt/app/vendor/laravel/framework/src/Illuminate/Log/LogServiceProvider.php
opt/app/vendor/laravel/framework/src/Illuminate/Log/Writer.php
opt/app/vendor/laravel/framework/src/Illuminate/Mail/Events/MessageSending.php
opt/app/vendor/laravel/framework/src/Illuminate/Mail/MailServiceProvider.php
@ -756,7 +824,6 @@ opt/app/vendor/laravel/framework/src/Illuminate/Queue/Console/RestartCommand.php
opt/app/vendor/laravel/framework/src/Illuminate/Queue/Console/RetryCommand.php
opt/app/vendor/laravel/framework/src/Illuminate/Queue/Console/TableCommand.php
opt/app/vendor/laravel/framework/src/Illuminate/Queue/Console/WorkCommand.php
opt/app/vendor/laravel/framework/src/Illuminate/Queue/ConsoleServiceProvider.php
opt/app/vendor/laravel/framework/src/Illuminate/Queue/Events/JobProcessed.php
opt/app/vendor/laravel/framework/src/Illuminate/Queue/Events/JobProcessing.php
opt/app/vendor/laravel/framework/src/Illuminate/Queue/InteractsWithQueue.php
@ -777,18 +844,26 @@ opt/app/vendor/laravel/framework/src/Illuminate/Routing/Controller.php
opt/app/vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php
opt/app/vendor/laravel/framework/src/Illuminate/Routing/ControllerMiddlewareOptions.php
opt/app/vendor/laravel/framework/src/Illuminate/Routing/Events/RouteMatched.php
opt/app/vendor/laravel/framework/src/Illuminate/Routing/ImplicitRouteBinding.php
opt/app/vendor/laravel/framework/src/Illuminate/Routing/Matching/HostValidator.php
opt/app/vendor/laravel/framework/src/Illuminate/Routing/Matching/MethodValidator.php
opt/app/vendor/laravel/framework/src/Illuminate/Routing/Matching/SchemeValidator.php
opt/app/vendor/laravel/framework/src/Illuminate/Routing/Matching/UriValidator.php
opt/app/vendor/laravel/framework/src/Illuminate/Routing/Matching/ValidatorInterface.php
opt/app/vendor/laravel/framework/src/Illuminate/Routing/Middleware/SubstituteBindings.php
opt/app/vendor/laravel/framework/src/Illuminate/Routing/MiddlewareNameResolver.php
opt/app/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php
opt/app/vendor/laravel/framework/src/Illuminate/Routing/Redirector.php
opt/app/vendor/laravel/framework/src/Illuminate/Routing/ResponseFactory.php
opt/app/vendor/laravel/framework/src/Illuminate/Routing/Route.php
opt/app/vendor/laravel/framework/src/Illuminate/Routing/RouteAction.php
opt/app/vendor/laravel/framework/src/Illuminate/Routing/RouteCollection.php
opt/app/vendor/laravel/framework/src/Illuminate/Routing/RouteCompiler.php
opt/app/vendor/laravel/framework/src/Illuminate/Routing/RouteDependencyResolverTrait.php
opt/app/vendor/laravel/framework/src/Illuminate/Routing/RouteGroup.php
opt/app/vendor/laravel/framework/src/Illuminate/Routing/RouteParameterBinder.php
opt/app/vendor/laravel/framework/src/Illuminate/Routing/RouteSignatureParameters.php
opt/app/vendor/laravel/framework/src/Illuminate/Routing/RouteUrlGenerator.php
opt/app/vendor/laravel/framework/src/Illuminate/Routing/Router.php
opt/app/vendor/laravel/framework/src/Illuminate/Routing/RoutingServiceProvider.php
opt/app/vendor/laravel/framework/src/Illuminate/Routing/SortedMiddleware.php
@ -797,7 +872,6 @@ opt/app/vendor/laravel/framework/src/Illuminate/Session/Console/SessionTableComm
opt/app/vendor/laravel/framework/src/Illuminate/Session/EncryptedStore.php
opt/app/vendor/laravel/framework/src/Illuminate/Session/FileSessionHandler.php
opt/app/vendor/laravel/framework/src/Illuminate/Session/Middleware/StartSession.php
opt/app/vendor/laravel/framework/src/Illuminate/Session/SessionInterface.php
opt/app/vendor/laravel/framework/src/Illuminate/Session/SessionManager.php
opt/app/vendor/laravel/framework/src/Illuminate/Session/SessionServiceProvider.php
opt/app/vendor/laravel/framework/src/Illuminate/Session/Store.php
@ -823,6 +897,7 @@ opt/app/vendor/laravel/framework/src/Illuminate/Support/Facades/Response.php
opt/app/vendor/laravel/framework/src/Illuminate/Support/Facades/Route.php
opt/app/vendor/laravel/framework/src/Illuminate/Support/Facades/Schema.php
opt/app/vendor/laravel/framework/src/Illuminate/Support/Facades/Session.php
opt/app/vendor/laravel/framework/src/Illuminate/Support/Facades/Storage.php
opt/app/vendor/laravel/framework/src/Illuminate/Support/Facades/URL.php
opt/app/vendor/laravel/framework/src/Illuminate/Support/Facades/Validator.php
opt/app/vendor/laravel/framework/src/Illuminate/Support/Facades/View.php
@ -841,16 +916,38 @@ opt/app/vendor/laravel/framework/src/Illuminate/Translation/FileLoader.php
opt/app/vendor/laravel/framework/src/Illuminate/Translation/LoaderInterface.php
opt/app/vendor/laravel/framework/src/Illuminate/Translation/TranslationServiceProvider.php
opt/app/vendor/laravel/framework/src/Illuminate/Translation/Translator.php
opt/app/vendor/laravel/framework/src/Illuminate/Validation/Concerns/FormatsMessages.php
opt/app/vendor/laravel/framework/src/Illuminate/Validation/Concerns/ReplacesAttributes.php
opt/app/vendor/laravel/framework/src/Illuminate/Validation/Concerns/ValidatesAttributes.php
opt/app/vendor/laravel/framework/src/Illuminate/Validation/DatabasePresenceVerifier.php
opt/app/vendor/laravel/framework/src/Illuminate/Validation/Factory.php
opt/app/vendor/laravel/framework/src/Illuminate/Validation/PresenceVerifierInterface.php
opt/app/vendor/laravel/framework/src/Illuminate/Validation/ValidatesWhenResolvedTrait.php
opt/app/vendor/laravel/framework/src/Illuminate/Validation/ValidationException.php
opt/app/vendor/laravel/framework/src/Illuminate/Validation/ValidationRuleParser.php
opt/app/vendor/laravel/framework/src/Illuminate/Validation/ValidationServiceProvider.php
opt/app/vendor/laravel/framework/src/Illuminate/Validation/Validator.php
opt/app/vendor/laravel/framework/src/Illuminate/View/Compilers/BladeCompiler.php
opt/app/vendor/laravel/framework/src/Illuminate/View/Compilers/Compiler.php
opt/app/vendor/laravel/framework/src/Illuminate/View/Compilers/CompilerInterface.php
opt/app/vendor/laravel/framework/src/Illuminate/View/Compilers/Concerns/CompilesAuthorizations.php
opt/app/vendor/laravel/framework/src/Illuminate/View/Compilers/Concerns/CompilesComments.php
opt/app/vendor/laravel/framework/src/Illuminate/View/Compilers/Concerns/CompilesComponents.php
opt/app/vendor/laravel/framework/src/Illuminate/View/Compilers/Concerns/CompilesConditionals.php
opt/app/vendor/laravel/framework/src/Illuminate/View/Compilers/Concerns/CompilesEchos.php
opt/app/vendor/laravel/framework/src/Illuminate/View/Compilers/Concerns/CompilesIncludes.php
opt/app/vendor/laravel/framework/src/Illuminate/View/Compilers/Concerns/CompilesInjections.php
opt/app/vendor/laravel/framework/src/Illuminate/View/Compilers/Concerns/CompilesLayouts.php
opt/app/vendor/laravel/framework/src/Illuminate/View/Compilers/Concerns/CompilesLoops.php
opt/app/vendor/laravel/framework/src/Illuminate/View/Compilers/Concerns/CompilesRawPhp.php
opt/app/vendor/laravel/framework/src/Illuminate/View/Compilers/Concerns/CompilesStacks.php
opt/app/vendor/laravel/framework/src/Illuminate/View/Compilers/Concerns/CompilesTranslations.php
opt/app/vendor/laravel/framework/src/Illuminate/View/Concerns/ManagesComponents.php
opt/app/vendor/laravel/framework/src/Illuminate/View/Concerns/ManagesEvents.php
opt/app/vendor/laravel/framework/src/Illuminate/View/Concerns/ManagesLayouts.php
opt/app/vendor/laravel/framework/src/Illuminate/View/Concerns/ManagesLoops.php
opt/app/vendor/laravel/framework/src/Illuminate/View/Concerns/ManagesStacks.php
opt/app/vendor/laravel/framework/src/Illuminate/View/Concerns/ManagesTranslations.php
opt/app/vendor/laravel/framework/src/Illuminate/View/Engines/CompilerEngine.php
opt/app/vendor/laravel/framework/src/Illuminate/View/Engines/EngineInterface.php
opt/app/vendor/laravel/framework/src/Illuminate/View/Engines/EngineResolver.php
@ -860,6 +957,7 @@ opt/app/vendor/laravel/framework/src/Illuminate/View/FileViewFinder.php
opt/app/vendor/laravel/framework/src/Illuminate/View/Middleware/ShareErrorsFromSession.php
opt/app/vendor/laravel/framework/src/Illuminate/View/View.php
opt/app/vendor/laravel/framework/src/Illuminate/View/ViewFinderInterface.php
opt/app/vendor/laravel/framework/src/Illuminate/View/ViewName.php
opt/app/vendor/laravel/framework/src/Illuminate/View/ViewServiceProvider.php
opt/app/vendor/laravelcollective/html/src/Componentable.php
opt/app/vendor/laravelcollective/html/src/FormBuilder.php
@ -867,6 +965,15 @@ opt/app/vendor/laravelcollective/html/src/FormFacade.php
opt/app/vendor/laravelcollective/html/src/HtmlBuilder.php
opt/app/vendor/laravelcollective/html/src/HtmlServiceProvider.php
opt/app/vendor/laravelcollective/html/src/helpers.php
opt/app/vendor/league/flysystem/src/Adapter/AbstractAdapter.php
opt/app/vendor/league/flysystem/src/Adapter/Local.php
opt/app/vendor/league/flysystem/src/AdapterInterface.php
opt/app/vendor/league/flysystem/src/Config.php
opt/app/vendor/league/flysystem/src/ConfigAwareTrait.php
opt/app/vendor/league/flysystem/src/Filesystem.php
opt/app/vendor/league/flysystem/src/FilesystemInterface.php
opt/app/vendor/league/flysystem/src/Plugin/PluggableTrait.php
opt/app/vendor/league/flysystem/src/ReadInterface.php
opt/app/vendor/monolog/monolog/src/Monolog/Formatter/FormatterInterface.php
opt/app/vendor/monolog/monolog/src/Monolog/Formatter/LineFormatter.php
opt/app/vendor/monolog/monolog/src/Monolog/Formatter/NormalizerFormatter.php
@ -883,7 +990,6 @@ opt/app/vendor/nesbot/carbon/src/Carbon/Lang/en.php
opt/app/vendor/paragonie/random_compat/lib/random.php
opt/app/vendor/pragmarx/google2fa/src/Vendor/Laravel/ServiceProvider.php
opt/app/vendor/psr/log/Psr/Log/LoggerInterface.php
opt/app/vendor/psy/psysh/src/Psy/functions.php
opt/app/vendor/rcrowe/twigbridge/config/twigbridge.php
opt/app/vendor/rcrowe/twigbridge/src/Bridge.php
opt/app/vendor/rcrowe/twigbridge/src/Command/Clean.php
@ -1015,6 +1121,7 @@ opt/app/vendor/symfony/console/Input/InputArgument.php
opt/app/vendor/symfony/console/Input/InputDefinition.php
opt/app/vendor/symfony/console/Input/InputInterface.php
opt/app/vendor/symfony/console/Input/InputOption.php
opt/app/vendor/symfony/console/Input/StreamableInputInterface.php
opt/app/vendor/symfony/console/Output/BufferedOutput.php
opt/app/vendor/symfony/console/Output/ConsoleOutput.php
opt/app/vendor/symfony/console/Output/ConsoleOutputInterface.php
@ -1024,7 +1131,9 @@ opt/app/vendor/symfony/console/Output/StreamOutput.php
opt/app/vendor/symfony/console/Style/OutputStyle.php
opt/app/vendor/symfony/console/Style/StyleInterface.php
opt/app/vendor/symfony/console/Style/SymfonyStyle.php
opt/app/vendor/symfony/console/Terminal.php
opt/app/vendor/symfony/debug/Exception/FatalErrorException.php
opt/app/vendor/symfony/debug/Exception/FatalThrowableError.php
opt/app/vendor/symfony/debug/Exception/FlattenException.php
opt/app/vendor/symfony/debug/ExceptionHandler.php
opt/app/vendor/symfony/finder/Comparator/Comparator.php
@ -1112,13 +1221,17 @@ opt/app/vendor/twig/twig/lib/Twig/Node/Expression/Binary/Greater.php
opt/app/vendor/twig/twig/lib/Twig/Node/Expression/Binary/Mod.php
opt/app/vendor/twig/twig/lib/Twig/Node/Expression/Binary/Mul.php
opt/app/vendor/twig/twig/lib/Twig/Node/Expression/Binary/NotEqual.php
opt/app/vendor/twig/twig/lib/Twig/Node/Expression/Binary/Or.php
opt/app/vendor/twig/twig/lib/Twig/Node/Expression/Call.php
opt/app/vendor/twig/twig/lib/Twig/Node/Expression/Conditional.php
opt/app/vendor/twig/twig/lib/Twig/Node/Expression/Constant.php
opt/app/vendor/twig/twig/lib/Twig/Node/Expression/Filter.php
opt/app/vendor/twig/twig/lib/Twig/Node/Expression/Filter/Default.php
opt/app/vendor/twig/twig/lib/Twig/Node/Expression/Function.php
opt/app/vendor/twig/twig/lib/Twig/Node/Expression/GetAttr.php
opt/app/vendor/twig/twig/lib/Twig/Node/Expression/Name.php
opt/app/vendor/twig/twig/lib/Twig/Node/Expression/Test.php
opt/app/vendor/twig/twig/lib/Twig/Node/Expression/Test/Defined.php
opt/app/vendor/twig/twig/lib/Twig/Node/Expression/Unary.php
opt/app/vendor/twig/twig/lib/Twig/Node/Expression/Unary/Neg.php
opt/app/vendor/twig/twig/lib/Twig/Node/Expression/Unary/Not.php
@ -1130,7 +1243,6 @@ opt/app/vendor/twig/twig/lib/Twig/Node/Module.php
opt/app/vendor/twig/twig/lib/Twig/Node/Print.php
opt/app/vendor/twig/twig/lib/Twig/Node/Set.php
opt/app/vendor/twig/twig/lib/Twig/Node/Text.php
opt/app/vendor/twig/twig/lib/Twig/NodeCaptureInterface.php
opt/app/vendor/twig/twig/lib/Twig/NodeInterface.php
opt/app/vendor/twig/twig/lib/Twig/NodeOutputInterface.php
opt/app/vendor/twig/twig/lib/Twig/NodeTraverser.php

View File

@ -52,6 +52,10 @@ class ProfileController extends Controller
*/
public function changePassword()
{
if (intval(getenv('SANDSTORM')) === 1) {
return view('error')->with('message', strval(trans('firefly.sandstorm_not_available')));
}
if (auth()->user()->hasRole('demo')) {
Session::flash('info', strval(trans('firefly.cannot_change_demo')));
@ -70,6 +74,10 @@ class ProfileController extends Controller
*/
public function deleteAccount()
{
if (intval(getenv('SANDSTORM')) === 1) {
return view('error')->with('message', strval(trans('firefly.sandstorm_not_available')));
}
if (auth()->user()->hasRole('demo')) {
Session::flash('info', strval(trans('firefly.cannot_delete_demo')));
@ -103,6 +111,10 @@ class ProfileController extends Controller
*/
public function postChangePassword(ProfileFormRequest $request, UserRepositoryInterface $repository)
{
if (intval(getenv('SANDSTORM')) === 1) {
return view('error')->with('message', strval(trans('firefly.sandstorm_not_available')));
}
if (auth()->user()->hasRole('demo')) {
Session::flash('info', strval(trans('firefly.cannot_change_demo')));
@ -139,6 +151,10 @@ class ProfileController extends Controller
*/
public function postDeleteAccount(UserRepositoryInterface $repository, DeleteAccountFormRequest $request)
{
if (intval(getenv('SANDSTORM')) === 1) {
return view('error')->with('message', strval(trans('firefly.sandstorm_not_available')));
}
if (auth()->user()->hasRole('demo')) {
Session::flash('info', strval(trans('firefly.cannot_delete_demo')));

View File

@ -148,11 +148,10 @@
</a>
<ul class="treeview-menu">
{% if not SANDSTORM %}
<li class="{{ activeRoutePartial('profile') }}">
<a class="{{ activeRouteStrict('profile.index') }}" href="{{ route('profile.index') }}"><i class="fa fa-user fa-fw"></i> {{ 'profile'|_ }}</a>
</li>
{% if not SANDSTORM %}
{% endif %}
<li class="{{ activeRoutePartial('preferences') }}">
<a class="{{ activeRouteStrict('preferences.index') }}" href="{{ route('preferences.index') }}"><i class="fa fa-gear fa-fw"></i> {{ 'preferences'|_ }}</a>

View File

@ -0,0 +1,57 @@
<?php
/**
* TwoFactorControllerTest.php
* Copyright (c) 2017 thegrumpydictator@gmail.com
* This software may be modified and distributed under the terms of the Creative Commons Attribution-ShareAlike 4.0 International License.
*
* See the LICENSE file for details.
*/
declare(strict_types = 1);
namespace Tests\Feature\Controllers\Auth;
use FireflyIII\Models\Preference;
use Preferences;
use Tests\TestCase;
class TwoFactorControllerTest extends TestCase
{
/**
* @covers \FireflyIII\Http\Controllers\Auth\TwoFactorController::index
*/
public function testIndex()
{
$this->be($this->user());
$falsePreference = new Preference;
$falsePreference->data = true;
$secretPreference = new Preference;
$secretPreference->data = 'BlablaSeecret';
Preferences::shouldReceive('get')->withArgs(['twoFactorAuthEnabled', false])->andReturn($falsePreference);
Preferences::shouldReceive('get')->withArgs(['twoFactorAuthSecret', null])->andReturn($secretPreference);
Preferences::shouldReceive('get')->withArgs(['twoFactorAuthSecret'])->andReturn($secretPreference);
$response = $this->get(route('two-factor.index'));
$response->assertStatus(200);
}
/**
* @covers \FireflyIII\Http\Controllers\Auth\TwoFactorController::lostTwoFactor
*/
public function testLostTwoFactor()
{
$this->be($this->user());
$truePreference = new Preference;
$truePreference->data = true;
$secretPreference = new Preference;
$secretPreference->data = 'BlablaSeecret';
Preferences::shouldReceive('get')->withArgs(['twoFactorAuthEnabled', false])->andReturn($truePreference);
Preferences::shouldReceive('get')->withArgs(['twoFactorAuthSecret', null])->andReturn($secretPreference);
Preferences::shouldReceive('get')->withArgs(['twoFactorAuthSecret'])->andReturn($secretPreference);
$response = $this->get(route('two-factor.lost'));
$response->assertStatus(200);
}
}

View File

@ -0,0 +1,141 @@
<?php
/**
* AccountControllerTest.php
* Copyright (c) 2017 thegrumpydictator@gmail.com
* This software may be modified and distributed under the terms of the Creative Commons Attribution-ShareAlike 4.0 International License.
*
* See the LICENSE file for details.
*/
declare(strict_types = 1);
namespace Tests\Feature\Controllers\Chart;
use Tests\TestCase;
class AccountControllerTest extends TestCase
{
/**
* @covers \FireflyIII\Http\Controllers\Chart\AccountController::expenseAccounts
* @dataProvider dateRangeProvider
*
* @param string $range
*/
public function testExpenseAccounts(string $range)
{
$this->be($this->user());
$this->changeDateRange($this->user(), $range);
$response = $this->get(route('chart.account.expense'));
$response->assertStatus(200);
}
/**
* @covers \FireflyIII\Http\Controllers\Chart\AccountController::expenseBudget
* @dataProvider dateRangeProvider
*
* @param string $range
*/
public function testExpenseBudget(string $range)
{
$this->be($this->user());
$this->changeDateRange($this->user(), $range);
$response = $this->get(route('chart.account.expense-budget', [1, '20120101', '20120131']));
$response->assertStatus(200);
}
/**
* @covers \FireflyIII\Http\Controllers\Chart\AccountController::expenseCategory
* @dataProvider dateRangeProvider
*
* @param string $range
*/
public function testExpenseCategory(string $range)
{
$this->be($this->user());
$this->changeDateRange($this->user(), $range);
$response = $this->get(route('chart.account.expense-category', [1, '20120101', '20120131']));
$response->assertStatus(200);
}
/**
* @covers \FireflyIII\Http\Controllers\Chart\AccountController::frontpage
* @dataProvider dateRangeProvider
*
* @param string $range
*/
public function testFrontpage(string $range)
{
$this->be($this->user());
$this->changeDateRange($this->user(), $range);
$response = $this->get(route('chart.account.frontpage'));
$response->assertStatus(200);
}
/**
* @covers \FireflyIII\Http\Controllers\Chart\AccountController::incomeCategory
* @dataProvider dateRangeProvider
*
* @param string $range
*/
public function testIncomeCategory(string $range)
{
$this->be($this->user());
$this->changeDateRange($this->user(), $range);
$response = $this->get(route('chart.account.income-category', [1, '20120101', '20120131']));
$response->assertStatus(200);
}
/**
* @covers \FireflyIII\Http\Controllers\Chart\AccountController::period
* @dataProvider dateRangeProvider
*
* @param string $range
*/
public function testPeriod(string $range)
{
$this->be($this->user());
$this->changeDateRange($this->user(), $range);
$response = $this->get(route('chart.account.period', [1, '2012-01-01']));
$response->assertStatus(200);
}
/**
* @covers \FireflyIII\Http\Controllers\Chart\AccountController::report
*/
public function testReport()
{
$this->be($this->user());
$response = $this->get(route('chart.account.report', ['1', '20120101', '20120131']));
$response->assertStatus(200);
}
/**
* @covers \FireflyIII\Http\Controllers\Chart\AccountController::revenueAccounts
* @dataProvider dateRangeProvider
*
* @param string $range
*/
public function testRevenueAccounts(string $range)
{
$this->be($this->user());
$this->changeDateRange($this->user(), $range);
$response = $this->get(route('chart.account.revenue'));
$response->assertStatus(200);
}
/**
* @covers \FireflyIII\Http\Controllers\Chart\AccountController::single
* @dataProvider dateRangeProvider
*
* @param string $range
*/
public function testSingle(string $range)
{
$this->be($this->user());
$this->changeDateRange($this->user(), $range);
$response = $this->get(route('chart.account.single', [1]));
$response->assertStatus(200);
}
}

View File

@ -0,0 +1,44 @@
<?php
/**
* BillControllerTest.php
* Copyright (c) 2017 thegrumpydictator@gmail.com
* This software may be modified and distributed under the terms of the Creative Commons Attribution-ShareAlike 4.0 International License.
*
* See the LICENSE file for details.
*/
declare(strict_types = 1);
namespace Tests\Feature\Controllers\Chart;
use Tests\TestCase;
class BillControllerTest extends TestCase
{
/**
* @covers \FireflyIII\Http\Controllers\Chart\BillController::frontpage
* @dataProvider dateRangeProvider
*
* @param string $range
*/
public function testFrontpage(string $range)
{
$this->be($this->user());
$this->changeDateRange($this->user(), $range);
$response = $this->get(route('chart.bill.frontpage'));
$response->assertStatus(200);
}
/**
* @covers \FireflyIII\Http\Controllers\Chart\BillController::single
*/
public function testSingle()
{
$this->be($this->user());
$response = $this->get(route('chart.bill.single', [1]));
$response->assertStatus(200);
}
}

View File

@ -0,0 +1,91 @@
<?php
/**
* BudgetControllerTest.php
* Copyright (c) 2017 thegrumpydictator@gmail.com
* This software may be modified and distributed under the terms of the Creative Commons Attribution-ShareAlike 4.0 International License.
*
* See the LICENSE file for details.
*/
declare(strict_types = 1);
namespace Tests\Feature\Controllers\Chart;
use Carbon\Carbon;
use FireflyIII\Repositories\Budget\BudgetRepositoryInterface;
use Tests\TestCase;
class BudgetControllerTest extends TestCase
{
/**
* @covers \FireflyIII\Http\Controllers\Chart\BudgetController::budget
* @dataProvider dateRangeProvider
*
* @param string $range
*/
public function testBudget(string $range)
{
$budgetRepository = $this->mock(BudgetRepositoryInterface::class);
$budgetRepository->shouldReceive('firstUseDate')->andReturn(new Carbon('2015-01-01'));
$budgetRepository->shouldReceive('spentInPeriod')->andReturn('-100');
$this->be($this->user());
$this->changeDateRange($this->user(), $range);
$response = $this->get(route('chart.budget.budget', [1]));
$response->assertStatus(200);
}
/**
* @covers \FireflyIII\Http\Controllers\Chart\BudgetController::budgetLimit
* @dataProvider dateRangeProvider
*
* @param string $range
*/
public function testBudgetLimit(string $range)
{
$budgetRepository = $this->mock(BudgetRepositoryInterface::class);
$budgetRepository->shouldReceive('spentInPeriod')->andReturn('-100');
$this->be($this->user());
$this->changeDateRange($this->user(), $range);
$response = $this->get(route('chart.budget.budget-limit', [1,1]));
$response->assertStatus(200);
}
/**
* @covers \FireflyIII\Http\Controllers\Chart\BudgetController::frontpage
* @dataProvider dateRangeProvider
*
* @param string $range
*/
public function testFrontpage(string $range)
{
$this->be($this->user());
$this->changeDateRange($this->user(), $range);
$response = $this->get(route('chart.budget.frontpage'));
$response->assertStatus(200);
}
/**
* @covers \FireflyIII\Http\Controllers\Chart\BudgetController::period
*/
public function testPeriod()
{
$this->be($this->user());
$response = $this->get(route('chart.budget.period', [1,'1','20120101','20120131']));
$response->assertStatus(200);
}
/**
* @covers \FireflyIII\Http\Controllers\Chart\BudgetController::periodNoBudget
*/
public function testPeriodNoBudget()
{
$this->be($this->user());
$response = $this->get(route('chart.budget.period.no-budget', ['1','20120101','20120131']));
$response->assertStatus(200);
}
}

View File

@ -0,0 +1,137 @@
<?php
/**
* CategoryControllerTest.php
* Copyright (c) 2017 thegrumpydictator@gmail.com
* This software may be modified and distributed under the terms of the Creative Commons Attribution-ShareAlike 4.0 International License.
*
* See the LICENSE file for details.
*/
declare(strict_types = 1);
namespace Tests\Feature\Controllers\Chart;
use Carbon\Carbon;
use FireflyIII\Repositories\Account\AccountRepositoryInterface;
use FireflyIII\Repositories\Category\CategoryRepositoryInterface;
use Illuminate\Support\Collection;
use Tests\TestCase;
class CategoryControllerTest extends TestCase
{
/**
* @covers \FireflyIII\Http\Controllers\Chart\CategoryController::all
* @dataProvider dateRangeProvider
*
* @param string $range
*/
public function testAll(string $range)
{
$catRepository = $this->mock(CategoryRepositoryInterface::class);
$catRepository->shouldReceive('spentInPeriod')->andReturn('0');
$catRepository->shouldReceive('earnedInPeriod')->andReturn('0');
$catRepository->shouldReceive('firstUseDate')->andReturn(new Carbon);
$this->be($this->user());
$this->changeDateRange($this->user(), $range);
$response = $this->get(route('chart.category.all', [1]));
$response->assertStatus(200);
}
/**
* @covers \FireflyIII\Http\Controllers\Chart\CategoryController::currentPeriod
* @covers \FireflyIII\Http\Controllers\Chart\CategoryController::makePeriodChart
* @dataProvider dateRangeProvider
*
* @param string $range
*/
public function testCurrentPeriod(string $range)
{
// this is actually for makePeriodChart
$accountRepository = $this->mock(AccountRepositoryInterface::class);
$categoryRepository = $this->mock(CategoryRepositoryInterface::class);
$account = $this->user()->accounts()->where('account_type_id', 5)->first();
$accountRepository->shouldReceive('getAccountsByType')->andReturn(new Collection([$account]));
$categoryRepository->shouldReceive('spentInPeriod')->andReturn('0');
$categoryRepository->shouldReceive('earnedInPeriod')->andReturn('0');
$this->be($this->user());
$this->changeDateRange($this->user(), $range);
$response = $this->get(route('chart.category.current', [1]));
$response->assertStatus(200);
}
/**
* @covers \FireflyIII\Http\Controllers\Chart\CategoryController::frontpage
* @dataProvider dateRangeProvider
*
* @param string $range
*/
public function testFrontpage(string $range)
{
$accountRepository = $this->mock(AccountRepositoryInterface::class);
$categoryRepository = $this->mock(CategoryRepositoryInterface::class);
$category = $this->user()->categories()->first();
$account = $this->user()->accounts()->where('account_type_id', 5)->first();
// get one category
$categoryRepository->shouldReceive('getCategories')->andReturn(new Collection([$category]));
// get one account
$accountRepository->shouldReceive('getAccountsByType')->andReturn(new Collection([$account]));
// always return zero
$categoryRepository->shouldReceive('spentInPeriod')->andReturn('0');
$categoryRepository->shouldReceive('spentInPeriodWithoutCategory')->andReturn('0');
$this->be($this->user());
$this->changeDateRange($this->user(), $range);
$response = $this->get(route('chart.category.frontpage', [1]));
$response->assertStatus(200);
}
/**
* @covers \FireflyIII\Http\Controllers\Chart\CategoryController::reportPeriod
*/
public function testReportPeriod()
{
$this->be($this->user());
$response = $this->get(route('chart.category.period', [1, '1', '20120101', '20120131']));
$response->assertStatus(200);
}
/**
* @covers \FireflyIII\Http\Controllers\Chart\CategoryController::reportPeriodNoCategory
*/
public function testReportPeriodNoCategory()
{
$this->be($this->user());
$response = $this->get(route('chart.category.period.no-category', ['1', '20120101', '20120131']));
$response->assertStatus(200);
}
/**
* @covers \FireflyIII\Http\Controllers\Chart\CategoryController::specificPeriod
* @covers \FireflyIII\Http\Controllers\Chart\CategoryController::makePeriodChart
* @dataProvider dateRangeProvider
*
* @param string $range
*/
public function testSpecificPeriod(string $range)
{
$accountRepository = $this->mock(AccountRepositoryInterface::class);
$categoryRepository = $this->mock(CategoryRepositoryInterface::class);
$account = $this->user()->accounts()->where('account_type_id', 5)->first();
$accountRepository->shouldReceive('getAccountsByType')->andReturn(new Collection([$account]));
$categoryRepository->shouldReceive('spentInPeriod')->andReturn('0');
$categoryRepository->shouldReceive('earnedInPeriod')->andReturn('0');
$this->be($this->user());
$this->changeDateRange($this->user(), $range);
$response = $this->get(route('chart.category.specific', ['1', '2012-01-01']));
$response->assertStatus(200);
}
}

View File

@ -0,0 +1,70 @@
<?php
/**
* CategoryReportControllerTest.php
* Copyright (c) 2017 thegrumpydictator@gmail.com
* This software may be modified and distributed under the terms of the Creative Commons Attribution-ShareAlike 4.0 International License.
*
* See the LICENSE file for details.
*/
declare(strict_types = 1);
namespace Tests\Feature\Controllers\Chart;
use Tests\TestCase;
class CategoryReportControllerTest extends TestCase
{
/**
* @covers \FireflyIII\Http\Controllers\Chart\CategoryReportController::accountExpense
*/
public function testAccountExpense()
{
$this->be($this->user());
$response = $this->get(route('chart.category.account-expense', ['1', '1', '20120101', '20120131', 0]));
$response->assertStatus(200);
}
/**
* @covers \FireflyIII\Http\Controllers\Chart\CategoryReportController::accountIncome
*/
public function testAccountIncome()
{
$this->be($this->user());
$response = $this->get(route('chart.category.account-income', ['1', '1', '20120101', '20120131', 0]));
$response->assertStatus(200);
}
/**
* @covers \FireflyIII\Http\Controllers\Chart\CategoryReportController::categoryExpense
*/
public function testCategoryExpense()
{
$this->be($this->user());
$response = $this->get(route('chart.category.category-expense', ['1', '1', '20120101', '20120131', 0]));
$response->assertStatus(200);
}
/**
* @covers \FireflyIII\Http\Controllers\Chart\CategoryReportController::categoryIncome
*/
public function testCategoryIncome()
{
$this->be($this->user());
$response = $this->get(route('chart.category.category-income', ['1', '1', '20120101', '20120131', 0]));
$response->assertStatus(200);
}
/**
* @covers \FireflyIII\Http\Controllers\Chart\CategoryReportController::mainChart
*/
public function testMainChart()
{
$this->be($this->user());
$response = $this->get(route('chart.category.main', ['1', '1', '20120101', '20120131']));
$response->assertStatus(200);
}
}

View File

@ -0,0 +1,30 @@
<?php
/**
* PiggyBankControllerTest.php
* Copyright (c) 2017 thegrumpydictator@gmail.com
* This software may be modified and distributed under the terms of the Creative Commons Attribution-ShareAlike 4.0 International License.
*
* See the LICENSE file for details.
*/
declare(strict_types = 1);
namespace Tests\Feature\Controllers\Chart;
use Tests\TestCase;
class PiggyBankControllerTest extends TestCase
{
/**
* @covers \FireflyIII\Http\Controllers\Chart\PiggyBankController::history
*/
public function testHistory()
{
$this->be($this->user());
$response = $this->get(route('chart.piggy-bank.history', [1]));
$response->assertStatus(200);
}
}

View File

@ -0,0 +1,50 @@
<?php
/**
* ReportControllerTest.php
* Copyright (c) 2017 thegrumpydictator@gmail.com
* This software may be modified and distributed under the terms of the Creative Commons Attribution-ShareAlike 4.0 International License.
*
* See the LICENSE file for details.
*/
declare(strict_types = 1);
namespace Tests\Feature\Controllers\Chart;
use Tests\TestCase;
class ReportControllerTest extends TestCase
{
/**
* @covers \FireflyIII\Http\Controllers\Chart\ReportController::netWorth
*/
public function testNetWorth()
{
$this->be($this->user());
$response = $this->get(route('chart.report.net-worth', [1, '20120101', '20120131']));
$response->assertStatus(200);
}
/**
* @covers \FireflyIII\Http\Controllers\Chart\ReportController::operations
*/
public function testOperations()
{
$this->be($this->user());
$response = $this->get(route('chart.report.operations', [1, '20120101', '20120131']));
$response->assertStatus(200);
}
/**
* @covers \FireflyIII\Http\Controllers\Chart\ReportController::sum
*/
public function testSum()
{
$this->be($this->user());
$response = $this->get(route('chart.report.sum', [1, '20120101', '20120131']));
$response->assertStatus(200);
}
}