assertSame(admin_section('key1'), '

Hello world

'); // string admin_inject_section('key2', 'test'); $this->assertSame(admin_section('key2'), 'test'); // callable admin_inject_section('key3', function () { return view('admin-tests::test'); }); $this->assertSame(admin_section('key3'), '

Hello world

'); } public function testOptions() { admin_inject_section('key1', 'value1'); admin_inject_section('key1', function ($options) { return "previous:{$options->previous},name:{$options->name},age:{$options->age}"; }, false); $this->assertSame( admin_section('key1', null, ['name' => 'Mike', 'age' => 18]), 'previous:value1,name:Mike,age:18' ); } public function testAppend() { // 1 append admin_inject_section('key1', 'test1,'); admin_inject_section('key1', 'test2,'); admin_inject_section('key1', 'test3,'); $this->assertSame(admin_section('key1'), 'test1,test2,test3,'); // 2 overwrite admin_inject_section('key2', 'test1,'); admin_inject_section('key2', 'test2,', false); $this->assertSame(admin_section('key2'), 'test2,'); admin_inject_section('key2', 'test3,', false); $this->assertSame(admin_section('key2'), 'test3,'); // 3 overwrite admin_inject_section('key3', 'test1,'); admin_inject_section('key3', 'test2,', false); admin_inject_section('key3', function ($options) { return $options->previous.'test3,'; }, false); admin_inject_section('key3', function ($options) { return $options->previous.'test4,'; }, false); $this->assertSame(admin_section('key3'), 'test2,test3,test4,'); } public function testSort() { // 值越大排序越靠前 admin_inject_section('key1', '4,', true, -100); admin_inject_section('key1', '2,', true, 2); admin_inject_section('key1', '1,', true, 3); admin_inject_section('key1', '3,', true, 1); $this->assertSame(admin_section('key1'), '1,2,3,4,'); } public function testInjectDefaultSection() { // step1 admin_inject_default_section('key', 'Hello'); $this->assertSame(admin_section('key'), 'Hello'); // step2 admin_inject_default_section('key', function ($options) { return 'Hello '.$options->var1; }); $this->assertSame(admin_section('key', null, ['var1' => 'world']), 'Hello world'); // step3 admin_inject_section('key', ''); $this->assertSame(admin_section('key'), ''); } }