Support plugin source on registration
Change-Id: I0ddc6ff0c0499db3a16114d0c0604fb9615d7127
diff --git a/t/plugin/auth-oauth.t b/t/plugin/auth-oauth.t
index e12c394..478c164 100644
--- a/t/plugin/auth-oauth.t
+++ b/t/plugin/auth-oauth.t
@@ -478,6 +478,12 @@
$t->get_ok('/settings/oauth')
->text_is('form.form-table legend', 'Register new client application')
->attr_is('form.oauth-register','action', '/settings/oauth/register')
+ ->text_is('label[for=name]','Name of the client application')
+ ->text_is('label[for=type]','Type of the client application')
+ ->text_is('label[for=desc]','Short description')
+ ->text_is('label[for=url]','Homepage')
+ ->text_is('label[for=redirect_uri]','Redirect URI')
+ ->text_is('label[for=src]','Declaration of the plugin (*.json file)')
->element_exists('ul.client-list')
->element_exists_not('ul.client-list > li')
->header_is('Cache-Control','max-age=0, no-cache, no-store, must-revalidate')
@@ -499,7 +505,11 @@
name => 'MyApp',
type => 'CONFIDENTIAL',
desc => 'This is my application',
- csrf_token => $csrf
+ csrf_token => $csrf,
+ src => {
+ filename => '',
+ content => ''
+ }
})
->status_is(200)
->element_exists('div.notify-success')
@@ -877,6 +887,52 @@
->header_is('location', 'http://example.com/?error_description=FAIL')
;
+my $json_post = {
+ name => 'Funny',
+ type => 'PUBLIC',
+ desc => 'This is my application',
+ csrf_token => $csrf,
+ src => 'hMMM'
+};
+
+$t->post_ok('/settings/oauth/register' => form => $json_post)
+ ->status_is(200)
+ ->element_exists('div.notify-error')
+ ->text_is('div.notify-error', 'Plugins need to be confidential')
+ ;
+
+$json_post->{type} = 'CONFIDENTIAL';
+
+$t->post_ok('/settings/oauth/register' => form => $json_post)
+ ->status_is(200)
+ ->element_exists('div.notify-error')
+ ->text_is('div.notify-error', 'Plugin declarations need to be json files')
+ ;
+
+$json_post->{src} = {
+ content => 'jjjjjj',
+ filename => 'fun.txt'
+};
+
+$t->post_ok('/settings/oauth/register' => form => $json_post)
+ ->status_is(200)
+ ->element_exists('div.notify-error')
+ ->text_is('div.notify-error', 'Plugin declarations need to be json files')
+ ;
+
+$json_post->{src} = {
+ content => '{"name":"example"}',
+ filename => 'fun.txt'
+};
+
+$t->post_ok('/settings/oauth/register' => form => $json_post)
+ ->status_is(200)
+ ->element_exists_not('div.notify-error')
+ ->element_exists('div.notify-success')
+ ->text_is('div.notify-success', 'Registration successful')
+ ;
+
+
done_testing;
__END__