public function testGetToolAll() { list($register, $configs, $container, $storage, $medias, $tags) = $this->getMocks(); $instance = new EditorHandler($register, $configs, $container, $storage, $medias, $tags); $register->shouldReceive('get')->once()->with('editortool')->andReturn(['editortool/foo@bar' => 'class1', 'editortool/baz@qux' => 'class2']); $all = $instance->getToolAll(); $this->assertEquals(['editortool/foo@bar' => 'class1', 'editortool/baz@qux' => 'class2'], $all); }
public function getDetailSetting(EditorHandler $handler, ConfigManager $configs, $instanceId) { $config = $configs->getOrNew($handler->getConfigKey($instanceId)); $tools = $handler->getToolAll(); $toolIds = $config->get('tools', []); $activated = array_intersect_key($tools, array_flip($toolIds)); $activated = array_merge(array_flip($toolIds), $activated); $deactivated = array_diff_key($tools, array_flip($toolIds)); $items = []; foreach ($activated as $key => $item) { $items[$key] = ['class' => $item, 'activated' => true]; } foreach ($deactivated as $key => $item) { $items[$key] = ['class' => $item, 'activated' => false]; } return XePresenter::make('editor.detail', ['instanceId' => $instanceId, 'config' => $config, 'permArgs' => $this->getPermArguments($handler->getPermKey($instanceId), ['html', 'tool', 'upload', 'download']), 'items' => $items]); }