1<?php
2
3namespace plugin\farmer\test;
4
5class admin_plugin_farmer_new extends \admin_plugin_farmer_new
6{
7    public function getAdminLine()
8    {
9        return parent::getAdminLine();
10    }
11
12}
13
14
15/**
16 * Tests for the validation functionality of the farmer plugin
17 *
18 * @group plugin_farmer
19 * @group plugins
20 */
21class getUserLine_plugin_farmer_test extends \DokuWikiTest
22{
23
24    protected $pluginsEnabled = array('farmer',);
25    private $usersfile;
26
27    public function setUp(): void
28    {
29        parent::setUp();
30        $this->usersfile = DOKU_CONF . 'users.auth.php';
31        copy($this->usersfile, $this->usersfile . "org");
32        unlink($this->usersfile);
33    }
34
35    public function tearDown(): void
36    {
37        parent::tearDown();
38        unlink($this->usersfile);
39        copy($this->usersfile . "org", $this->usersfile);
40        unlink($this->usersfile . "org");
41    }
42
43
44    public function test_getUserLine_oneUser()
45    {
46        $helper = new admin_plugin_farmer_new();
47        $usersfileData = "# users.auth.php
48# <?php exit()?>
49# Don't modify the lines above
50#
51# Userfile
52#
53# Format:
54#
55# user:MD5password:Real Name:email:groups,comma,seperated
56#
57# testuser : testpass
58testuser:179ad45c6ce2cb97cf1029e212046e81:Arthur Dent:arthur@example.com:\n";
59        file_put_contents($this->usersfile, $usersfileData);
60
61        $_SERVER['REMOTE_USER'] = 'testuser';
62        $expected_result = 'testuser:179ad45c6ce2cb97cf1029e212046e81:Arthur Dent:arthur@example.com:' . "\n";
63        $actual_result = $helper->getAdminLine();
64
65        $this->assertSame($expected_result, $actual_result);
66    }
67
68    public function test_getUserLine_manyUser()
69    {
70        $helper = new admin_plugin_farmer_new();
71        $usersfileData = "# users.auth.php
72# <?php exit()?>
73# Don't modify the lines above
74#
75# Userfile
76#
77# Format:
78#
79# user:MD5password:Real Name:email:groups,comma,seperated
80#
81# testuser : testpass
821testuser:179ad45c6ce43897cf1029e212046e81:Arthur Dent:brthur@example.com:admin
83testuser:179ad45c6ce2cb97cf1029e212046e81:Arthur Dent:arthur@example.com:
842testuser:179ad45c6ce2cb97cf10214712046e81:Arthur inDent:crthur@example.com:admin\n";
85        file_put_contents($this->usersfile, $usersfileData);
86
87        $_SERVER['REMOTE_USER'] = 'testuser';
88        $expected_result = 'testuser:179ad45c6ce2cb97cf1029e212046e81:Arthur Dent:arthur@example.com:' . "\n";
89        $actual_result = $helper->getAdminLine();
90
91        $this->assertSame($expected_result, $actual_result);
92    }
93}
94