mirror of
https://github.com/wallabag/wallabag.git
synced 2024-11-23 17:41:01 +00:00
add tests
This commit is contained in:
parent
abc329453b
commit
8a4690b6a5
5 changed files with 179 additions and 0 deletions
|
@ -0,0 +1,31 @@
|
||||||
|
{% extends "WallabagCoreBundle::layout.html.twig" %}
|
||||||
|
|
||||||
|
{% block title %}{% trans %}New client{% endtrans %}{% endblock %}
|
||||||
|
|
||||||
|
{% block content %}
|
||||||
|
<div class="row">
|
||||||
|
<div class="col s12">
|
||||||
|
<div class="card-panel settings">
|
||||||
|
|
||||||
|
<div class="row">
|
||||||
|
<p>{% trans %}You will create a new client. Please fill the field below for the redirect URI of your application:{% endtrans %}</p>
|
||||||
|
{{ form_start(form) }}
|
||||||
|
{{ form_errors(form) }}
|
||||||
|
<div class="input-field col s12">
|
||||||
|
{{ form_label(form.redirect_uris) }}
|
||||||
|
{{ form_errors(form.redirect_uris) }}
|
||||||
|
{{ form_widget(form.redirect_uris) }}
|
||||||
|
</div>
|
||||||
|
<div class="hidden">{{ form_rest(form) }}</div>
|
||||||
|
|
||||||
|
<a href="{{ path('developer') }}" class="waves-effect waves-light grey btn">{% trans %}Back{% endtrans %}</a>
|
||||||
|
<button class="btn waves-effect waves-light" type="submit" name="action">
|
||||||
|
{% trans %}Create new client{% endtrans %}
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
{% endblock %}
|
|
@ -0,0 +1,25 @@
|
||||||
|
{% extends "WallabagCoreBundle::layout.html.twig" %}
|
||||||
|
|
||||||
|
{% block title %}{% trans %}Client parameters{% endtrans %}{% endblock %}
|
||||||
|
|
||||||
|
{% block content %}
|
||||||
|
<div class="row">
|
||||||
|
<div class="col s12">
|
||||||
|
<div class="card-panel settings">
|
||||||
|
<div class="row">
|
||||||
|
<p>{% trans %}Here are your client parameters.{% endtrans %}</p>
|
||||||
|
<p><strong>{% trans %}Make sure to copy these parameters now. You won’t be able to see them again!{% endtrans %}</strong></p>
|
||||||
|
<ul>
|
||||||
|
<li>{% trans %}Client ID:{% endtrans %} <strong><pre>{{ client_id }}</pre></strong></li>
|
||||||
|
<li>{% trans %}Client secret:{% endtrans %} <strong><pre>{{ client_secret }}</pre></strong></li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
<a href="{{ path('developer') }}" class="waves-effect waves-light grey btn">{% trans %}Back{% endtrans %}</a>
|
||||||
|
<a href="{{ path('howto-firstapp') }}" class="btn waves-effect waves-light">{% trans %}Read the howto "Create my first application"{% endtrans %}</a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
{% endblock %}
|
|
@ -0,0 +1,62 @@
|
||||||
|
{% extends "WallabagCoreBundle::layout.html.twig" %}
|
||||||
|
|
||||||
|
{% block title %}{% trans %}How to create my first application{% endtrans %}{% endblock %}
|
||||||
|
|
||||||
|
{% block css %}
|
||||||
|
{{ parent() }}
|
||||||
|
<link rel="stylesheet" href="{{ asset('bundles/wallabagcore/themes/_global/css/prism.css') }}">
|
||||||
|
{% endblock %}
|
||||||
|
|
||||||
|
{% block content %}
|
||||||
|
<div class="row">
|
||||||
|
<div class="col s12">
|
||||||
|
<div class="card-panel settings">
|
||||||
|
|
||||||
|
<div class="row">
|
||||||
|
<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>
|
||||||
|
<p>You need a token to communicate between your 3rd application and wallabag API.</p>
|
||||||
|
<p>To create this token, you need <a href="{{ path('create_client') }}">to create a new client</a>.</p>
|
||||||
|
<p>Now, create your token (replace client_id, client_secret, username and password with the good values):</p>
|
||||||
|
<p>
|
||||||
|
<pre><code class="language-bash">http POST http://v2.wallabag.org/oauth/v2/token \
|
||||||
|
grant_type=password \
|
||||||
|
client_id=12_5um6nz50ceg4088c0840wwc0kgg44g00kk84og044ggkscso0k \
|
||||||
|
client_secret=3qd12zpeaxes8cwg8c0404g888co4wo8kc4gcw0occww8cgw4k \
|
||||||
|
username=yourUsername \
|
||||||
|
password=yourPassw0rd</code></pre>
|
||||||
|
</p>
|
||||||
|
<p>The API will return a response like this:</p>
|
||||||
|
<p>
|
||||||
|
<pre><code class="language-bash">HTTP/1.1 200 OK
|
||||||
|
Cache-Control: no-store, private
|
||||||
|
Connection: close
|
||||||
|
Content-Type: application/json
|
||||||
|
Date: Tue, 06 Oct 2015 18:24:03 GMT
|
||||||
|
Host: localhost:8000
|
||||||
|
Pragma: no-cache
|
||||||
|
X-Debug-Token: be00a1
|
||||||
|
X-Debug-Token-Link: /profiler/be00a1
|
||||||
|
X-Powered-By: PHP/5.5.9-1ubuntu4.13
|
||||||
|
{
|
||||||
|
"access_token": "ZWFjNjA3ZWMwYWVmYzRkYTBlMmQ3NTllYmVhOGJiZDE0ZTg1NjE4MjczOTVlNzM0ZTRlMWQ0MmRlMmYwNTk5Mw",
|
||||||
|
"expires_in": 3600,
|
||||||
|
"refresh_token": "ODBjODU1NWUwNmUzZTBkNDQ5YWVlZTVlMjQ2Y2I0OWM2NTM1ZGM2M2Y3MDhjMTViM2U2MzYxYzRkMDk5ODRlZg",
|
||||||
|
"scope": null,
|
||||||
|
"token_type": "bearer"
|
||||||
|
}</code></pre>
|
||||||
|
</p>
|
||||||
|
<p>The access_token is useful to do a call to the API endpoint. For example:</p>
|
||||||
|
<p>
|
||||||
|
<pre><code class="language-bash">http GET http://v2.wallabag.org/api/entries.json \
|
||||||
|
"Authorization:Bearer ZWFjNjA3ZWMwYWVmYzRkYTBlMmQ3NTllYmVhOGJiZDE0ZTg1NjE4MjczOTVlNzM0ZTRlMWQ0MmRlMmYwNTk5Mw"</code></pre>
|
||||||
|
</p>
|
||||||
|
<p>This call will return all the entries for your user.</p>
|
||||||
|
<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>
|
||||||
|
<p><a href="{{ path('developer') }}" class="waves-effect waves-light grey btn">{% trans %}Back{% endtrans %}</a></p>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<script src="{{ asset('bundles/wallabagcore/themes/_global/js/prism.js') }}"></script>
|
||||||
|
{% endblock %}
|
|
@ -0,0 +1,32 @@
|
||||||
|
{% extends "WallabagCoreBundle::layout.html.twig" %}
|
||||||
|
|
||||||
|
{% block title %}{% trans %}Developer{% endtrans %}{% endblock %}
|
||||||
|
|
||||||
|
{% block content %}
|
||||||
|
<div class="row">
|
||||||
|
<div class="col s12">
|
||||||
|
<div class="card-panel settings">
|
||||||
|
|
||||||
|
<div class="row">
|
||||||
|
<h3>{% trans %}Welcome to the wallabag API{% endtrans %}</h3>
|
||||||
|
|
||||||
|
<h4>{% trans %}Documentation{% endtrans %}</h4>
|
||||||
|
|
||||||
|
<ul>
|
||||||
|
<li><a href="{{ path('howto-firstapp') }}">{% trans %}How to create my first application{% endtrans %}</a></li>
|
||||||
|
<li><a href="{{ path('nelmio_api_doc_index') }}">{% trans %}View full API documentation{% endtrans %}</a></li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
<h4>{% trans %}Clients{% endtrans %}</h4>
|
||||||
|
<ul>
|
||||||
|
<li><a href="{{ path('create_client') }}">{% trans %}Create a new client{% endtrans %}</a></li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
{% endblock %}
|
|
@ -0,0 +1,29 @@
|
||||||
|
<?php
|
||||||
|
/**
|
||||||
|
* Created by PhpStorm.
|
||||||
|
* User: nicosomb
|
||||||
|
* Date: 16/02/16
|
||||||
|
* Time: 19:39.
|
||||||
|
*/
|
||||||
|
namespace Wallabag\CoreBundle\Tests\Controller;
|
||||||
|
|
||||||
|
use Wallabag\CoreBundle\Tests\WallabagCoreTestCase;
|
||||||
|
|
||||||
|
class DeveloperControllerTest extends WallabagCoreTestCase
|
||||||
|
{
|
||||||
|
public function testNewClient()
|
||||||
|
{
|
||||||
|
$this->logInAs('admin');
|
||||||
|
$client = $this->getClient();
|
||||||
|
|
||||||
|
$crawler = $client->request('GET', '/developer/client/create');
|
||||||
|
$this->assertEquals(200, $client->getResponse()->getStatusCode());
|
||||||
|
|
||||||
|
$form = $crawler->filter('button[type=submit]')->form();
|
||||||
|
|
||||||
|
$crawler = $client->submit($form);
|
||||||
|
|
||||||
|
$this->assertEquals(200, $client->getResponse()->getStatusCode());
|
||||||
|
$this->assertContains('Make sure to copy these parameters now.', $client->getResponse()->getContent());
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in a new issue