diff --git a/app/Http/Controllers/SearchController.php b/app/Http/Controllers/SearchController.php
index 3b58551a..9e61e928 100644
--- a/app/Http/Controllers/SearchController.php
+++ b/app/Http/Controllers/SearchController.php
@@ -18,16 +18,23 @@ class SearchController extends Controller
$requestprovider = $request->input('provider');
$query = $request->input('q');
+ // Validate the presence and non-emptiness of the query parameter
+ if (!$query || trim($query) === '') {
+ abort(400, 'Missing or empty query parameter');
+ }
+
$provider = Search::providerDetails($requestprovider);
+ if (!$provider || !isset($provider->type)) {
+ abort(404, 'Invalid provider');
+ }
+
if ($provider->type == 'standard') {
return redirect($provider->url.'?'.$provider->query.'='.urlencode($query));
} elseif ($provider->type == 'external') {
$class = new $provider->class;
- //print_r($provider);
return $class->getResults($query, $provider);
}
- //print_r($provider);
- }
+ abort(404, 'Provider type not supported');}
}
diff --git a/database/seeders/UsersSeeder.php b/database/seeders/UsersSeeder.php
index 1c729a27..2ece6f65 100755
--- a/database/seeders/UsersSeeder.php
+++ b/database/seeders/UsersSeeder.php
@@ -18,6 +18,7 @@ class UsersSeeder extends Seeder
$user->username = 'admin';
$user->email = 'admin@test.com';
$user->password = null;
+ $user->public_front = 0; // Default value for public_front
$user->save();
$user_id = $user->id;
diff --git a/resources/views/users/form.blade.php b/resources/views/users/form.blade.php
index be6cecce..511480b0 100644
--- a/resources/views/users/form.blade.php
+++ b/resources/views/users/form.blade.php
@@ -45,13 +45,13 @@
- {{ html()->password('password', array('class' => 'form-control'))->attributes(null) }}
+ {{ html()->password('password', array('class' => 'form-control'))->attributes([]) }}
- {{ html()->password('password_confirmation', array('class' => 'form-control'))->attributes(null) }}
+ {{ html()->password('password_confirmation', array('class' => 'form-control'))->attributes([]) }}
diff --git a/tests/Feature/ImportTest.php b/tests/Feature/ImportTest.php
new file mode 100644
index 00000000..0a7d4925
--- /dev/null
+++ b/tests/Feature/ImportTest.php
@@ -0,0 +1,19 @@
+get(route('items.import'));
+
+ $response->assertStatus(200);
+ $response->assertSee('Import');
+ }
+}
\ No newline at end of file
diff --git a/tests/Feature/SearchTest.php b/tests/Feature/SearchTest.php
new file mode 100644
index 00000000..af72419a
--- /dev/null
+++ b/tests/Feature/SearchTest.php
@@ -0,0 +1,53 @@
+get(route('search', ['provider' => $provider, 'q' => $query]));
+
+ $response->assertStatus(302);
+
+ $expectedUrl = 'https://www.google.com/search?q=' . urlencode($query);
+ $response->assertRedirect($expectedUrl);
+ }
+
+ public function test_search_page_with_invalid_provider(): void
+ {
+ $provider = 'invalid_provider'; // Invalid provider
+ $query = 'test'; // Example search term
+
+ $response = $this->get(route('search', ['provider' => $provider, 'q' => $query]));
+
+ $response->assertStatus(404); // Assert that the response status is 404
+ }
+
+ public function test_search_page_without_query_parameter(): void
+ {
+ $provider = 'google'; // Example provider
+
+ $response = $this->get(route('search', ['provider' => $provider]));
+
+ $response->assertStatus(400); // Assert that the response status is 400 (Bad Request)
+ }
+
+ public function test_search_page_with_empty_query(): void
+ {
+ $provider = 'google'; // Example provider
+ $query = ''; // Empty search term
+
+ $response = $this->get(route('search', ['provider' => $provider, 'q' => $query]));
+
+ $response->assertStatus(400); // Assert that the response status is 400 (Bad Request)
+ }
+}
\ No newline at end of file
diff --git a/tests/Feature/UserEditTest.php b/tests/Feature/UserEditTest.php
new file mode 100644
index 00000000..7d8e49d4
--- /dev/null
+++ b/tests/Feature/UserEditTest.php
@@ -0,0 +1,52 @@
+seed();
+
+ $user = User::factory()->create();
+
+ $response = $this->get(route('users.edit', $user->id));
+
+ $response->assertStatus(200);
+ $response->assertSee($user->username); // Verify username is displayed
+ $response->assertSee(__('app.user.email')); // Verify email field is present
+ }
+
+ public function test_user_can_be_updated(): void
+ {
+ $this->seed();
+
+ $user = User::factory()->create([
+ 'username' => 'oldusername',
+ 'email' => 'oldemail@example.com',
+ ]);
+
+ $data = [
+ 'username' => 'newusername',
+ 'email' => 'newemail@example.com',
+ 'password' => 'newpassword',
+ 'password_confirmation' => 'newpassword',
+ 'public_front' => 1, // Include public_front in the test data
+ ];
+
+ $response = $this->patch(route('users.update', $user->id), $data);
+
+ $response->assertRedirect(route('dash'));
+ $this->assertDatabaseHas('users', [
+ 'id' => $user->id,
+ 'username' => 'newusername',
+ 'email' => 'newemail@example.com',
+ ]);
+ }
+}
\ No newline at end of file