8000 Merge branch '3.2' · symfony/symfony@7f6f402 · GitHub
[go: up one dir, main page]

Skip to content

Commit 7f6f402

Browse files
committed
Merge branch '3.2'
* 3.2: [Workflow] Delete dead code Rename StackOverflow to Stack Overflow [travis] Test with hhvm 3.18 [Workflow] Fixed marking state on leave and enter events
2 parents fe995a3 + 575b798 commit 7f6f402

File tree

6 files changed

+53
-43
lines changed

6 files changed

+53
-43
lines changed

.travis.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ env:
2020
matrix:
2121
include:
2222
# Use the newer stack for HHVM as HHVM does not support Precise anymore since a long time and so Precise has an outdated version
23-
- php: hhvm-3.15
23+
- php: hhvm-3.18
2424
sudo: required
2525
dist: trusty
2626
group: edge

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ Community
2828
---------
2929

3030
* [Join the Symfony Community][11] and meet other members at the [Symfony events][12].
31-
* [Get Symfony support][13] on StackOverflow, Slack, IRC, etc.
31+
* [Get Symfony support][13] on Stack Overflow, Slack, IRC, etc.
3232
* Follow us on [GitHub][14], [Twitter][15] and [Facebook][16].
3333

3434
Contributing

src/Symfony/Bundle/SecurityBundle/Tests/Functional/WebTestCase.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ public static function assertRedirect($response, $location)
2525

2626
protected static function deleteTmpDir($testCase)
2727
{
28-
if (!file_exists($dir = sys_get_temp_dir().'/'.Kernel::VERSION.'/'.$testCase)) {
28+
if (defined('HHVM_VERSION_ID') || !file_exists($dir = sys_get_temp_dir().'/'.Kernel::VERSION.'/'.$testCase)) {
2929
return;
3030
}
3131

src/Symfony/Component/Workflow/Event/TransitionEvent.php

Lines changed: 0 additions & 30 deletions
This file was deleted.

src/Symfony/Component/Workflow/Tests/WorkflowTest.php

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
use PHPUnit\Framework\TestCase;
66
use Symfony\Component\EventDispatcher\EventDispatcher;
77
use Symfony\Component\Workflow\Definition;
8+
use Symfony\Component\Workflow\Event\Event;
89
use Symfony\Component\Workflow\Event\GuardEvent;
910
use Symfony\Component\Workflow\Marking;
1011
use Symfony\Component\Workflow\MarkingStore\MarkingStoreInterface;
@@ -256,6 +257,41 @@ public function testApplyWithEventDispatcher()
256257
$this->assertSame($eventNameExpected, $eventDispatcher->dispatchedEvents);
257258
}
258259

260+
public function testMarkingStateOnApplyWithEventDispatcher()
261+
{
262+
$definition = new Definition(range('a', 'f'), array(new Transition('t', range('a', 'c'), range('d', 'f'))));
263+
264+
$subject = new \stdClass();
265+
$subject->marking = array('a' => 1, 'b' => 1, 'c' => 1);
266+
267+
$dispatcher = new EventDispatcher();
268+
269+
$workflow = new Workflow($definition, new MultipleStateMarkingStore(), $dispatcher, 'test');
270+
271+
$assertInitialState = function (Event $event) {
272+
$this->assertEquals(new Marking(array('a' => 1, 'b' => 1, 'c' => 1)), $event->getMarking());
273+
};
274+
$assertTransitionState = function (Event $event) {
275+
$this->assertEquals(new Marking(array()), $event->getMarking());
276+
};
277+
278+
$dispatcher->addListener('workflow.leave', $assertInitialState);
279+
$dispatcher->addListener('workflow.test.leave', $assertInitialState);
280+
$dispatcher->addListener('workflow.test.leave.a', $assertInitialState);
281+
$dispatcher->addListener('workflow.test.leave.b', $assertInitialState);
282+
$dispatcher->addListener('workflow.test.leave.c', $assertInitialState);
283+
$dispatcher->addListener('workflow.transition', $assertTransitionState);
284+
$dispatcher->addListener('workflow.test.transition', $assertTransitionState);
285+
$dispatcher->addListener('workflow.test.transition.t', $assertTransitionState);
286+
$dispatcher->addListener('workflow.enter', $assertTransitionState);
287+
$dispatcher->addListener('workflow.test.enter', $assertTransitionState);
288+
$dispatcher->addListener('workflow.test.enter.d', $assertTransitionState);
289+
$dispatcher->addListener('workflow.test.enter.e', $assertTransitionState);
290+
$dispatcher->addListener('workflow.test.enter.f', $assertTransitionState);
291+
292+
$workflow->apply($subject, 't');
293+
}
294+
259295
public function testGetEnabledTransitions()
260296
{
261297
$definition = $this->createComplexWorkflowDefinition();

src/Symfony/Component/Workflow/Workflow.php

Lines changed: 14 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -225,20 +225,22 @@ private function guardTransition($subject, Marking $marking, Transition $transit
225225

226226
private function leave($subject, Transition $transition, Marking $marking)
227227
{
228+
$places = $transition->getFroms();
229+
228230
if (null !== $this->dispatcher) {
229231
$event = new Event($subject, $marking, $transition, $this->name);
230232

231233
$this->dispatcher->dispatch('workflow.leave', $event);
232234
$this->dispatcher->dispatch(sprintf('workflow.%s.leave', $this->name), $event);
233-
}
234-
235-
foreach ($transition->getFroms() as $place) {
236-
$marking->unmark($place);
237235

238-
if (null !== $this->dispatcher) {
236+
foreach ($places as $place) {
239237
$this->dispatcher->dispatch(sprintf('workflow.%s.leave.%s', $this->name, $place), $event);
240238
}
241239
}
240+
241+
foreach ($places as $place) {
242+
$marking->unmark($place);
243+
}
242244
}
243245

244246
private function transition($subject, Transition $transition, Marking $marking)
@@ -256,20 +258,22 @@ private function transition($subject, Transition $transition, Marking $marking)
256258

257259
private function enter($subject, Transition $transition, Marking $marking)
258260
{
261+
$places = $transition->getTos();
262+
259263
if (null !== $this->dispatcher) {
260264
$event = new Event($subject, $marking, $transition, $this->name);
261265

262266
$this->dispatcher->dispatch('workflow.enter', $event);
263267
$this->dispatcher->dispatch(sprintf('workflow.%s.enter', $this->name), $event);
264-
}
265-
266-
foreach ($transition->getTos() as $place) {
267-
$marking->mark($place);
268268

269-
if (null !== $this->dispatcher) {
269+
foreach ($places as $place) {
270270
$this->dispatcher->dispatch(sprintf('workflow.%s.enter.%s', $this->name, $place), $event);
271271
}
272272
}
273+
274+
foreach ($places as $place) {
275+
$marking->mark($place);
276+
}
273277
}
274278

275279
private function entered($subject, Transition $transition, Marking $marking)

0 commit comments

Comments
 (0)
0