diff options
author | Nicolas Lœuillet <nicolas@loeuillet.org> | 2016-02-16 20:18:59 +0100 |
---|---|---|
committer | Nicolas Lœuillet <nicolas@loeuillet.org> | 2016-02-29 21:28:25 +0100 |
commit | 8a4690b6a56afd836c4d6ea7f640934fafa6c9cf (patch) | |
tree | 9feddc65dcb0ece4a5ac43783ac9f15bf73b676e /src | |
parent | abc329453be6381bcf4d1b0dfd9f698312ed3b16 (diff) | |
download | wallabag-8a4690b6a56afd836c4d6ea7f640934fafa6c9cf.tar.gz wallabag-8a4690b6a56afd836c4d6ea7f640934fafa6c9cf.tar.zst wallabag-8a4690b6a56afd836c4d6ea7f640934fafa6c9cf.zip |
add tests
Diffstat (limited to 'src')
5 files changed, 179 insertions, 0 deletions
diff --git a/src/Wallabag/CoreBundle/Resources/views/themes/baggy/Developer/client.html.twig b/src/Wallabag/CoreBundle/Resources/views/themes/baggy/Developer/client.html.twig new file mode 100644 index 00000000..061f4631 --- /dev/null +++ b/src/Wallabag/CoreBundle/Resources/views/themes/baggy/Developer/client.html.twig | |||
@@ -0,0 +1,31 @@ | |||
1 | {% extends "WallabagCoreBundle::layout.html.twig" %} | ||
2 | |||
3 | {% block title %}{% trans %}New client{% endtrans %}{% endblock %} | ||
4 | |||
5 | {% block content %} | ||
6 | <div class="row"> | ||
7 | <div class="col s12"> | ||
8 | <div class="card-panel settings"> | ||
9 | |||
10 | <div class="row"> | ||
11 | <p>{% trans %}You will create a new client. Please fill the field below for the redirect URI of your application:{% endtrans %}</p> | ||
12 | {{ form_start(form) }} | ||
13 | {{ form_errors(form) }} | ||
14 | <div class="input-field col s12"> | ||
15 | {{ form_label(form.redirect_uris) }} | ||
16 | {{ form_errors(form.redirect_uris) }} | ||
17 | {{ form_widget(form.redirect_uris) }} | ||
18 | </div> | ||
19 | <div class="hidden">{{ form_rest(form) }}</div> | ||
20 | |||
21 | <a href="{{ path('developer') }}" class="waves-effect waves-light grey btn">{% trans %}Back{% endtrans %}</a> | ||
22 | <button class="btn waves-effect waves-light" type="submit" name="action"> | ||
23 | {% trans %}Create new client{% endtrans %} | ||
24 | </button> | ||
25 | </div> | ||
26 | |||
27 | </div> | ||
28 | </div> | ||
29 | </div> | ||
30 | |||
31 | {% endblock %} | ||
diff --git a/src/Wallabag/CoreBundle/Resources/views/themes/baggy/Developer/client_parameters.html.twig b/src/Wallabag/CoreBundle/Resources/views/themes/baggy/Developer/client_parameters.html.twig new file mode 100644 index 00000000..8e3966b9 --- /dev/null +++ b/src/Wallabag/CoreBundle/Resources/views/themes/baggy/Developer/client_parameters.html.twig | |||
@@ -0,0 +1,25 @@ | |||
1 | {% extends "WallabagCoreBundle::layout.html.twig" %} | ||
2 | |||
3 | {% block title %}{% trans %}Client parameters{% endtrans %}{% endblock %} | ||
4 | |||
5 | {% block content %} | ||
6 | <div class="row"> | ||
7 | <div class="col s12"> | ||
8 | <div class="card-panel settings"> | ||
9 | <div class="row"> | ||
10 | <p>{% trans %}Here are your client parameters.{% endtrans %}</p> | ||
11 | <p><strong>{% trans %}Make sure to copy these parameters now. You won’t be able to see them again!{% endtrans %}</strong></p> | ||
12 | <ul> | ||
13 | <li>{% trans %}Client ID:{% endtrans %} <strong><pre>{{ client_id }}</pre></strong></li> | ||
14 | <li>{% trans %}Client secret:{% endtrans %} <strong><pre>{{ client_secret }}</pre></strong></li> | ||
15 | </ul> | ||
16 | |||
17 | <a href="{{ path('developer') }}" class="waves-effect waves-light grey btn">{% trans %}Back{% endtrans %}</a> | ||
18 | <a href="{{ path('howto-firstapp') }}" class="btn waves-effect waves-light">{% trans %}Read the howto "Create my first application"{% endtrans %}</a> | ||
19 | </div> | ||
20 | </div> | ||
21 | |||
22 | </div> | ||
23 | </div> | ||
24 | </div> | ||
25 | {% endblock %} | ||
diff --git a/src/Wallabag/CoreBundle/Resources/views/themes/baggy/Developer/howto_app.html.twig b/src/Wallabag/CoreBundle/Resources/views/themes/baggy/Developer/howto_app.html.twig new file mode 100644 index 00000000..497bb308 --- /dev/null +++ b/src/Wallabag/CoreBundle/Resources/views/themes/baggy/Developer/howto_app.html.twig | |||
@@ -0,0 +1,62 @@ | |||
1 | {% extends "WallabagCoreBundle::layout.html.twig" %} | ||
2 | |||
3 | {% block title %}{% trans %}How to create my first application{% endtrans %}{% endblock %} | ||
4 | |||
5 | {% block css %} | ||
6 | {{ parent() }} | ||
7 | <link rel="stylesheet" href="{{ asset('bundles/wallabagcore/themes/_global/css/prism.css') }}"> | ||
8 | {% endblock %} | ||
9 | |||
10 | {% block content %} | ||
11 | <div class="row"> | ||
12 | <div class="col s12"> | ||
13 | <div class="card-panel settings"> | ||
14 | |||
15 | <div class="row"> | ||
16 | <p>The following commands make use of the <a href="https://github.com/jkbrzt/httpie">HTTPie library</a>. Make sure it is installed on your system before using it.</p> | ||
17 | <p>You need a token to communicate between your 3rd application and wallabag API.</p> | ||
18 | <p>To create this token, you need <a href="{{ path('create_client') }}">to create a new client</a>.</p> | ||
19 | <p>Now, create your token (replace client_id, client_secret, username and password with the good values):</p> | ||
20 | <p> | ||
21 | <pre><code class="language-bash">http POST http://v2.wallabag.org/oauth/v2/token \ | ||
22 | grant_type=password \ | ||
23 | client_id=12_5um6nz50ceg4088c0840wwc0kgg44g00kk84og044ggkscso0k \ | ||
24 | client_secret=3qd12zpeaxes8cwg8c0404g888co4wo8kc4gcw0occww8cgw4k \ | ||
25 | username=yourUsername \ | ||
26 | password=yourPassw0rd</code></pre> | ||
27 | </p> | ||
28 | <p>The API will return a response like this:</p> | ||
29 | <p> | ||
30 | <pre><code class="language-bash">HTTP/1.1 200 OK | ||
31 | Cache-Control: no-store, private | ||
32 | Connection: close | ||
33 | Content-Type: application/json | ||
34 | Date: Tue, 06 Oct 2015 18:24:03 GMT | ||
35 | Host: localhost:8000 | ||
36 | Pragma: no-cache | ||
37 | X-Debug-Token: be00a1 | ||
38 | X-Debug-Token-Link: /profiler/be00a1 | ||
39 | X-Powered-By: PHP/5.5.9-1ubuntu4.13 | ||
40 | { | ||
41 | "access_token": "ZWFjNjA3ZWMwYWVmYzRkYTBlMmQ3NTllYmVhOGJiZDE0ZTg1NjE4MjczOTVlNzM0ZTRlMWQ0MmRlMmYwNTk5Mw", | ||
42 | "expires_in": 3600, | ||
43 | "refresh_token": "ODBjODU1NWUwNmUzZTBkNDQ5YWVlZTVlMjQ2Y2I0OWM2NTM1ZGM2M2Y3MDhjMTViM2U2MzYxYzRkMDk5ODRlZg", | ||
44 | "scope": null, | ||
45 | "token_type": "bearer" | ||
46 | }</code></pre> | ||
47 | </p> | ||
48 | <p>The access_token is useful to do a call to the API endpoint. For example:</p> | ||
49 | <p> | ||
50 | <pre><code class="language-bash">http GET http://v2.wallabag.org/api/entries.json \ | ||
51 | "Authorization:Bearer ZWFjNjA3ZWMwYWVmYzRkYTBlMmQ3NTllYmVhOGJiZDE0ZTg1NjE4MjczOTVlNzM0ZTRlMWQ0MmRlMmYwNTk5Mw"</code></pre> | ||
52 | </p> | ||
53 | <p>This call will return all the entries for your user.</p> | ||
54 | <p>If you want to see all the API endpoints, you can have a look <a href="{{ path('nelmio_api_doc_index') }}">to our API documentation</a>.</p> | ||
55 | <p><a href="{{ path('developer') }}" class="waves-effect waves-light grey btn">{% trans %}Back{% endtrans %}</a></p> | ||
56 | </div> | ||
57 | |||
58 | </div> | ||
59 | </div> | ||
60 | </div> | ||
61 | <script src="{{ asset('bundles/wallabagcore/themes/_global/js/prism.js') }}"></script> | ||
62 | {% endblock %} | ||
diff --git a/src/Wallabag/CoreBundle/Resources/views/themes/baggy/Developer/index.html.twig b/src/Wallabag/CoreBundle/Resources/views/themes/baggy/Developer/index.html.twig new file mode 100644 index 00000000..b983883f --- /dev/null +++ b/src/Wallabag/CoreBundle/Resources/views/themes/baggy/Developer/index.html.twig | |||
@@ -0,0 +1,32 @@ | |||
1 | {% extends "WallabagCoreBundle::layout.html.twig" %} | ||
2 | |||
3 | {% block title %}{% trans %}Developer{% endtrans %}{% endblock %} | ||
4 | |||
5 | {% block content %} | ||
6 | <div class="row"> | ||
7 | <div class="col s12"> | ||
8 | <div class="card-panel settings"> | ||
9 | |||
10 | <div class="row"> | ||
11 | <h3>{% trans %}Welcome to the wallabag API{% endtrans %}</h3> | ||
12 | |||
13 | <h4>{% trans %}Documentation{% endtrans %}</h4> | ||
14 | |||
15 | <ul> | ||
16 | <li><a href="{{ path('howto-firstapp') }}">{% trans %}How to create my first application{% endtrans %}</a></li> | ||
17 | <li><a href="{{ path('nelmio_api_doc_index') }}">{% trans %}View full API documentation{% endtrans %}</a></li> | ||
18 | </ul> | ||
19 | |||
20 | <h4>{% trans %}Clients{% endtrans %}</h4> | ||
21 | <ul> | ||
22 | <li><a href="{{ path('create_client') }}">{% trans %}Create a new client{% endtrans %}</a></li> | ||
23 | </ul> | ||
24 | |||
25 | </div> | ||
26 | |||
27 | </div> | ||
28 | </div> | ||
29 | </div> | ||
30 | |||
31 | |||
32 | {% endblock %} | ||
diff --git a/src/Wallabag/CoreBundle/Tests/Controller/DeveloperControllerTest.php b/src/Wallabag/CoreBundle/Tests/Controller/DeveloperControllerTest.php new file mode 100644 index 00000000..e5028f47 --- /dev/null +++ b/src/Wallabag/CoreBundle/Tests/Controller/DeveloperControllerTest.php | |||
@@ -0,0 +1,29 @@ | |||
1 | <?php | ||
2 | /** | ||
3 | * Created by PhpStorm. | ||
4 | * User: nicosomb | ||
5 | * Date: 16/02/16 | ||
6 | * Time: 19:39. | ||
7 | */ | ||
8 | namespace Wallabag\CoreBundle\Tests\Controller; | ||
9 | |||
10 | use Wallabag\CoreBundle\Tests\WallabagCoreTestCase; | ||
11 | |||
12 | class DeveloperControllerTest extends WallabagCoreTestCase | ||
13 | { | ||
14 | public function testNewClient() | ||
15 | { | ||
16 | $this->logInAs('admin'); | ||
17 | $client = $this->getClient(); | ||
18 | |||
19 | $crawler = $client->request('GET', '/developer/client/create'); | ||
20 | $this->assertEquals(200, $client->getResponse()->getStatusCode()); | ||
21 | |||
22 | $form = $crawler->filter('button[type=submit]')->form(); | ||
23 | |||
24 | $crawler = $client->submit($form); | ||
25 | |||
26 | $this->assertEquals(200, $client->getResponse()->getStatusCode()); | ||
27 | $this->assertContains('Make sure to copy these parameters now.', $client->getResponse()->getContent()); | ||
28 | } | ||
29 | } | ||