<?php

namespace SilverStripe\Forms\Tests;

use SilverStripe\Core\Config\Config;
use SilverStripe\Dev\SapphireTest;
use SilverStripe\Forms\PasswordField;

class PasswordFieldTest extends SapphireTest
{
    public function boolDataProvider()
    {
        return [
            [false],
            [true]
        ];
    }

    /**
     * @dataProvider boolDataProvider
     * @param bool $bool
     */
    public function testAutocomplete($bool)
    {
        Config::modify()->set(PasswordField::class, 'autocomplete', $bool);
        $field = new PasswordField('test');
        $attrs = $field->getAttributes();

        $this->assertArrayHasKey('autocomplete', $attrs);
        $this->assertEquals($bool ? 'on' : 'off', $attrs['autocomplete']);
    }

    /**
     * @dataProvider boolDataProvider
     * @param bool $bool
     */
    public function testValuePostback($bool)
    {
        $field = (new PasswordField('test', 'test', 'password'))
            ->setAllowValuePostback($bool);
        $attrs = $field->getAttributes();

        $this->assertArrayHasKey('value', $attrs);
        $this->assertEquals($bool ? 'password' : '', $attrs['value']);
    }
}