Download the PHP package laravel/browser-kit-testing without Composer

On this page you can find all versions of the php package laravel/browser-kit-testing. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.

FAQ

After the download, you have to make one include require_once('vendor/autoload.php');. After that you have to import the classes with use statements.

Example:
If you use only one package a project is not needed. But if you use more then one package, without a project it is not possible to import the classes with use statements.

In general, it is recommended to use always a project to download your libraries. In an application normally there is more than one library needed.
Some PHP packages are not free to download and because of that hosted in private repositories. In this case some credentials are needed to access such packages. Please use the auth.json textarea to insert credentials, if a package is coming from a private repository. You can look here for more information.

  • Some hosting areas are not accessible by a terminal or SSH. Then it is not possible to use Composer.
  • To use Composer is sometimes complicated. Especially for beginners.
  • Composer needs much resources. Sometimes they are not available on a simple webspace.
  • If you are using private repositories you don't need to share your credentials. You can set up everything on our site and then you provide a simple download link to your team member.
  • Simplify your Composer build process. Use our own command line tool to download the vendor folder as binary. This makes your build process faster and you don't need to expose your credentials for private repositories.
Please rate this library. Is it a good library?

Informations about the package browser-kit-testing

Laravel BrowserKit Testing

Build Status Total Downloads Latest Stable Version License

Introduction

Laravel BrowserKit Testing provides a very fluent API for making HTTP requests to your application, examining the output, and even filling out forms.

Official Documentation

Installation

First, install this package:

composer require laravel/browser-kit-testing --dev

Next, modify your application's base TestCase class to extend Laravel\BrowserKitTesting\TestCase instead of Illuminate\Foundation\Testing\TestCase:

No other modifications to your tests should be necessary.

Usage

To get started with a simple example, take a look at the test defined below:

The visit method makes a GET request into the application. The see method asserts that we should see the given text in the response returned by the application. The dontSee method asserts that the given text is not returned in the application response. This is the most basic application test available in Laravel.

You may also use the 'visitRoute' method to make a 'GET' request via a named route:

Interacting With Your Application

Of course, you can do much more than simply assert that text appears in a given response. Let's take a look at some examples of clicking links and filling out forms:

Interacting With Links

In this test, we will make a request to the application, "click" a link in the returned response, and then assert that we landed on a given URI. For example, let's assume there is a link in our response that has a text value of "About Us":

Now, let's write a test that clicks the link and asserts the user lands on the correct page:

You may also check that the user has arrived at the correct named route using the seeRouteIs method:

Interacting With Forms

Laravel also provides several methods for testing forms. The type, select, check, attach, and press methods allow you to interact with all of your form's inputs. For example, let's imagine this form exists on the application's registration page:

We can write a test to complete this form and inspect the result:

Of course, if your form contains other inputs such as radio buttons or drop-down boxes, you may easily fill out those types of fields as well. Here is a list of each form manipulation method:

Method Description
$this->type($text, $elementName) "Type" text into a given field.
$this->select($value, $elementName) "Select" a radio button or drop-down field.
$this->check($elementName) "Check" a checkbox field.
$this->uncheck($elementName) "Uncheck" a checkbox field.
$this->attach($pathToFile, $elementName) "Attach" a file to the form.
$this->press($buttonTextOrElementName) "Press" a button with the given text or name.
File Inputs

If your form contains file inputs, you may attach files to the form using the attach method:

Testing JSON APIs

Laravel also provides several helpers for testing JSON APIs and their responses. For example, the json, get, post, put, patch, and delete methods may be used to issue requests with various HTTP verbs. You may also easily pass data and headers to these methods. To get started, let's write a test to make a POST request to /user and assert that the expected data was returned:

{tip} The seeJson method converts the given array into JSON, and then verifies that the JSON fragment occurs anywhere within the entire JSON response returned by the application. So, if there are other properties in the JSON response, this test will still pass as long as the given fragment is present.

Verifying Exact Match

If you would like to verify that the given array is an exact match for the JSON returned by the application, you should use the seeJsonEquals method:

Verifying Structural Match

It is also possible to verify that a JSON response adheres to a specific structure. In this scenario, you should use the seeJsonStructure method and pass it your expected JSON structure:

The above example illustrates an expectation of receiving a name attribute and a nested pet object with its own name and age attributes. seeJsonStructure will not fail if additional keys are present in the response. For example, the test would still pass if the pet had a weight attribute.

You may use the * to assert that the returned JSON structure has a list where each list item contains at least the attributes found in the set of values:

You may also nest the * notation. In this case, we will assert that each user in the JSON response contains a given set of attributes and that each pet on each user also contains a given set of attributes:

Sessions / Authentication

Laravel provides several helpers for working with the session during testing. First, you may set the session data to a given array using the withSession method. This is useful for loading the session with data before issuing a request to your application:

Of course, one common use of the session is for maintaining state for the authenticated user. The actingAs helper method provides a simple way to authenticate a given user as the current user. For example, we may use a model factory to generate and authenticate a user:

You may also specify which guard should be used to authenticate the given user by passing the guard name as the second argument to the actingAs method:

Disabling Middleware

When testing your application, you may find it convenient to disable middleware for some of your tests. This will allow you to test your routes and controller in isolation from any middleware concerns. Laravel includes a simple WithoutMiddleware trait that you can use to automatically disable all middleware for the test class:

If you would like to only disable middleware for a few test methods, you may call the withoutMiddleware method from within the test methods:

Custom HTTP Requests

If you would like to make a custom HTTP request into your application and get the full Illuminate\Http\Response object, you may use the call method:

If you are making POST, PUT, or PATCH requests you may pass an array of input data with the request. Of course, this data will be available in your routes and controller via the Request instance:

PHPUnit Assertions

Laravel provides a variety of custom assertion methods for PHPUnit tests:

Method Description
->assertResponseOk(); Assert that the client response has an OK status code.
->assertResponseStatus($code); Assert that the client response has a given code.
->assertViewHas($key, $value = null); Assert that the response view has a given piece of bound data.
->assertViewHasAll(array $bindings); Assert that the view has a given list of bound data.
->assertViewMissing($key); Assert that the response view is missing a piece of bound data.
->assertRedirectedTo($uri, $with = []); Assert whether the client was redirected to a given URI.
->assertRedirectedToRoute($name, $parameters = [], $with = []); Assert whether the client was redirected to a given route.
->assertRedirectedToAction($name, $parameters = [], $with = []); Assert whether the client was redirected to a given action.
->assertSessionHas($key, $value = null); Assert that the session has a given value.
->assertSessionHasAll(array $bindings); Assert that the session has a given list of values.
->assertSessionHasErrors($bindings = [], $format = null); Assert that the session has errors bound.
->assertHasOldInput(); Assert that the session has old input.
->assertSessionMissing($key); Assert that the session is missing a given key.

Contributing

Thank you for considering contributing to BrowserKit Testing! The contribution guide can be found in the Laravel documentation.

Code of Conduct

In order to ensure that the Laravel community is welcoming to all, please review and abide by the Code of Conduct.

Security Vulnerabilities

Please review our security policy on how to report security vulnerabilities.

License

Laravel BrowserKit Testing is open-sourced software licensed under the MIT license.


All versions of browser-kit-testing with dependencies

PHP Build Version
Package Version
Requires php Version ^8.2
ext-dom Version *
laravel/framework Version ^10.44|^11.0
mockery/mockery Version ^1.0
phpunit/phpunit Version ^10.4|^11.0.1
symfony/console Version ^6.2|^7.0
symfony/css-selector Version ^6.2|^7.0
symfony/dom-crawler Version ^6.2|^7.0
symfony/http-foundation Version ^6.2|^7.0
symfony/http-kernel Version ^6.2|^7.0
Composer command for our command line client (download client) This client runs in each environment. You don't need a specific PHP version etc. The first 20 API calls are free. Standard composer command

The package laravel/browser-kit-testing contains the following files

Loading the files please wait ....