{
	"description": "protection against attacks",
	"setup": [
		{
			"namespace": "SMW_NS_PROPERTY",
			"page": "SomeText",
			"contents": "[[Has type::Text]]"
		},
		{
			"namespace": "NS_CATEGORY",
			"page": "Category1",
			"contents": "{{#drilldowninfo: filters=Text (property=SomeText),Number (property=SomeNumber),Date (property=SomeDate),Page (property=SomePage),Boolean (property=SomeBoolean),Unused (property=Unused)|display parameters=format=list}}"
		},
		{
			"page": "Page1",
			"contents": "[[Category:Category1]]{{#set: SomeText=<script>attack()</script>}}"
		}
	],
	"tests": [
		{
			"type": "special",
			"about": "script as Text property is escaped",
			"special-page": {
				"page": "BrowseData",
				"query-parameters": "Category1",
				"request-parameters": {}
			},
			"assert-output": {
				"to-contain": [
					"&lt;script&gt;attack()&lt;/script&gt;&nbsp;(1)"
				],
				"not-contain": [
					"<script>attack()</script>"
				]
			}
		},
		{
			"type": "special",
			"about": "script as Text property is escaped when used as filter value",
			"special-page": {
				"page": "BrowseData",
				"query-parameters": "Category1",
				"request-parameters": {
					"Text": "<script>attack()</script>"
				}
			},
			"assert-output": {
				"to-contain": [
					"<span class=\"drilldown-header-value\">&lt;script&gt;attack()&lt;/script&gt;</span>",
					"<a href=\"/index.php/Page1\" title=\"Page1\">Page1</a>"
				],
				"not-contain": [
					"<script>attack()</script>"
				]
			}
		}
	],
	"settings": {
		"wgLang": "en"
	},
	"meta": {
		"version": "2",
		"is-incomplete": false,
		"debug": false
	}
}
