<?php
-/** tests for includes/Html.php */
class HtmlTest extends MediaWikiTestCase {
/**
* @covers Html::element
+ * @covers Html::rawElement
+ * @covers Html::openElement
+ * @covers Html::closeElement
*/
public function testElementBasics() {
$this->assertEquals(
/**
* @covers Html::namespaceSelector
+ * @covers Html::namespaceSelectorOptions
*/
public function testNamespaceSelector() {
$this->assertEquals(
);
}
+ /**
+ * @covers Html::namespaceSelector
+ */
public function testCanFilterOutNamespaces() {
$this->assertEquals(
'<select id="namespace" name="namespace">' . "\n" .
);
}
+ /**
+ * @covers Html::namespaceSelector
+ */
public function testCanDisableANamespaces() {
$this->assertEquals(
'<select id="namespace" name="namespace">' . "\n" .
);
}
+ /**
+ * @covers Html::warningBox
+ * @covers Html::messageBox
+ */
+ public function testWarningBox() {
+ $this->assertEquals(
+ Html::warningBox( 'warn' ),
+ '<div class="warningbox">warn</div>'
+ );
+ }
+
+ /**
+ * @covers Html::errorBox
+ * @covers Html::messageBox
+ */
+ public function testErrorBox() {
+ $this->assertEquals(
+ Html::errorBox( 'err' ),
+ '<div class="errorbox">err</div>'
+ );
+ $this->assertEquals(
+ Html::errorBox( 'err', 'heading' ),
+ '<div class="errorbox"><h2>heading</h2>err</div>'
+ );
+ }
+
+ /**
+ * @covers Html::successBox
+ * @covers Html::messageBox
+ */
+ public function testSuccessBox() {
+ $this->assertEquals(
+ Html::successBox( 'great' ),
+ '<div class="successbox">great</div>'
+ );
+ $this->assertEquals(
+ Html::successBox( '<script>beware no escaping!</script>' ),
+ '<div class="successbox"><script>beware no escaping!</script></div>'
+ );
+ }
+
/**
* List of input element types values introduced by HTML5
* Full list at https://www.w3.org/TR/html-markup/input.html
];
# <button> specific handling
- # see remarks on http://msdn.microsoft.com/en-us/library/ie/ms535211%28v=vs.85%29.aspx
+ # see remarks on https://msdn.microsoft.com/library/ms535211(v=vs.85).aspx
$cases[] = [ '<button type="submit"></button>',
'button', [ 'type' => 'submit' ],
'According to standard the default type is "submit". '
}
/**
- * @covers Html::expandAttributes
+ * @covers Html::input
*/
- public function testFormValidationBlacklist() {
- $this->assertEmpty(
- Html::expandAttributes( [
- 'min' => 1,
- 'max' => 100,
- 'pattern' => 'abc',
- 'required' => true,
- 'step' => 2
- ] ),
- 'Blacklist form validation attributes.'
- );
- $this->assertEquals(
- ' step="any"',
- Html::expandAttributes(
- [
- 'min' => 1,
- 'max' => 100,
- 'pattern' => 'abc',
- 'required' => true,
- 'step' => 'any'
- ],
- 'Allow special case "step=any".'
- )
- );
- }
-
public function testWrapperInput() {
$this->assertEquals(
'<input type="radio" value="testval" name="testname"/>',
);
}
+ /**
+ * @covers Html::check
+ */
public function testWrapperCheck() {
$this->assertEquals(
'<input type="checkbox" value="1" name="testname"/>',
);
}
+ /**
+ * @covers Html::radio
+ */
public function testWrapperRadio() {
$this->assertEquals(
'<input type="radio" value="1" name="testname"/>',
);
}
+ /**
+ * @covers Html::label
+ */
public function testWrapperLabel() {
$this->assertEquals(
'<label for="testid">testlabel</label>',