Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
die_coolen_jungs
our_own_cloud_project
Commits
bbd2a075
Unverified
Commit
bbd2a075
authored
Apr 27, 2016
by
Thomas Müller
Browse files
Remove emitter from class Repair
parent
cdcd49b4
Changes
3
Hide whitespace changes
Inline
Side-by-side
lib/private/repair.php
View file @
bbd2a075
...
...
@@ -28,7 +28,6 @@
namespace
OC
;
use
OC\Hooks\BasicEmitter
;
use
OC\Hooks\Emitter
;
use
OC\Repair\AssetCache
;
use
OC\Repair\CleanTags
;
...
...
@@ -51,7 +50,7 @@ use OCP\Migration\IRepairStep;
use
Symfony\Component\EventDispatcher\EventDispatcher
;
use
Symfony\Component\EventDispatcher\GenericEvent
;
class
Repair
extends
BasicEmitter
implements
IOutput
{
class
Repair
implements
IOutput
{
/* @var IRepairStep[] */
private
$repairSteps
;
/** @var EventDispatcher */
...
...
@@ -178,10 +177,11 @@ class Repair extends BasicEmitter implements IOutput{
}
/**
* {@inheritDoc}
* @param string $scope
* @param string $method
* @param array $arguments
*/
public
function
emit
(
$scope
,
$method
,
array
$arguments
=
[])
{
parent
::
emit
(
$scope
,
$method
,
$arguments
);
if
(
!
is_null
(
$this
->
dispatcher
))
{
$this
->
dispatcher
->
dispatch
(
"
$scope
::
$method
"
,
new
GenericEvent
(
"
$scope
::
$method
"
,
$arguments
));
...
...
lib/private/updater.php
View file @
bbd2a075
...
...
@@ -132,6 +132,8 @@ class Updater extends BasicEmitter {
* @return bool true if the operation succeeded, false otherwise
*/
public
function
upgrade
()
{
$this
->
emitRepairEvents
();
$logLevel
=
$this
->
config
->
getSystemValue
(
'loglevel'
,
\
OCP\Util
::
WARN
);
$this
->
emit
(
'\OC\Updater'
,
'setDebugLogLevel'
,
[
$logLevel
,
$this
->
logLevelNames
[
$logLevel
]
]);
$this
->
config
->
setSystemValue
(
'loglevel'
,
\
OCP\Util
::
DEBUG
);
...
...
@@ -195,26 +197,6 @@ class Updater extends BasicEmitter {
&&
(
version_compare
(
$oldVersion
,
$newVersion
,
'<='
)
||
$this
->
config
->
getSystemValue
(
'debug'
,
false
)));
}
/**
* Forward messages emitted by the repair routine
*
* @param Repair $repair repair routine
*/
private
function
emitRepairMessages
(
Repair
$repair
)
{
$repair
->
listen
(
'\OC\Repair'
,
'warning'
,
function
(
$description
)
{
$this
->
emit
(
'\OC\Updater'
,
'repairWarning'
,
array
(
$description
));
});
$repair
->
listen
(
'\OC\Repair'
,
'error'
,
function
(
$description
)
{
$this
->
emit
(
'\OC\Updater'
,
'repairError'
,
array
(
$description
));
});
$repair
->
listen
(
'\OC\Repair'
,
'info'
,
function
(
$description
)
{
$this
->
emit
(
'\OC\Updater'
,
'repairInfo'
,
array
(
$description
));
});
$repair
->
listen
(
'\OC\Repair'
,
'step'
,
function
(
$description
)
{
$this
->
emit
(
'\OC\Updater'
,
'repairStep'
,
array
(
$description
));
});
}
/**
* runs the update actions in maintenance mode, does not upgrade the source files
* except the main .htaccess file
...
...
@@ -245,8 +227,7 @@ class Updater extends BasicEmitter {
file_put_contents
(
$this
->
config
->
getSystemValue
(
'datadirectory'
,
\
OC
::
$SERVERROOT
.
'/data'
)
.
'/.ocdata'
,
''
);
// pre-upgrade repairs
$repair
=
new
Repair
(
Repair
::
getBeforeUpgradeRepairSteps
());
$this
->
emitRepairMessages
(
$repair
);
$repair
=
new
Repair
(
Repair
::
getBeforeUpgradeRepairSteps
(),
\
OC
::
$server
->
getEventDispatcher
());
$repair
->
run
();
// simulate DB upgrade
...
...
@@ -278,8 +259,7 @@ class Updater extends BasicEmitter {
}
// post-upgrade repairs
$repair
=
new
Repair
(
Repair
::
getRepairSteps
());
$this
->
emitRepairMessages
(
$repair
);
$repair
=
new
Repair
(
Repair
::
getRepairSteps
(),
\
OC
::
$server
->
getEventDispatcher
());
$repair
->
run
();
//Invalidate update feed
...
...
@@ -362,7 +342,6 @@ class Updater extends BasicEmitter {
* @throws NeedsUpdateException
*/
protected
function
doAppUpgrade
()
{
$this
->
emitRepairEvents
();
$apps
=
\
OC_App
::
getEnabledApps
();
$priorityTypes
=
array
(
'authentication'
,
'filesystem'
,
'logging'
);
$pseudoOtherType
=
'other'
;
...
...
tests/lib/
r
epair.php
→
tests/lib/
R
epair
Test
.php
View file @
bbd2a075
...
...
@@ -6,7 +6,10 @@
* See the COPYING-README file.
*/
namespace
Test
;
use
OCP\Migration\IRepairStep
;
use
Symfony\Component\EventDispatcher\EventDispatcher
;
class
TestRepairStep
implements
IRepairStep
{
private
$warning
;
...
...
@@ -29,91 +32,77 @@ class TestRepairStep implements IRepairStep {
}
}
class
Test_Repair
extends
\
Test\TestCase
{
public
function
testRunRepairStep
()
{
$output
=
array
();
class
RepairTest
extends
TestCase
{
/** @var \OC\Repair */
private
$repair
;
/** @var string[] */
private
$outputArray
;
$repair
=
new
\
OC\Repair
();
$repair
->
addStep
(
new
TestRepairStep
(
false
));
public
function
setUp
()
{
parent
::
setUp
();
$dispatcher
=
new
EventDispatcher
();
$this
->
repair
=
new
\
OC\Repair
([],
$dispatcher
);
$repair
->
listen
(
'\OC\Repair'
,
'warning'
,
function
(
$description
)
use
(
&
$output
)
{
$output
[]
=
'warning: '
.
$description
;
$dispatcher
->
addListener
(
'\OC\Repair::warning'
,
function
(
$event
)
{
/** @var \Symfony\Component\EventDispatcher\GenericEvent $event */
$this
->
outputArray
[]
=
'warning: '
.
$event
->
getArgument
(
0
);
});
$repair
->
listen
(
'\OC\Repair'
,
'info'
,
function
(
$description
)
use
(
&
$output
)
{
$output
[]
=
'info: '
.
$description
;
$dispatcher
->
addListener
(
'\OC\Repair::info'
,
function
(
$event
)
{
/** @var \Symfony\Component\EventDispatcher\GenericEvent $event */
$this
->
outputArray
[]
=
'info: '
.
$event
->
getArgument
(
0
);
});
$repair
->
listen
(
'\OC\Repair'
,
'step'
,
function
(
$description
)
use
(
&
$output
)
{
$output
[]
=
'step: '
.
$description
;
$dispatcher
->
addListener
(
'\OC\Repair::step'
,
function
(
$event
)
{
/** @var \Symfony\Component\EventDispatcher\GenericEvent $event */
$this
->
outputArray
[]
=
'step: '
.
$event
->
getArgument
(
0
);
});
}
public
function
testRunRepairStep
()
{
$repair
->
run
();
$this
->
repair
->
addStep
(
new
TestRepairStep
(
false
));
$this
->
repair
->
run
();
$this
->
assertEquals
(
array
(
'step: Test Name'
,
'info: Simulated info'
,
),
$output
$
this
->
output
Array
);
}
public
function
testRunRepairStepThatFail
()
{
$output
=
array
();
$repair
=
new
\
OC\Repair
();
$repair
->
addStep
(
new
TestRepairStep
(
true
));
$repair
->
listen
(
'\OC\Repair'
,
'warning'
,
function
(
$description
)
use
(
&
$output
)
{
$output
[]
=
'warning: '
.
$description
;
});
$repair
->
listen
(
'\OC\Repair'
,
'info'
,
function
(
$description
)
use
(
&
$output
)
{
$output
[]
=
'info: '
.
$description
;
});
$repair
->
listen
(
'\OC\Repair'
,
'step'
,
function
(
$description
)
use
(
&
$output
)
{
$output
[]
=
'step: '
.
$description
;
});
$repair
->
run
();
$this
->
repair
->
addStep
(
new
TestRepairStep
(
true
));
$this
->
repair
->
run
();
$this
->
assertEquals
(
array
(
'step: Test Name'
,
'warning: Simulated warning'
,
),
$output
$
this
->
output
Array
);
}
public
function
testRunRepairStepsWithException
()
{
$output
=
array
();
$mock
=
$this
->
getMock
(
'TestRepairStep'
);
$mock
=
$this
->
getMock
(
'\Test\TestRepairStep'
);
$mock
->
expects
(
$this
->
any
())
->
method
(
'run'
)
->
will
(
$this
->
throwException
(
new
Exception
));
->
will
(
$this
->
throwException
(
new
\
Exception
()
));
$mock
->
expects
(
$this
->
any
())
->
method
(
'getName'
)
->
will
(
$this
->
returnValue
(
'Exception Test'
));
$repair
=
new
\
OC\Repair
();
$repair
->
addStep
(
$mock
);
$repair
->
addStep
(
new
TestRepairStep
(
false
));
$repair
->
listen
(
'\OC\Repair'
,
'warning'
,
function
(
$description
)
use
(
&
$output
)
{
$output
[]
=
'warning: '
.
$description
;
});
$repair
->
listen
(
'\OC\Repair'
,
'info'
,
function
(
$description
)
use
(
&
$output
)
{
$output
[]
=
'info: '
.
$description
;
});
$repair
->
listen
(
'\OC\Repair'
,
'step'
,
function
(
$description
)
use
(
&
$output
)
{
$output
[]
=
'step: '
.
$description
;
});
$this
->
repair
->
addStep
(
$mock
);
$this
->
repair
->
addStep
(
new
TestRepairStep
(
false
));
$thrown
=
false
;
try
{
$repair
->
run
();
$
this
->
repair
->
run
();
}
catch
(
Exception
$e
)
{
catch
(
\
Exception
$e
)
{
$thrown
=
true
;
}
...
...
@@ -123,28 +112,14 @@ class Test_Repair extends \Test\TestCase {
array
(
'step: Exception Test'
,
),
$output
$
this
->
output
Array
);
}
public
function
testRunRepairStepsContinueAfterWarning
()
{
$output
=
array
();
$repair
=
new
\
OC\Repair
();
$repair
->
addStep
(
new
TestRepairStep
(
true
));
$repair
->
addStep
(
new
TestRepairStep
(
false
));
$repair
->
listen
(
'\OC\Repair'
,
'warning'
,
function
(
$description
)
use
(
&
$output
)
{
$output
[]
=
'warning: '
.
$description
;
});
$repair
->
listen
(
'\OC\Repair'
,
'info'
,
function
(
$description
)
use
(
&
$output
)
{
$output
[]
=
'info: '
.
$description
;
});
$repair
->
listen
(
'\OC\Repair'
,
'step'
,
function
(
$description
)
use
(
&
$output
)
{
$output
[]
=
'step: '
.
$description
;
});
$repair
->
run
();
$this
->
repair
->
addStep
(
new
TestRepairStep
(
true
));
$this
->
repair
->
addStep
(
new
TestRepairStep
(
false
));
$this
->
repair
->
run
();
$this
->
assertEquals
(
array
(
...
...
@@ -153,7 +128,7 @@ class Test_Repair extends \Test\TestCase {
'step: Test Name'
,
'info: Simulated info'
,
),
$output
$
this
->
output
Array
);
}
}
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment