commit b87b6b2a96de870f1782b00cfe3f393cc79b7d3b Author: Jonny Barnes <jonny@jonnybarnes.uk> Date: Mon Dec 18 14:05:11 2017 +0000 Even more tests for this micropub refactor commit 2d967f33c3abeea8fc89f91e1764e970681dc58f Author: Jonny Barnes <jonny@jonnybarnes.uk> Date: Sat Dec 16 22:19:53 2017 +0000 Fill out token endpoint tests commit 440dcbe3e53f058060c918429bea75911ddafdc1 Merge: 02a25b0 f60164f Author: Jonny Barnes <jonny@jonnybarnes.uk> Date: Fri Dec 15 14:32:50 2017 +0000 Merge pull request #77 from jonnybarnes/analysis-8KABW6 Apply fixes from StyleCI commit f60164fe81dbcc1d2343704145d26c6d6412579a Author: Jonny Barnes <jonny@jonnybarnes.uk> Date: Fri Dec 15 14:27:40 2017 +0000 Apply fixes from StyleCI commit 02a25b083a0305f73d715feb3f9d34f9de8f67d4 Author: Jonny Barnes <jonny@jonnybarnes.uk> Date: Fri Dec 15 14:17:43 2017 +0000 phpcs fix commit 144998de0866bf11f235847d7edc076235294545 Author: Jonny Barnes <jonny@jonnybarnes.uk> Date: Fri Dec 15 14:16:59 2017 +0000 Don’t pass the request object to service files, pass request()->all() commit dd5e52010c51a359665efa349ff8c13d4d6dbf57 Merge: 97b270a 23b145e Author: Jonny Barnes <jonny@jonnybarnes.uk> Date: Sun Dec 10 20:01:03 2017 +0000 Merge pull request #76 from jonnybarnes/analysis-86AVg6 Apply fixes from StyleCI commit 23b145e7bf67a358b3cb894ea0793984b65ecab5 Author: Jonny Barnes <jonny@jonnybarnes.uk> Date: Sun Dec 10 19:50:53 2017 +0000 Apply fixes from StyleCI commit 97b270a89abe92e167e0d363029ae0b86608bbc9 Author: Jonny Barnes <jonny@jonnybarnes.uk> Date: Sun Dec 10 19:43:38 2017 +0000 Improve test coverage of the refactor commit 244102264559e4fb0b0614d1738c0283703a71dc Author: Jonny Barnes <jonny@jonnybarnes.uk> Date: Fri Dec 8 13:31:13 2017 +0000 Refactor the note creation code commit 22b4786cbd7ae508b51a47f0c8cf9a15535edbb1 Author: Jonny Barnes <jonny@jonnybarnes.uk> Date: Thu Dec 7 17:39:41 2017 +0000 Remove ununsed importsed classes in the controller
189 lines
7.1 KiB
PHP
189 lines
7.1 KiB
PHP
<?php
|
|
|
|
namespace Tests\Feature;
|
|
|
|
use Tests\TestCase;
|
|
use Tests\TestToken;
|
|
use Lcobucci\JWT\Builder;
|
|
use Lcobucci\JWT\Signer\Hmac\Sha256;
|
|
use Illuminate\Foundation\Testing\DatabaseTransactions;
|
|
|
|
class SwarmTest extends TestCase
|
|
{
|
|
use DatabaseTransactions, TestToken;
|
|
|
|
public function test_faked_ownyourswarm_request_with_foursquare()
|
|
{
|
|
$response = $this->json(
|
|
'POST',
|
|
'api/post',
|
|
[
|
|
'type' => ['h-entry'],
|
|
'properties' => [
|
|
'published' => [\Carbon\Carbon::now()->toDateTimeString()],
|
|
'syndication' => ['https://www.swarmapp.com/checkin/abc'],
|
|
'content' => [[
|
|
'value' => 'My first #checkin using Example Product',
|
|
'html' => 'My first #checkin using <a href="http://example.org">Example Product</a>',
|
|
]],
|
|
'checkin' => [[
|
|
'type' => ['h-card'],
|
|
'properties' => [
|
|
'name' => ['Awesome Venue'],
|
|
'url' => ['https://foursquare.com/v/123456'],
|
|
'latitude' => ['1.23'],
|
|
'longitude' => ['4.56'],
|
|
],
|
|
]],
|
|
],
|
|
],
|
|
['HTTP_Authorization' => 'Bearer ' . $this->getToken()]
|
|
);
|
|
$response
|
|
->assertStatus(201)
|
|
->assertJson(['response' => 'created']);
|
|
$this->assertDatabaseHas('notes', [
|
|
'swarm_url' => 'https://www.swarmapp.com/checkin/abc'
|
|
]);
|
|
$this->assertDatabaseHas('places', [
|
|
'external_urls' => '{"foursquare": "https://foursquare.com/v/123456"}'
|
|
]);
|
|
}
|
|
|
|
// this request would actually come from another client than OwnYourSwarm
|
|
public function test_faked_ownyourswarm_request_with_osm()
|
|
{
|
|
$response = $this->json(
|
|
'POST',
|
|
'api/post',
|
|
[
|
|
'type' => ['h-entry'],
|
|
'properties' => [
|
|
'published' => [\Carbon\Carbon::now()->toDateTimeString()],
|
|
'content' => [[
|
|
'value' => 'My first #checkin using Example Product',
|
|
'html' => 'My first #checkin using <a href="http://example.org">Example Product</a>',
|
|
]],
|
|
'checkin' => [[
|
|
'type' => ['h-card'],
|
|
'properties' => [
|
|
'name' => ['Awesome Venue'],
|
|
'url' => ['https://www.openstreetmap.org/way/123456'],
|
|
'latitude' => ['1.23'],
|
|
'longitude' => ['4.56'],
|
|
],
|
|
]],
|
|
],
|
|
],
|
|
['HTTP_Authorization' => 'Bearer ' . $this->getToken()]
|
|
);
|
|
$response
|
|
->assertStatus(201)
|
|
->assertJson(['response' => 'created']);
|
|
$this->assertDatabaseHas('places', [
|
|
'external_urls' => '{"osm": "https://www.openstreetmap.org/way/123456"}'
|
|
]);
|
|
}
|
|
|
|
// this request would actually come from another client than OwnYourSwarm
|
|
public function test_faked_ownyourswarm_request_without_known_external_url()
|
|
{
|
|
$response = $this->json(
|
|
'POST',
|
|
'api/post',
|
|
[
|
|
'type' => ['h-entry'],
|
|
'properties' => [
|
|
'published' => [\Carbon\Carbon::now()->toDateTimeString()],
|
|
'content' => [[
|
|
'value' => 'My first #checkin using Example Product',
|
|
'html' => 'My first #checkin using <a href="http://example.org">Example Product</a>',
|
|
]],
|
|
'checkin' => [[
|
|
'type' => ['h-card'],
|
|
'properties' => [
|
|
'name' => ['Awesome Venue'],
|
|
'url' => ['https://www.example.org/way/123456'],
|
|
'latitude' => ['1.23'],
|
|
'longitude' => ['4.56'],
|
|
],
|
|
]],
|
|
],
|
|
],
|
|
['HTTP_Authorization' => 'Bearer ' . $this->getToken()]
|
|
);
|
|
$response
|
|
->assertStatus(201)
|
|
->assertJson(['response' => 'created']);
|
|
$this->assertDatabaseHas('places', [
|
|
'external_urls' => '{"default": "https://www.example.org/way/123456"}'
|
|
]);
|
|
}
|
|
|
|
public function test_faked_ownyourswarm_request_with_no_text_content()
|
|
{
|
|
$response = $this->json(
|
|
'POST',
|
|
'api/post',
|
|
[
|
|
'type' => ['h-entry'],
|
|
'properties' => [
|
|
'published' => [\Carbon\Carbon::now()->toDateTimeString()],
|
|
'syndication' => ['https://www.swarmapp.com/checkin/def'],
|
|
'checkin' => [[
|
|
'type' => ['h-card'],
|
|
'properties' => [
|
|
'name' => ['Awesomer Venue'],
|
|
'url' => ['https://foursquare.com/v/654321'],
|
|
'latitude' => ['3.21'],
|
|
'longitude' => ['6.54'],
|
|
],
|
|
]],
|
|
],
|
|
],
|
|
['HTTP_Authorization' => 'Bearer ' . $this->getToken()]
|
|
);
|
|
$response
|
|
->assertStatus(201)
|
|
->assertJson(['response' => 'created']);
|
|
$this->assertDatabaseHas('places', [
|
|
'external_urls' => '{"foursquare": "https://foursquare.com/v/654321"}'
|
|
]);
|
|
$this->assertDatabaseHas('notes', [
|
|
'swarm_url' => 'https://www.swarmapp.com/checkin/def'
|
|
]);
|
|
}
|
|
|
|
public function test_faked_ownyourswarm_request_saves_just_post_when_error_in_checkin_data()
|
|
{
|
|
$response = $this->json(
|
|
'POST',
|
|
'api/post',
|
|
[
|
|
'type' => ['h-entry'],
|
|
'properties' => [
|
|
'published' => [\Carbon\Carbon::now()->toDateTimeString()],
|
|
'syndication' => ['https://www.swarmapp.com/checkin/abc'],
|
|
'content' => [[
|
|
'value' => 'My first #checkin using Example Product',
|
|
'html' => 'My first #checkin using <a href="http://example.org">Example Product</a>',
|
|
]],
|
|
'checkin' => [[
|
|
'type' => ['h-card'],
|
|
'properties' => [
|
|
'name' => ['Awesome Venue'],
|
|
'url' => ['https://foursquare.com/v/123456'],
|
|
],
|
|
]],
|
|
],
|
|
],
|
|
['HTTP_Authorization' => 'Bearer ' . $this->getToken()]
|
|
);
|
|
$response
|
|
->assertStatus(201)
|
|
->assertJson(['response' => 'created']);
|
|
$this->assertDatabaseMissing('places', [
|
|
'name' => 'Awesome Venue',
|
|
]);
|
|
}
|
|
}
|