Merge branch '3.8'

Conflicts:
	composer.lock
This commit is contained in:
Romain Neutron
2013-10-04 15:15:04 +02:00
7 changed files with 62 additions and 12 deletions

View File

@@ -1,13 +1,15 @@
language: php
env:
- SETUP_MODE=update
- SETUP_MODE=install
services:
- mysql
- redis
before_script:
- rm -f config/services.yml config/connexions.yml config/config.yml config/config.inc config/connexion.inc config/_GV.php config/_GV.php.old
- cp -f hudson/connexion.inc config/
- cp -f hudson/_GV.php config/
- node --version
- npm --version
- npm install
@@ -27,7 +29,6 @@ before_script:
- mysql -e 'create database ab_test;create database db_test; create database ab_unitTests; create database db_unitTests;'
- sudo mysql -e "GRANT ALL PRIVILEGES ON ab_unitTests.* TO 'phraseaUnitTests'@'localhost' IDENTIFIED BY 'iWvGxPE8' WITH GRANT OPTION"
- sudo mysql -e "GRANT ALL PRIVILEGES ON db_unitTests.* TO 'phraseaUnitTests'@'localhost' IDENTIFIED BY 'iWvGxPE8' WITH GRANT OPTION"
- mysql -e "source `pwd`/hudson/fixtures.sql"
- mysql -e 'SET @@global.sql_mode= "";'
- mysql -e 'SET @@global.wait_timeout= 999999;'
- git clone git://github.com/alchemy-fr/Phraseanet-Extension.git
@@ -56,7 +57,15 @@ php:
script:
- bin/developer dependencies:all --prefer-source
- bin/setup system:upgrade -y -v -f
- sh -c " if [ '$SETUP_MODE' = 'update' ]; then
cp hudson/connexion.inc config/;
cp hudson/_GV.php config/;
mysql -e 'source `pwd`/hudson/fixtures.sql';
bin/setup system:upgrade -y -v -f;
fi"
- sh -c " if [ '$SETUP_MODE' = 'install' ]; then
bin/setup system:install --email=test@phraseanet.com --password=test --db-user=root --db-template=fr --db-password= --databox=db_test --appbox=ab_test --server-name=http://127.0.0.1 -y;
fi"
- php hudson/cleanupSubdefs.php
- grunt test
- bin/phpunit

View File

@@ -90,9 +90,9 @@ class Oauth2 implements ControllerProviderInterface
}
$app['authentication']->openAccount(\User_Adapter::getInstance($usr_id, $app));
} else {
return new Response($app['twig']->render($template, array("auth" => $oauth2_adapter)));
}
return new Response($app['twig']->render($template, array("auth" => $oauth2_adapter)));
}
//check if current client is already authorized by current user
@@ -128,9 +128,13 @@ class Oauth2 implements ControllerProviderInterface
$params = $oauth2_adapter->finishNativeClientAuthorization($app_authorized, $params);
return new Response($app['twig']->render("api/auth/native_app_access_token.html.twig", $params));
} else {
$oauth2_adapter->finishClientAuthorization($app_authorized, $params);
}
$oauth2_adapter->finishClientAuthorization($app_authorized, $params);
// As OAuth2 library already outputs response content, we need to send an empty
// response to avoid breaking silex controller
return '';
};
$controllers->match('/authorize', $authorize_func)
@@ -150,7 +154,9 @@ class Oauth2 implements ControllerProviderInterface
ob_flush();
flush();
return;
// As OAuth2 library already outputs response content, we need to send an empty
// response to avoid breaking silex controller
return '';
});
return $controllers;

View File

@@ -258,7 +258,7 @@ class API_OAuth2_Adapter extends OAuth2
protected function setAccessToken($oauth_token, $account_id, $expires, $scope = NULL)
{
$account = new API_OAuth2_Account($this->app, $account_id);
$token = API_OAuth2_Token::create($this->app, $account, $scope);
$token = API_OAuth2_Token::create($this->app['phraseanet.appbox'], $account, $scope);
$token->set_value($oauth_token)->set_expires($expires);
return $this;
@@ -800,7 +800,7 @@ class API_OAuth2_Adapter extends OAuth2
try {
$application = API_OAuth2_Application::load_from_client_id($this->app, $client_id);
$usr_id = $this->app['auth']->isValid($username, $password, Request::createFromGlobals());
$usr_id = $this->app['auth.native']->getUsrId($username, $password, Request::createFromGlobals());
if (!$usr_id) {
return false;

View File

@@ -99,8 +99,13 @@ class AbstractCheckerTest extends \PhraseanetPHPUnitAbstract
{
$othercollection = $collection = null;
$app = new Application('test');
$databoxes = $app['phraseanet.appbox']->get_databoxes();
if (count($databoxes) === 0) {
$this->fail('Unable to find collections');
}
$databox = array_pop($databoxes);
foreach ($app['phraseanet.appbox']->get_databoxes() as $db) {
foreach ($databoxes as $db) {
if (! $collection) {
foreach ($db->get_collections() as $coll) {
$collection = $coll;
@@ -118,6 +123,13 @@ class AbstractCheckerTest extends \PhraseanetPHPUnitAbstract
}
}
if (null === $othercollection) {
$othercollection = \collection::create($app, $databox, $app['phraseanet.appbox'], 'other coll');
}
if (null === $collection) {
$collection = \collection::create($app, $databox, $app['phraseanet.appbox'], 'other coll');
}
return array(
array(array($collection), $collection, true),
array($collection, $collection, true),

View File

@@ -21,6 +21,8 @@ class FilenameTest extends \PhraseanetPHPUnitAbstract
public function setUp()
{
parent::setUp();
// initialize record so that it already exist
$record = self::$DI['record_1'];
$this->object = new Filename(self::$DI['app']);
$this->filename = __DIR__ . '/../../../../../../tmp/test001.jpg';
copy(__DIR__ . '/../../../../../files/test001.jpg', $this->filename);

View File

@@ -16,6 +16,7 @@ use Symfony\Component\HttpFoundation\Response;
class LoginTest extends \PhraseanetWebTestCaseAuthenticatedAbstract
{
public static $demands;
public static $collections;
public static $login;
public static $email;
@@ -26,6 +27,16 @@ class LoginTest extends \PhraseanetWebTestCaseAuthenticatedAbstract
if (null === self::$demands) {
self::$demands = array(self::$DI['collection']->get_coll_id());
}
if (null === self::$collections) {
self::$collections = array(self::$DI['collection']->get_base_id());
$sxml = simplexml_load_string(self::$DI['collection']->get_prefs());
$sxml->caninscript = 1;
$dom = new \DOMDocument();
$dom->loadXML($sxml->asXML());
self::$DI['collection']->set_prefs($dom);
}
if (null === self::$login) {
self::$login = self::$DI['user']->get_login();
}
@@ -417,6 +428,7 @@ class LoginTest extends \PhraseanetWebTestCaseAuthenticatedAbstract
*/
public function testGetRegister($type, $message)
{
self::$DI['app']['registration.enabled'] = true;
self::$DI['app']['authentication']->closeAccount();
self::$DI['app']->addFlash($type, $message);
$crawler = self::$DI['client']->request('GET', '/login/register-classic/');
@@ -429,6 +441,7 @@ class LoginTest extends \PhraseanetWebTestCaseAuthenticatedAbstract
public function testGetRegisterWithRegisterIdBindDataToForm()
{
self::$DI['app']['registration.enabled'] = true;
self::$DI['app']['authentication']->closeAccount();
$provider = $this->getMock('Alchemy\Phrasea\Authentication\Provider\ProviderInterface');
@@ -485,6 +498,7 @@ class LoginTest extends \PhraseanetWebTestCaseAuthenticatedAbstract
*/
public function testPostRegisterbadArguments($parameters, $extraParameters, $errors)
{
self::$DI['app']['registration.enabled'] = true;
self::$DI['app']['registration.fields'] = $extraParameters;
self::$DI['app']['authentication']->closeAccount();

View File

@@ -566,6 +566,10 @@ var p4 = p4 || {};
if (!frame.hasClass('closed'))
{
// hide tabs content
var activeTabIdx = $('#idFrameC .tabs').tabs("option", "active");
$('#idFrameC .tabs > div:eq('+activeTabIdx+')').hide();
frame.data('openwidth', frame.width());
frame.animate({width: 100},
300,
@@ -595,6 +599,9 @@ var p4 = p4 || {};
frame.removeClass('closed');
$('.escamote', frame).show();
frame.unbind('click.escamote');
// show tabs content
var activeTabIdx = $('#idFrameC .tabs').tabs("option", "active");
$('#idFrameC .tabs > div:eq('+activeTabIdx+')').show();
}
}
};