summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'Echo/tests')
-rw-r--r--Echo/tests/bootstrap.php19
-rw-r--r--Echo/tests/browser/features/flyout.feature17
-rw-r--r--Echo/tests/browser/features/flyout_nojs.feature12
-rw-r--r--Echo/tests/browser/features/messages.feature15
-rw-r--r--Echo/tests/browser/features/notifications.feature40
-rw-r--r--Echo/tests/browser/features/notifications_userrights.feature10
-rw-r--r--Echo/tests/browser/features/step_definitions/common_steps.rb61
-rw-r--r--Echo/tests/browser/features/step_definitions/flyout_steps.rb18
-rw-r--r--Echo/tests/browser/features/step_definitions/messages_steps.rb17
-rw-r--r--Echo/tests/browser/features/step_definitions/notifications_steps.rb91
-rw-r--r--Echo/tests/browser/features/support/env.rb12
-rw-r--r--Echo/tests/browser/features/support/hooks.rb3
-rw-r--r--Echo/tests/browser/features/support/pages/article_page.rb16
-rw-r--r--Echo/tests/echo.suite.xml30
-rw-r--r--Echo/tests/externals/phantomjs-qunit-runner.js127
-rw-r--r--Echo/tests/phpunit/api/ApiEchoMarkReadTest.php112
-rw-r--r--Echo/tests/phpunit/api/ApiEchoNotificationsTest.php71
-rw-r--r--Echo/tests/phpunit/controller/NotificationControllerTest.php220
-rw-r--r--Echo/tests/phpunit/formatters/NotificationFormatterTest.php250
-rw-r--r--Echo/tests/phpunit/includes/AttributeManagerTest.php330
-rw-r--r--Echo/tests/phpunit/includes/BatchRowUpdateTest.php244
-rw-r--r--Echo/tests/phpunit/includes/ContainmentSetTest.php73
-rw-r--r--Echo/tests/phpunit/includes/DiffParserTest.php190
-rw-r--r--Echo/tests/phpunit/includes/DiscussionParserTest.php1084
-rw-r--r--Echo/tests/phpunit/includes/EchoDbFactoryTest.php29
-rw-r--r--Echo/tests/phpunit/includes/EmailFormatterTest.php89
-rw-r--r--Echo/tests/phpunit/includes/NotifUserTest.php210
-rw-r--r--Echo/tests/phpunit/includes/TalkPageFunctionalTest.php90
-rw-r--r--Echo/tests/phpunit/includes/UserLocatorTest.php270
-rw-r--r--Echo/tests/phpunit/includes/cache/TitleLocalCacheTest.php89
-rw-r--r--Echo/tests/phpunit/includes/gateway/UserNotificationGatewayTest.php120
-rw-r--r--Echo/tests/phpunit/includes/iterator/FilteredSequentialIteratorTest.php104
-rw-r--r--Echo/tests/phpunit/includes/mapper/AbstractMapperTest.php75
-rw-r--r--Echo/tests/phpunit/includes/mapper/EventMapperTest.php167
-rw-r--r--Echo/tests/phpunit/includes/mapper/NotificationMapperTest.php262
-rw-r--r--Echo/tests/phpunit/includes/mapper/TargetPageMapperTest.php177
-rw-r--r--Echo/tests/phpunit/includes/revision_txt/138274875.txt78
-rw-r--r--Echo/tests/phpunit/includes/revision_txt/138275105.txt80
-rw-r--r--Echo/tests/phpunit/includes/revision_txt/40608353.txt145
-rw-r--r--Echo/tests/phpunit/includes/revision_txt/40610292.txt146
-rw-r--r--Echo/tests/phpunit/includes/revision_txt/637637213.txt824
-rw-r--r--Echo/tests/phpunit/includes/revision_txt/637638133.txt828
-rw-r--r--Echo/tests/phpunit/includes/revision_txt/646790570.txt69
-rw-r--r--Echo/tests/phpunit/includes/revision_txt/646792804.txt70
-rw-r--r--Echo/tests/phpunit/includes/revision_txt/647258025.txt473
-rw-r--r--Echo/tests/phpunit/includes/revision_txt/647260329.txt474
-rw-r--r--Echo/tests/phpunit/includes/revision_txt/README4
-rw-r--r--Echo/tests/phpunit/maintenance/SupressionMaintenanceTest.php130
-rw-r--r--Echo/tests/phpunit/model/NotificationTest.php88
-rw-r--r--Echo/tests/phpunit/model/TargetPageTest.php99
-rw-r--r--Echo/tests/qunit/overlay/test_ext.echo.overlay.js307
51 files changed, 8559 insertions, 0 deletions
diff --git a/Echo/tests/bootstrap.php b/Echo/tests/bootstrap.php
new file mode 100644
index 00000000..cddd5d5a
--- /dev/null
+++ b/Echo/tests/bootstrap.php
@@ -0,0 +1,19 @@
+<?php
+/**
+ * Find the correct path to /tests/phpunit/bootstrap.php in core
+ *
+ * Takes MW_INSTALL_PATH environment variable into account. This is used by the
+ * test suite defined in mfe.suite.xml for MobileFrontend phpunit testing.
+ */
+
+$IP = getenv( 'MW_INSTALL_PATH' );
+if ( $IP === false ) {
+ if ( realpath( '../..' ) ) {
+ $IP = realpath( '../..' );
+ } else {
+ $IP = dirname( dirname( dirname( __DIR__ ) ) );
+ }
+}
+
+require_once( $IP . "/tests/phpunit/bootstrap.php" );
+
diff --git a/Echo/tests/browser/features/flyout.feature b/Echo/tests/browser/features/flyout.feature
new file mode 100644
index 00000000..43072350
--- /dev/null
+++ b/Echo/tests/browser/features/flyout.feature
@@ -0,0 +1,17 @@
+@chrome @en.wikipedia.beta.wmflabs.org @firefox @login @test2.wikipedia.org
+Feature: Flyout
+
+ Background:
+ Given I am on the "Selenium Echo flyout test page" page
+
+ Scenario: Flyout button not present when anon
+ Then I do not see the notification flyout button
+
+ Scenario: Flyout button present
+ Given I am logged in
+ Then I see the notification flyout button
+
+ Scenario: Flyout button present
+ Given I am logged in
+ When I click the notification flyout button
+ Then I see the notification flyout
diff --git a/Echo/tests/browser/features/flyout_nojs.feature b/Echo/tests/browser/features/flyout_nojs.feature
new file mode 100644
index 00000000..5fc2894d
--- /dev/null
+++ b/Echo/tests/browser/features/flyout_nojs.feature
@@ -0,0 +1,12 @@
+@custom-browser @en.wikipedia.beta.wmflabs.org @firefox @login @test2.wikipedia.org
+Feature: Flyout (nojs)
+
+ Background:
+ Given I am using user agent "Mozilla/4.0 (compatible; MSIE 5.00; Windows 98)"
+ And I am on the "Selenium Echo flyout test page" page
+
+ Scenario: Flyout button present
+ Given I am logged in
+ When I click the notification flyout button
+ Then I am on the Special Notifications page
+ And I see the first heading on the page says Notifications
diff --git a/Echo/tests/browser/features/messages.feature b/Echo/tests/browser/features/messages.feature
new file mode 100644
index 00000000..441596a9
--- /dev/null
+++ b/Echo/tests/browser/features/messages.feature
@@ -0,0 +1,15 @@
+@chrome @en.wikipedia.beta.wmflabs.org @firefox @login @test2.wikipedia.org
+Feature: Scenarios that trigger notifications
+
+ Scenario: Mark all as unread
+ Given I am logged in with no notifications
+ And I have a Flow message that triggers an alert notification
+ And another user mentions me on the wiki
+ And I am on the "Selenium Echo flyout test page" page
+ And I have new notifications
+ And I click the notification flyout button
+ And I see the notification flyout
+ And I click for the Messages view
+ When I click the mark all as read button
+ And I am on the "Selenium Echo flyout test page" page
+ Then I have no new notifications
diff --git a/Echo/tests/browser/features/notifications.feature b/Echo/tests/browser/features/notifications.feature
new file mode 100644
index 00000000..58feec9e
--- /dev/null
+++ b/Echo/tests/browser/features/notifications.feature
@@ -0,0 +1,40 @@
+@chrome @en.wikipedia.beta.wmflabs.org @firefox @login @test2.wikipedia.org
+Feature: Notification types
+
+ # Scenarios which trigger notifications
+ Scenario: Someone links to a page I created
+ Given I am logged in with no notifications
+ And another user has linked to a page I created from another page
+ And I reload the page 5 times or until a notification shows up
+ When I am on the "Selenium Echo flyout test page" page
+ Then I have new notifications
+
+ Scenario: Mention message triggers notification
+ Given I am logged in with no notifications
+ And another user mentions me on the wiki
+ And I reload the page 5 times or until a notification shows up
+ When I am on the "Selenium Echo flyout test page" page
+ Then I have new notifications
+
+ Scenario: Talk page message triggers talk notification
+ Given I am logged in with no notifications
+ # And I do not have Flow boards enabled on the user talk namespace
+ And another user writes on my talk page
+ And I reload the page 5 times or until a notification shows up
+ When I am on the "Selenium Echo flyout test page" page
+ Then I have new notifications
+
+ Scenario: New user gets a sign up notification
+ Given I am logged in as a new user
+ And I am on the "Selenium Echo flyout test page" page
+ Then I have new notifications
+
+ Scenario: Page revert
+ # Too hard. Will do later.
+
+ # Scenarios which do not trigger notifications (but might be expected to)
+ Scenario: The @ message is not a keyword
+ Given I am logged in with no notifications
+ And another user @s me on "Talk:Echo at test"
+ When I am on the "Selenium Echo flyout test page" page
+ Then I have no new notifications
diff --git a/Echo/tests/browser/features/notifications_userrights.feature b/Echo/tests/browser/features/notifications_userrights.feature
new file mode 100644
index 00000000..0e947e70
--- /dev/null
+++ b/Echo/tests/browser/features/notifications_userrights.feature
@@ -0,0 +1,10 @@
+@chrome @firefox @login
+Feature: User rights
+
+ Scenario: Change in user rights
+ Given I am logged in as a new user with no notifications
+ # This step requires user rights. Selenium user doesn't have sufficient user rights on beta labs.
+ When my user rights get changed
+ And I come back from grabbing a cup of coffee
+ And I am on the "Selenium Echo flyout test page" page
+ Then I have new notifications
diff --git a/Echo/tests/browser/features/step_definitions/common_steps.rb b/Echo/tests/browser/features/step_definitions/common_steps.rb
new file mode 100644
index 00000000..ca57e136
--- /dev/null
+++ b/Echo/tests/browser/features/step_definitions/common_steps.rb
@@ -0,0 +1,61 @@
+def new_username
+ "EchoUserNew#{@random_string}"
+end
+
+def session_username
+ "#{ENV['MEDIAWIKI_USER']}_#{@browser.name}"
+end
+
+def session_username_b
+ 'EchoUser'
+end
+
+Given(/^I am logged in as the user "(.*?)"$/) do |username|
+ step 'the user "' + username + '" exists'
+ visit(LoginPage).login_with(username, ENV['MEDIAWIKI_PASSWORD'])
+end
+
+# Note Echo redefines this so that the user is unique to the current browser
+Given(/^I am logged in my non-shared account$/) do
+ username = session_username
+ step 'I am logged in as the user "' + username + '"'
+end
+
+Given(/^I am on the "(.+)" page$/) do |title|
+ on(APIPage).create title, 'Test is used by Selenium web driver'
+ visit(ArticlePage, using_params: { article_name: title })
+end
+
+Given(/^I am using user agent "(.+)"$/) do |user_agent|
+ @user_agent = user_agent
+ @browser = browser(test_name(@scenario), user_agent: user_agent)
+ $session_id = @browser.driver.instance_variable_get(:@bridge).session_id
+end
+
+Given(/^my user rights get changed$/) do
+ @username = new_username
+ client = on(APIPage).client
+ client.log_in(ENV['MEDIAWIKI_USER'], ENV['MEDIAWIKI_PASSWORD'])
+ resp = client.query(action: 'query', list: 'users', ususers: @username, ustoken: 'userrights')
+ data = resp.data
+ @token = data['users'][0]['userrightstoken']
+ client.action('userrights', token_type: false, token: @token, add: 'bot', user: @username)
+end
+
+Given(/^the user "(.*?)" exists$/) do |username|
+ on(APIPage).client.log_in(ENV['MEDIAWIKI_USER'], ENV['MEDIAWIKI_PASSWORD'])
+ begin
+ on(APIPage).client.create_account(username, ENV['MEDIAWIKI_PASSWORD'])
+ puts 'Successfully created user ' + username
+ rescue MediawikiApi::ApiError
+ puts 'Assuming in step that user ' + username + ' already exists since was unable to create.'
+ end
+end
+
+Then(/^I am on the Special Notifications page$/) do
+ expect(@browser.url).to match 'Special:Notifications'
+end
+
+Then(/^I see the first heading on the page says Notifications$/) do
+ expect(on(ArticlePage).first_heading).to eq 'Notifications'
+end
diff --git a/Echo/tests/browser/features/step_definitions/flyout_steps.rb b/Echo/tests/browser/features/step_definitions/flyout_steps.rb
new file mode 100644
index 00000000..7474f6b2
--- /dev/null
+++ b/Echo/tests/browser/features/step_definitions/flyout_steps.rb
@@ -0,0 +1,18 @@
+When(/^I click the notification flyout button$/) do
+ # Sleep works around Chrome 40 issue that began
+ # ~2015-03-04
+ sleep 1
+ on(ArticlePage).flyout_link_element.when_present.click
+end
+
+Then(/^I do not see the notification flyout button$/) do
+ expect(on(ArticlePage).flyout_link_container_element).not_to be_visible
+end
+
+Then(/^I see the notification flyout$/) do
+ expect(on(ArticlePage).flyout_element.when_present).to be_visible
+end
+
+Then(/^I see the notification flyout button$/) do
+ expect(on(ArticlePage).flyout_link_container_element.when_present).to be_visible
+end
diff --git a/Echo/tests/browser/features/step_definitions/messages_steps.rb b/Echo/tests/browser/features/step_definitions/messages_steps.rb
new file mode 100644
index 00000000..d8d61034
--- /dev/null
+++ b/Echo/tests/browser/features/step_definitions/messages_steps.rb
@@ -0,0 +1,17 @@
+Given(/^I click for the Messages view$/) do
+ on(ArticlePage).messages_view_link_element.when_present.click
+end
+
+Given(/^I have a Flow message that triggers an alert notification$/) do
+ client = on(APIPage).client
+ username = session_username_b
+ step 'the user "' + username + '" exists'
+ client.log_in(username, ENV['MEDIAWIKI_PASSWORD'])
+ client.action(
+ 'flow', token_type: 'edit', submodule: 'new-topic', page: 'Talk:Flow QA', nttopic: 'Mention #1',
+ ntcontent: '[[User:' + session_username + ']] I wanted to say hello.')
+end
+
+When(/^I click the mark all as read button$/) do
+ on(ArticlePage).mark_as_read_element.when_present.click
+end
diff --git a/Echo/tests/browser/features/step_definitions/notifications_steps.rb b/Echo/tests/browser/features/step_definitions/notifications_steps.rb
new file mode 100644
index 00000000..37843a83
--- /dev/null
+++ b/Echo/tests/browser/features/step_definitions/notifications_steps.rb
@@ -0,0 +1,91 @@
+def make_page_with_user(title, text, username)
+ client = on(APIPage).client
+ client.log_in(username, ENV['MEDIAWIKI_PASSWORD'])
+ client.create_page(title, text)
+end
+
+def clear_notifications(username)
+ client = on(APIPage).client
+ step 'the user "' + username + '" exists'
+ client.log_in(username, ENV['MEDIAWIKI_PASSWORD'])
+ client.action('echomarkread', token_type: 'edit', all: '1')
+end
+
+def make_page_with_user_b(title, text)
+ username = session_username_b
+ step 'the user "' + username + '" exists'
+ make_page_with_user(title, text, username)
+end
+
+def make_page_with_user_a(title, text)
+ make_page_with_user(title, text, session_username)
+end
+
+def poll_for_new_notifications(number_of_polls)
+ number_of_polls.to_i.times do
+ step 'I am on the "Selenium Echo flyout test page" page'
+ break if on(ArticlePage).flyout_link_element.class_name =~ /mw-echo-unread-notifications/
+ end
+end
+
+Given(/^another user has linked to a page I created from another page$/) do
+ title = 'Selenium Echo link test ' + @random_string
+ make_page_with_user_a(title, 'Selenium test page. Feel free to delete me.')
+ title2 = title + ' ' + @random_string
+ make_page_with_user_b(title2, 'I am linking to [[' + title + ']].')
+end
+
+Given(/^another user writes on my talk page$/) do
+ make_page_with_user_b(
+ 'User talk:' + session_username,
+ "== Barnstar ==\nHello Selenium, here is a barnstar for all your testing! " +
+ @random_string + "~~~~\n")
+end
+
+Given(/^another user @s me on "(.*?)"$/) do |title|
+ username = session_username.sub('_', ' ')
+ text = '@' + username + ' Cho cho cho. ~~~~'
+ make_page_with_user_b(title, text)
+end
+
+Given(/^I reload the page (.*?) times or until a notification shows up$/) do |number_of_polls|
+ poll_for_new_notifications(number_of_polls)
+end
+
+Given(/^another user mentions me on the wiki$/) do
+ title = 'Selenium Echo mention test ' + @random_string
+ username = session_username.sub('_', ' ')
+ text = "== The walrus ==\n[[User:" + username + "]]: Cho cho cho. ~~~~\n"
+ make_page_with_user_b(title, text)
+end
+
+Given(/^I am logged in as a new user$/) do
+ @username = new_username
+ step 'I am logged in as the user "' + @username + '"'
+end
+
+Given(/^I am logged in as a new user with no notifications$/) do
+ @username = new_username
+ clear_notifications(@username)
+ step 'I am logged in as the user "' + @username + '"'
+end
+
+Given(/^I am logged in with no notifications$/) do
+ # Mark all messages as read
+ client = on(APIPage).client
+ username = session_username
+ step 'the user "' + username + '" exists'
+ client.log_in(username, ENV['MEDIAWIKI_PASSWORD'])
+ client.action('echomarkread', token_type: 'edit', all: '1')
+
+ step 'I am logged in my non-shared account'
+ step 'I have no new notifications'
+end
+
+Then(/^I have no new notifications$/) do
+ expect(on(ArticlePage).flyout_link_element.when_present.class_name).not_to match 'mw-echo-unread-notifications'
+end
+
+Then(/^I have new notifications$/) do
+ expect(on(ArticlePage).flyout_link_element.when_present.class_name).to match 'mw-echo-unread-notifications'
+end
diff --git a/Echo/tests/browser/features/support/env.rb b/Echo/tests/browser/features/support/env.rb
new file mode 100644
index 00000000..cdbe1a44
--- /dev/null
+++ b/Echo/tests/browser/features/support/env.rb
@@ -0,0 +1,12 @@
+require 'rubygems'
+require 'bundler/setup'
+
+Bundler.require
+
+if ENV['PAGE_WAIT_TIMEOUT']
+ PageObject.default_page_wait = ENV['PAGE_WAIT_TIMEOUT'].to_i
+end
+
+if ENV['ELEMENT_WAIT_TIMEOUT']
+ PageObject.default_element_wait = ENV['ELEMENT_WAIT_TIMEOUT'].to_i
+end
diff --git a/Echo/tests/browser/features/support/hooks.rb b/Echo/tests/browser/features/support/hooks.rb
new file mode 100644
index 00000000..7da02d58
--- /dev/null
+++ b/Echo/tests/browser/features/support/hooks.rb
@@ -0,0 +1,3 @@
+# Allow running of bundle exec cucumber --dry-run -f stepdefs
+require 'mediawiki_selenium'
+require 'page-object'
diff --git a/Echo/tests/browser/features/support/pages/article_page.rb b/Echo/tests/browser/features/support/pages/article_page.rb
new file mode 100644
index 00000000..d35f7330
--- /dev/null
+++ b/Echo/tests/browser/features/support/pages/article_page.rb
@@ -0,0 +1,16 @@
+# Page Object describing Headings, Flyouts, and Overlay in Echo
+class ArticlePage
+ include PageObject
+ include URL
+ page_url URL.url('<%=params[:article_name]%><%=params[:hash]%>')
+
+ h1(:first_heading, id: 'firstHeading')
+ li(:flyout_link_container, css: '#pt-notifications')
+ a(:flyout_link, css: '#pt-notifications a')
+ div(:flyout, css: '.mw-echo-overlay')
+
+ # Overlay header
+ a(:alert_tab_link, css: '.mw-echo-overlay-title ul li a', index: 1)
+ button(:mark_as_read, css: '.mw-echo-notifications > button')
+ a(:messages_view_link, css: '.mw-ui-active')
+end
diff --git a/Echo/tests/echo.suite.xml b/Echo/tests/echo.suite.xml
new file mode 100644
index 00000000..290d0720
--- /dev/null
+++ b/Echo/tests/echo.suite.xml
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!-- colors don't work on Windows! -->
+<phpunit bootstrap="bootstrap.php"
+ colors="true"
+ backupGlobals="false"
+ convertErrorsToExceptions="true"
+ convertNoticesToExceptions="true"
+ convertWarningsToExceptions="true"
+ stopOnFailure="false"
+ timeoutForSmallTests="2"
+ timeoutForMediumTests="10"
+ timeoutForLargeTests="60"
+ strict="true"
+ verbose="true">
+ <testsuites>
+ <testsuite name="extensions">
+ <!-- assumes extension is installed to mediawiki/extensions/Echo -->
+ <file>../../../tests/phpunit/suites/ExtensionsTestSuite.php</file>
+ </testsuite>
+ </testsuites>
+ <groups>
+ <exclude>
+ <group>Utility</group>
+ <group>Broken</group>
+ <group>ParserFuzz</group>
+ <group>Stub</group>
+ </exclude>
+ </groups>
+</phpunit>
diff --git a/Echo/tests/externals/phantomjs-qunit-runner.js b/Echo/tests/externals/phantomjs-qunit-runner.js
new file mode 100644
index 00000000..4b1d38b1
--- /dev/null
+++ b/Echo/tests/externals/phantomjs-qunit-runner.js
@@ -0,0 +1,127 @@
+/*
+ * QtWebKit-powered headless test runner using PhantomJS
+ *
+ * PhantomJS binaries: http://phantomjs.org/download.html
+ * Requires PhantomJS 1.6+ (1.7+ recommended)
+ *
+ * Run with:
+ * phantomjs runner.js [url-of-your-qunit-testsuite]
+ *
+ * e.g.
+ * phantomjs runner.js http://localhost/qunit/test/index.html
+ */
+
+/*jshint latedef:false */
+/*global phantom:false, require:false, console:false, window:false, QUnit:false */
+
+(function() {
+ 'use strict';
+
+ var args = require('system').args;
+
+ // arg[0]: scriptName, args[1...]: arguments
+ if (args.length !== 2) {
+ console.error('Usage:\n phantomjs runner.js [url-of-your-qunit-testsuite]');
+ phantom.exit(1);
+ }
+
+ var url = args[1],
+ page = require('webpage').create();
+
+ // Route `console.log()` calls from within the Page context to the main Phantom context (i.e. current `this`)
+ page.onConsoleMessage = function(msg) {
+ console.log(msg);
+ };
+
+ page.onInitialized = function() {
+ page.evaluate(addLogging);
+ };
+
+ page.onCallback = function(message) {
+ var result,
+ failed;
+
+ if (message) {
+ if (message.name === 'QUnit.done') {
+ result = message.data;
+ failed = !result || result.failed;
+
+ phantom.exit(failed ? 1 : 0);
+ }
+ }
+ };
+
+ page.open(url, function(status) {
+ if (status !== 'success') {
+ console.error('Unable to access network: ' + status);
+ phantom.exit(1);
+ } else {
+ // Cannot do this verification with the 'DOMContentLoaded' handler because it
+ // will be too late to attach it if a page does not have any script tags.
+ var qunitMissing = page.evaluate(function() { return (typeof QUnit === 'undefined' || !QUnit); });
+ if (qunitMissing) {
+ console.error('The `QUnit` object is not present on this page.');
+ phantom.exit(1);
+ }
+
+ // Do nothing... the callback mechanism will handle everything!
+ }
+ });
+
+ function addLogging() {
+ window.document.addEventListener('DOMContentLoaded', function() {
+ var current_test_assertions = [];
+
+ QUnit.log(function(details) {
+ var response;
+
+ // Ignore passing assertions
+ if (details.result) {
+ return;
+ }
+
+ response = details.message || '';
+
+ if (typeof details.expected !== 'undefined') {
+ if (response) {
+ response += ', ';
+ }
+
+ response += 'expected: ' + details.expected + ', but was: ' + details.actual;
+ if (details.source) {
+ response += "\n" + details.source;
+ }
+ }
+
+ current_test_assertions.push('Failed assertion: ' + response);
+ });
+
+ QUnit.testDone(function(result) {
+ var i,
+ len,
+ name = result.module + ': ' + result.name;
+
+ if (result.failed) {
+ console.log('Test failed: ' + name);
+
+ for (i = 0, len = current_test_assertions.length; i < len; i++) {
+ console.log(' ' + current_test_assertions[i]);
+ }
+ }
+
+ current_test_assertions.length = 0;
+ });
+
+ QUnit.done(function(result) {
+ console.log('Took ' + result.runtime + 'ms to run ' + result.total + ' tests. ' + result.passed + ' passed, ' + result.failed + ' failed.');
+
+ if (typeof window.callPhantom === 'function') {
+ window.callPhantom({
+ 'name': 'QUnit.done',
+ 'data': result
+ });
+ }
+ });
+ }, false);
+ }
+})();
diff --git a/Echo/tests/phpunit/api/ApiEchoMarkReadTest.php b/Echo/tests/phpunit/api/ApiEchoMarkReadTest.php
new file mode 100644
index 00000000..104e0b00
--- /dev/null
+++ b/Echo/tests/phpunit/api/ApiEchoMarkReadTest.php
@@ -0,0 +1,112 @@
+<?php
+
+/**
+ * @group medium
+ * @group API
+ * @covers ApiQuery
+ */
+class ApiEchoMarkReadTest extends ApiTestCase {
+
+ protected function setUp() {
+ parent::setUp();
+ $this->doLogin();
+ }
+
+ function getTokens() {
+ return $this->getTokenList( self::$users['sysop'] );
+ }
+
+ public function testMarkReadWithList() {
+
+ $tokens = $this->getTokens();
+ // Grouping by section
+ $data = $this->doApiRequest( array(
+ 'action' => 'echomarkread',
+ 'notlist' => '121|122|123',
+ 'token' => $tokens['edittoken'] ) );
+
+ $this->assertArrayHasKey( 'query', $data[0] );
+ $this->assertArrayHasKey( 'echomarkread', $data[0]['query'] );
+
+ $result = $data[0]['query']['echomarkread'];
+
+ // General count
+ $this->assertArrayHasKey( 'count', $result );
+ $this->assertArrayHasKey( 'rawcount', $result );
+
+ // Alert
+ $this->assertArrayHasKey( 'alert', $result );
+ $alert = $result['alert'];
+ $this->assertArrayHasKey( 'rawcount', $alert );
+ $this->assertArrayHasKey( 'count', $alert );
+
+ // Message
+ $this->assertArrayHasKey( 'message', $result );
+ $message = $result['message'];
+ $this->assertArrayHasKey( 'rawcount', $message );
+ $this->assertArrayHasKey( 'count', $message );
+ }
+
+ public function testMarkReadWithAll() {
+
+ $tokens = $this->getTokens();
+ // Grouping by section
+ $data = $this->doApiRequest( array(
+ 'action' => 'echomarkread',
+ 'notall' => '1',
+ 'token' => $tokens['edittoken'] ) );
+
+ $this->assertArrayHasKey( 'query', $data[0] );
+ $this->assertArrayHasKey( 'echomarkread', $data[0]['query'] );
+
+ $result = $data[0]['query']['echomarkread'];
+
+ // General count
+ $this->assertArrayHasKey( 'count', $result );
+ $this->assertArrayHasKey( 'rawcount', $result );
+
+ // Alert
+ $this->assertArrayHasKey( 'alert', $result );
+ $alert = $result['alert'];
+ $this->assertArrayHasKey( 'rawcount', $alert );
+ $this->assertArrayHasKey( 'count', $alert );
+
+ // Message
+ $this->assertArrayHasKey( 'message', $result );
+ $message = $result['message'];
+ $this->assertArrayHasKey( 'rawcount', $message );
+ $this->assertArrayHasKey( 'count', $message );
+ }
+
+ public function testMarkReadWithSections() {
+
+ $tokens = $this->getTokens();
+ // Grouping by section
+ $data = $this->doApiRequest( array(
+ 'action' => 'echomarkread',
+ 'sections' => 'alert|message',
+ 'token' => $tokens['edittoken'] ) );
+
+ $this->assertArrayHasKey( 'query', $data[0] );
+ $this->assertArrayHasKey( 'echomarkread', $data[0]['query'] );
+
+ $result = $data[0]['query']['echomarkread'];
+
+ // General count
+ $this->assertArrayHasKey( 'count', $result );
+ $this->assertArrayHasKey( 'rawcount', $result );
+
+ // Alert
+ $this->assertArrayHasKey( 'alert', $result );
+ $alert = $result['alert'];
+ $this->assertArrayHasKey( 'rawcount', $alert );
+ $this->assertArrayHasKey( 'count', $alert );
+
+ // Message
+ $this->assertArrayHasKey( 'message', $result );
+ $message = $result['message'];
+ $this->assertArrayHasKey( 'rawcount', $message );
+ $this->assertArrayHasKey( 'count', $message );
+ }
+
+}
diff --git a/Echo/tests/phpunit/api/ApiEchoNotificationsTest.php b/Echo/tests/phpunit/api/ApiEchoNotificationsTest.php
new file mode 100644
index 00000000..cd1a9732
--- /dev/null
+++ b/Echo/tests/phpunit/api/ApiEchoNotificationsTest.php
@@ -0,0 +1,71 @@
+<?php
+
+/**
+ * @group medium
+ * @group API
+ * @covers ApiQuery
+ */
+class ApiEchoNotificationsTest extends ApiTestCase {
+
+ public function testWithSectionGrouping() {
+ // Grouping by section
+ $data = $this->doApiRequest( array(
+ 'action' => 'query',
+ 'meta' => 'notifications',
+ 'notsections' => 'alert|message',
+ 'notgroupbysection' => 1,
+ 'notlimit' => 10,
+ 'notprop' => 'index|list|count' ) );
+
+ $this->assertArrayHasKey( 'query', $data[0] );
+ $this->assertArrayHasKey( 'notifications', $data[0]['query'] );
+
+ $result = $data[0]['query']['notifications'];
+
+ // General count
+ $this->assertArrayHasKey( 'count', $result );
+ $this->assertArrayHasKey( 'rawcount', $result );
+
+ // Alert
+ $this->assertArrayHasKey( 'alert', $result );
+ $alert = $result['alert'];
+ $this->assertArrayHasKey( 'list', $alert );
+ $this->assertArrayHasKey( 'continue', $alert );
+ $this->assertArrayHasKey( 'index', $alert );
+ $this->assertArrayHasKey( 'rawcount', $alert );
+ $this->assertArrayHasKey( 'count', $alert );
+
+ // Message
+ $this->assertArrayHasKey( 'message', $result );
+ $message = $result['message'];
+ $this->assertArrayHasKey( 'list', $message );
+ $this->assertArrayHasKey( 'continue', $message );
+ $this->assertArrayHasKey( 'index', $message );
+ $this->assertArrayHasKey( 'rawcount', $message );
+ $this->assertArrayHasKey( 'count', $message );
+ }
+
+ public function testWithoutSectionGrouping() {
+ $data = $this->doApiRequest( array(
+ 'action' => 'query',
+ 'meta' => 'notifications',
+ 'notsections' => 'alert|message',
+ 'notlimit' => 10,
+ 'notprop' => 'index|list|count' ) );
+
+ $this->assertArrayHasKey( 'query', $data[0] );
+ $this->assertArrayHasKey( 'notifications', $data[0]['query'] );
+
+ $result = $data[0]['query']['notifications'];
+
+ $this->assertArrayHasKey( 'count', $result );
+ $this->assertArrayHasKey( 'rawcount', $result );
+ $this->assertArrayHasKey( 'list', $result );
+ $this->assertArrayHasKey( 'continue', $result );
+ $this->assertArrayHasKey( 'index', $result );
+
+ $this->assertTrue( !isset( $result['alert'] ) );
+ $this->assertTrue( !isset( $result['message'] ) );
+ }
+
+}
diff --git a/Echo/tests/phpunit/controller/NotificationControllerTest.php b/Echo/tests/phpunit/controller/NotificationControllerTest.php
new file mode 100644
index 00000000..fdfb9c25
--- /dev/null
+++ b/Echo/tests/phpunit/controller/NotificationControllerTest.php
@@ -0,0 +1,220 @@
+<?php
+
+class NotificationControllerTest extends MediaWikiTestCase {
+
+ public function evaluateUserLocatorsProvider() {
+ return array(
+ array(
+ 'With no options no users are notified',
+ // expected result
+ array(),
+ // event user locator config
+ array(),
+ ),
+
+ array(
+ 'Does not error when given non-existant user-locator',
+ // expected result
+ array(),
+ // event user locator config
+ array( 'not-callable' ),
+ ),
+
+ array(
+ 'Calls selected locator and returns result',
+ // expected result
+ array( array( 123 ) ),
+ // event user locator config
+ function() { return array( 123 => 123 ); }
+ ),
+
+ array(
+ 'evaluates multiple locators',
+ // expected result
+ array( array( 123 ), array( 456 ) ),
+ // event user locator config
+ array(
+ function() { return array( 123 => 123 ); },
+ function() { return array( 456 => 456 ); },
+ ),
+ ),
+
+ array(
+ 'Passes parameters to locateFromEventExtra in expected manner',
+ // expected result
+ array( array( 123 ) ),
+ // event user locator config
+ array(
+ array( 'EchoUserLocator::locateFromEventExtra', array( 'other-user' ) ),
+ ),
+ // additional setup
+ function( $test, $event ) {
+ $event->expects( $test->any() )
+ ->method( 'getExtraParam' )
+ ->with( 'other-user' )
+ ->will( $test->returnValue( 123 ) );
+ }
+ ),
+ );
+ }
+
+ /**
+ * @dataProvider evaluateUserLocatorsProvider
+ */
+ public function testEvaluateUserLocators( $message, $expect, $locatorConfigForEventType, $setup = null ) {
+ $this->setMwGlobals( array(
+ 'wgEchoNotifications' => array(
+ 'unit-test' => array(
+ 'user-locators' => $locatorConfigForEventType
+ ),
+ ),
+ ) );
+
+ $event = $this->getMockBuilder( 'EchoEvent' )
+ ->disableOriginalConstructor()
+ ->getMock();
+ $event->expects( $this->any() )
+ ->method( 'getType' )
+ ->will( $this->returnValue( 'unit-test' ) );
+
+ if ( $setup !== null ) {
+ $setup( $this, $event );
+ }
+
+ $result = EchoNotificationController::evaluateUserLocators( $event );
+ $this->assertEquals( $expect, array_map( 'array_keys', $result ), $message );
+ }
+
+ public function testEvaluateUserLocatorPassesParameters() {
+ $test = $this;
+ $callback = function( $event, $firstOption, $secondOption ) use( $test ) {
+ $test->assertInstanceOf( 'EchoEvent', $event );
+ $test->assertEquals( 'first', $firstOption );
+ $test->assertEquals( 'second', $secondOption );
+
+ return array();
+ };
+
+ self::testEvaluateUserLocators(
+ __FUNCTION__,
+ array( array() ),
+ array( array( $callback, 'first', 'second' ) )
+ );
+ }
+
+ public function getUsersToNotifyForEventProvider() {
+ return array(
+ array(
+ 'Filters anonymous users',
+ // expected result
+ array(),
+ // users returned from locator
+ array( User::newFromName( '4.5.6.7', false ) ),
+ ),
+
+ array(
+ 'Filters duplicate users',
+ // expected result
+ array( 123 ),
+ // users returned from locator
+ array( User::newFromId( 123 ), User::newFromId( 123 ) ),
+ ),
+
+ array(
+ 'Filters non-user objects',
+ // expected result
+ array( 123 ),
+ // users returned from locator
+ array( null, 'foo', User::newFromId( 123 ), new stdClass, 456 ),
+ ),
+ );
+ }
+
+ /**
+ * @dataProvider getUsersToNotifyForEventProvider
+ */
+ public function testGetUsersToNotifyForEvent(
+ $message,
+ $expect,
+ $users
+ ) {
+ $this->setMwGlobals( array(
+ 'wgEchoNotifications' => array(
+ 'unit-test' => array(
+ 'user-locators' => function() use( $users ) { return $users; },
+ ),
+ ),
+ ) );
+
+ $event = $this->getMockBuilder( 'EchoEvent' )
+ ->disableOriginalConstructor()
+ ->getMock();
+ $event->expects( $this->any() )
+ ->method( 'getType' )
+ ->will( $this->returnValue( 'unit-test' ) );
+
+ $result = EchoNotificationController::getUsersToNotifyForEvent( $event );
+ $ids = array();
+ foreach ( $result as $user ) {
+ $ids[] = $user->getId();
+ }
+ $this->assertEquals( $expect, $ids, $message );
+ }
+
+ public function testDoesNotDeliverDisabledEvent() {
+ $event = $this->getMockBuilder( 'EchoEvent' )
+ ->disableOriginalConstructor()
+ ->getMock();
+ $event->expects( $this->any() )
+ ->method( 'isEnabledEvent' )
+ ->will( $this->returnValue( false ) );
+ // Assume it would have to check the event type to
+ // determine how to deliver
+ $event->expects( $this->never() )
+ ->method( 'getType' );
+
+ EchoNotificationController::notify( $event, false );
+ }
+
+ public static function getEventNotifyTypesProvider() {
+ return array(
+ array(
+ 'Selects the `all` configuration by default',
+ // expected result
+ array( 'web' ),
+ // event type
+ 'bar',
+ // default notification types configuration
+ array(
+ 'all' => array( 'web' => true ),
+ 'foo' => array( 'email' => true ),
+ ),
+ ),
+
+ array(
+ 'Overrides `all` configuration with event type configuration',
+ // expected result
+ array( 'web' ),
+ // event type
+ 'foo',
+ // default notification types configuration
+ array(
+ 'all' => array( 'web' => true, 'email' => true ),
+ 'foo' => array( 'email' => false ),
+ 'bar' => array( 'sms' => true ),
+ ),
+ ),
+ );
+ }
+
+ /**
+ * @dataProvider getEventNotifyTypesProvider
+ */
+ public function testGetEventNotifyTypes( $message, $expect, $type, array $notificationTypes ) {
+ $this->setMwGlobals( array(
+ 'wgEchoDefaultNotificationTypes' => $notificationTypes,
+ ) );
+ $result = EchoNotificationController::getEventNotifyTypes( $type );
+ $this->assertEquals( $expect, $result, $message );
+ }
+}
diff --git a/Echo/tests/phpunit/formatters/NotificationFormatterTest.php b/Echo/tests/phpunit/formatters/NotificationFormatterTest.php
new file mode 100644
index 00000000..dd002414
--- /dev/null
+++ b/Echo/tests/phpunit/formatters/NotificationFormatterTest.php
@@ -0,0 +1,250 @@
+<?php
+
+/**
+ * @group Echo
+ */
+class EchoNotificationFormatterTest extends MediaWikiTestCase {
+
+ public function setUp() {
+ parent::setUp();
+ $user = new User();
+ $user->setName( 'Notification-formatter-test' );
+ $user->addToDatabase();
+ $this->setMwGlobals( 'wgUser', $user );
+ }
+
+ public static function provider_editUserTalkEmail() {
+ return array(
+ array( '/Main_Page[^#]/', null ),
+ array( '/Main_Page#Section_8/', 'Section 8' ),
+ );
+ }
+
+ /**
+ * @dataProvider provider_editUserTalkEmail
+ */
+ public function testEditUserTalkEmailNotificationLink( $pattern, $sectionTitle ) {
+ $event = $this->mockEvent( 'edit-user-talk', array(
+ 'section-title' => $sectionTitle,
+ ) );
+ $event->expects( $this->any() )
+ ->method( 'getTitle' )
+ ->will( $this->returnValue( Title::newMainPage() ) );
+ $formatted = $this->format( $event, 'email' );
+ if ( is_array( $formatted['body'] ) ) {
+ $this->assertRegExp( $pattern, $formatted['body']['text'] );
+ $this->assertRegExp( $pattern, $formatted['body']['html'] );
+ } else {
+ $this->assertRegExp( $pattern, $formatted['body'] );
+ }
+
+ # Reset the Title cache
+ $mainPage = Title::newMainPage();
+ $mainPage->setFragment('');
+ # And assert it has been cleaned up
+ $mainPageCached = Title::newMainPage();
+ $this->assertEquals( '', $mainPageCached->getFragment() );
+
+ }
+
+ public static function provider_editUserTalk() {
+ return array(
+ // if there is a section-title, the message should be '[[User:user_name|user_name]] left a message on
+ // your talk page in '[[User talk:user_name#section_title|section_title]]'
+ array( '/[[User talk:[^#]+#moar_cowbell|moar_cowbell]]/', 'moar_cowbell', 'text' ),
+ array( '/#moar_cowbell/', 'moar_cowbell', 'html' ),
+ array( '/#moar_cowbell/', 'moar_cowbell', 'flyout' ),
+ );
+ }
+
+ /**
+ * @dataProvider provider_editUserTalk
+ */
+ public function testEditUserTalkFlyoutSectionLinkFragment( $pattern, $sectionTitle, $format ) {
+ // Required hack so parser doesnt turn the links into redlinks which contain no fragment
+ global $wgUser;
+ LinkCache::singleton()->addGoodLinkObj( 42, $wgUser->getTalkPage() );
+
+ $event = $this->mockEvent( 'edit-user-talk', array(
+ 'section-title' => $sectionTitle,
+ ) );
+ $this->assertRegExp( $pattern, $this->format( $event, $format ) );
+ }
+
+ public function provider_formatterDoesntFail() {
+ // Remove events from this array once they have specific tests for their formatting
+ $untested = array(
+ 'welcome' => array(),
+ 'reverted' => array(
+ 'revid' => 42,
+ 'reverted-user-id' => 77,
+ 'reverted-revision-id' => 13,
+ 'method' => 'undo',
+ ),
+ 'page-linked' => array(
+ 'link-from-page-id' => 42,
+ ),
+ 'mention' => array(
+ 'content' => 'lorem ipsum dolar sit amet',
+ 'section-title' => 'Zombies',
+ 'revid' => 42,
+ 'mentionedusers' => array( 101 => 101 ),
+ ),
+ 'user-rights' => array(
+ 'user' => 187,
+ 'add' => array( 'aaa', 'bbb' ),
+ 'remove' => array( 'other' ),
+ ),
+ );
+ $formats = array( 'html', 'flyout', 'email', 'text' );
+ $tests = array();
+ foreach ( $untested as $type => $extra ) {
+ foreach ( $formats as $format ) {
+ // Run tests with blank extra data and with the provided extra data
+ $tests[] = array( $format, $type, $extra );
+ $tests[] = array( $format, $type, array() );
+ }
+ }
+
+ return $tests;
+ }
+
+ public static function provider_revisionSummary() {
+ $sectionText = '(dummy comment)';
+
+ // Test the 4 different events that reference the summary, although they should follow mostly
+ // the same code they may use different classes extended from the EchoNotificationFormatter
+ $tests = array();
+ $events = array( 'edit-user-talk' );
+ foreach ( $events as $eventType ) {
+ $tests[] = array( $eventType, $sectionText, 0);
+ $tests[] = array( $eventType, $sectionText, Revision::DELETED_TEXT );
+ }
+
+ return $tests;
+ }
+
+ /**
+ * @dataProvider provider_revisionSummary
+ */
+ public function testRevisionSummarySuppression( $eventType, $text, $deleted ) {
+ // Revision needs a comment to attempt to format
+ $event = $this->mockEvent(
+ $eventType,
+ array( 'section-title' => 'Test Title', 'section-text' => $text ),
+ new Revision( compact( 'deleted' ) )
+ );
+ if ( $deleted === Revision::DELETED_TEXT ) {
+ $this->assertNotContains( $text, $this->format( $event, 'html' ) );
+ } else {
+ $this->assertContains( $text, $this->format( $event, 'html' ) );
+ }
+ }
+
+ public static function provider_revisionAgent() {
+ $userText = '10.2.3.4';
+ $suppressed = wfMessage( 'rev-deleted-user' )->text();
+
+ $tests = array();
+ $events = array( 'edit-user-talk', 'reverted', 'mention' );
+ foreach ( $events as $eventType ) {
+ $tests[] = array( $eventType, $userText, $userText, 0 );
+ $tests[] = array( $eventType, $suppressed, $userText, Revision::DELETED_USER );
+ }
+
+ return $tests;
+ }
+
+ /**
+ * @dataProvider provider_revisionAgent
+ */
+ public function testAgentSuppression( $eventType, $expect, $user_text, $deleted ) {
+ $event = $this->mockEvent(
+ $eventType,
+ array(),
+ new Revision( compact( 'user_text', 'deleted' ) )
+ );
+
+ $user = new User;
+ $user->setName( $user_text );
+ $event->expects( $this->any() )
+ ->method( 'getAgent' )
+ ->will( $this->returnValue( $user ) );
+
+ $this->assertContains( $expect, $this->format( $event, 'html' ) );
+ }
+
+ public static function provider_sectionTitle() {
+ $message = "some_section_title"; // underscores simplifies the test, since it will transform ' ' to '_'
+ $suppressed = wfMessage( 'echo-rev-deleted-text-view')->text();
+
+ $tests = array();
+ $events = array( 'mention' ); // currently only mention uses sectionTitle, but likely edit-user-talk will soon as well
+ foreach ( $events as $eventType ) {
+ $tests[] = array( $eventType, $message, $message, 0);
+ $tests[] = array( $eventType, $suppressed, $message, Revision::DELETED_TEXT );
+ }
+
+ return $tests;
+ }
+
+ /**
+ * @dataProvider provider_formatterDoesntFail
+ */
+ public function testFormatterDoesntFail( $format, $type, array $extra ) {
+ $result = $this->format( $this->mockEvent( $type, $extra ), $format );
+
+ // generic assertion, could do better
+ if ( $format === 'email' ) {
+ $this->assertInternalType( 'array', $result );
+ $this->assertCount( 2, $result );
+ } else {
+ $this->assertInternalType( 'string', $result );
+ $this->assertGreaterThan( 0, strlen( $result ) );
+ }
+ }
+
+ /**
+ * @dataProvider provider_sectionTitle
+ */
+ public function testMentionSubjectSectionTitleSuppression( $eventType, $expect, $sectionTitle, $deleted ) {
+ $event = $this->mockEvent(
+ $eventType,
+ array( 'section-title' => $sectionTitle ),
+ new Revision( compact( 'deleted' ) )
+ );
+
+ $this->assertContains( $expect, $this->format( $event, 'html' ) );
+ }
+
+ protected function format( EchoEvent $event, $format, $user = false, $type = 'web' ) {
+ if ( $user === false ) {
+ $user = User::newFromName('Notification-formatter-test');
+ }
+
+ // Notification users can not be anonymous, use a fake user id
+ return EchoNotificationController::formatNotification( $event, $user, $format, $type );
+ }
+
+ protected function mockEvent( $type, array $extra = array(), Revision $rev = null ) {
+ $methods = get_class_methods( 'EchoEvent' );
+ $methods = array_diff( $methods, array( 'userCan', 'getLinkMessage', 'getLinkDestination' ) );
+
+ $event = $this->getMockBuilder( 'EchoEvent' )
+ ->disableOriginalConstructor()
+ ->setMethods( $methods )
+ ->getMock();
+ $event->expects( $this->any() )
+ ->method( 'getType' )
+ ->will( $this->returnValue( $type ) );
+ $event->expects( $this->any() )
+ ->method( 'getExtra' )
+ ->will( $this->returnValue( $extra ) );
+ if ( $rev !== null ) {
+ $event->expects( $this->any() )
+ ->method( 'getRevision' )
+ ->will( $this->returnValue( $rev ) );
+ }
+ return $event;
+ }
+}
diff --git a/Echo/tests/phpunit/includes/AttributeManagerTest.php b/Echo/tests/phpunit/includes/AttributeManagerTest.php
new file mode 100644
index 00000000..cc23cb0e
--- /dev/null
+++ b/Echo/tests/phpunit/includes/AttributeManagerTest.php
@@ -0,0 +1,330 @@
+<?php
+
+class EchoAttributeManagerTest extends MediaWikiTestCase {
+
+ public function testNewFromGlobalVars() {
+ $this->assertInstanceOf( 'EchoAttributeManager', EchoAttributeManager::newFromGlobalVars() );
+ }
+
+ public static function getUserLocatorsProvider() {
+ return array(
+ array(
+ 'No errors when requesting unknown type',
+ // expected result
+ array(),
+ // event type
+ 'foo',
+ // notification configuration
+ array(),
+ ),
+
+ array(
+ 'Returns selected notification configuration',
+ // expected result
+ array( 'woot!' ),
+ // event type
+ 'magic',
+ // notification configuration
+ array(
+ 'foo' => array(
+ 'user-locators' => array( 'frown' ),
+ ),
+ 'magic' => array(
+ 'user-locators' => array( 'woot!' ),
+ ),
+ ),
+ ),
+
+ array(
+ 'Accepts user-locators as string and returns array',
+ // expected result
+ array( 'sagen' ),
+ // event type
+ 'challah',
+ // notification configuration
+ array(
+ 'challah' => array(
+ 'user-locators' => 'sagen',
+ ),
+ ),
+ ),
+ );
+ }
+
+ /**
+ * @dataProvider getUserLocatorsProvider
+ */
+ public function testGetUserLocators( $message, $expect, $type, $notifications) {
+ $manager = new EchoAttributeManager( $notifications, array() );
+
+ $result = $manager->getUserLocators( $type );
+ $this->assertEquals( $expect, $result, $message );
+ }
+
+ public function testGetCategoryEligibility() {
+ $notif = array(
+ 'event_one' => array (
+ 'category' => 'category_one'
+ ),
+ );
+ $category = array(
+ 'category_one' => array (
+ 'priority' => 10
+ )
+ );
+ $manager = new EchoAttributeManager( $notif, $category );
+ $this->assertTrue( $manager->getCategoryEligibility( $this->mockUser(), 'category_one' ) );
+ $category = array(
+ 'category_one' => array (
+ 'priority' => 10,
+ 'usergroups' => array(
+ 'sysop'
+ )
+ )
+ );
+ $manager = new EchoAttributeManager( $notif, $category );
+ $this->assertFalse( $manager->getCategoryEligibility( $this->mockUser(), 'category_one' ) );
+ }
+
+ public function testGetNotificationCategory() {
+ $notif = array(
+ 'event_one' => array (
+ 'category' => 'category_one'
+ ),
+ );
+ $category = array(
+ 'category_one' => array (
+ 'priority' => 10
+ )
+ );
+ $manager = new EchoAttributeManager( $notif, $category );
+ $this->assertEquals( $manager->getNotificationCategory( 'event_one' ), 'category_one' );
+
+ $manager = new EchoAttributeManager( $notif, array() );
+ $this->assertEquals( $manager->getNotificationCategory( 'event_one' ), 'other' );
+
+ $notif = array(
+ 'event_one' => array (
+ 'category' => 'category_two'
+ ),
+ );
+ $category = array(
+ 'category_one' => array (
+ 'priority' => 10
+ )
+ );
+ $manager = new EchoAttributeManager( $notif, $category );
+ $this->assertEquals( $manager->getNotificationCategory( 'event_one' ), 'other' );
+ }
+
+ public function testGetCategoryPriority() {
+ $notif = array(
+ 'event_one' => array (
+ 'category' => 'category_two'
+ ),
+ );
+ $category = array(
+ 'category_one' => array (
+ 'priority' => 6
+ ),
+ 'category_two' => array (
+ 'priority' => 100
+ ),
+ 'category_three' => array (
+ 'priority' => -10
+ ),
+ 'category_four' => array ()
+ );
+ $manager = new EchoAttributeManager( $notif, $category );
+ $this->assertEquals( 6, $manager->getCategoryPriority( 'category_one' ) );
+ $this->assertEquals( 10, $manager->getCategoryPriority( 'category_two' ) );
+ $this->assertEquals( 10, $manager->getCategoryPriority( 'category_three' ) );
+ $this->assertEquals( 10, $manager->getCategoryPriority( 'category_four' ) );
+ }
+
+ public function testGetNotificationPriority() {
+ $notif = array(
+ 'event_one' => array (
+ 'category' => 'category_one'
+ ),
+ 'event_two' => array (
+ 'category' => 'category_two'
+ ),
+ 'event_three' => array (
+ 'category' => 'category_three'
+ ),
+ 'event_four' => array (
+ 'category' => 'category_four'
+ )
+ );
+ $category = array(
+ 'category_one' => array (
+ 'priority' => 6
+ ),
+ 'category_two' => array (
+ 'priority' => 100
+ ),
+ 'category_three' => array (
+ 'priority' => -10
+ ),
+ 'category_four' => array ()
+ );
+ $manager = new EchoAttributeManager( $notif, $category );
+ $this->assertEquals( 6, $manager->getNotificationPriority( 'event_one' ) );
+ $this->assertEquals( 10, $manager->getNotificationPriority( 'event_two' ) );
+ $this->assertEquals( 10, $manager->getNotificationPriority( 'event_three' ) );
+ $this->assertEquals( 10, $manager->getNotificationPriority( 'event_four' ) );
+ }
+
+ public function testGetMessageEvents() {
+ $notif = array(
+ 'event_one' => array (
+ 'category' => 'category_one',
+ 'section' => 'message'
+ ),
+ 'event_two' => array (
+ 'category' => 'category_two'
+ ),
+ 'event_three' => array (
+ 'category' => 'category_three',
+ 'section' => 'message'
+ ),
+ 'event_four' => array (
+ 'category' => 'category_four'
+ )
+ );
+ $category = array(
+ 'category_one' => array (
+ 'priority' => 6
+ )
+ );
+ $manager = new EchoAttributeManager( $notif, $category );
+ $this->assertEquals( $manager->getMessageEvents(), array( 'event_one', 'event_three' ) );
+ }
+
+ public function testGetAlertEvents() {
+ $notif = array(
+ 'event_one' => array (
+ 'category' => 'category_one',
+ 'section' => 'message'
+ ),
+ 'event_two' => array (
+ 'category' => 'category_two'
+ ),
+ 'event_three' => array (
+ 'category' => 'category_three',
+ 'section' => 'alert'
+ ),
+ 'event_four' => array (
+ 'category' => 'category_four'
+ )
+ );
+ $category = array(
+ 'category_one' => array (
+ 'priority' => 6
+ )
+ );
+ $manager = new EchoAttributeManager( $notif, $category );
+ $this->assertEquals( $manager->getAlertEvents(), array( 'event_two', 'event_three', 'event_four' ) );
+ }
+
+ public function testGetUserEnabledEvents() {
+ $notif = array(
+ 'event_one' => array (
+ 'category' => 'category_one'
+ ),
+ 'event_two' => array (
+ 'category' => 'category_two'
+ ),
+ 'event_three' => array (
+ 'category' => 'category_three'
+ ),
+ );
+ $category = array(
+ 'category_one' => array (
+ 'priority' => 10,
+ 'usergroups' => array(
+ 'sysop'
+ )
+ ),
+ 'category_two' => array (
+ 'priority' => 10,
+ 'usergroups' => array(
+ 'echo_group'
+ )
+ ),
+ 'category_three' => array (
+ 'priority' => 10,
+ ),
+ );
+ $manager = new EchoAttributeManager( $notif, $category );
+ $this->assertEquals( $manager->getUserEnabledEvents( $this->mockUser(), 'web' ), array( 'event_two', 'event_three' ) );
+ }
+
+ public function testGetUserEnabledEventsbySections() {
+ $notif = array(
+ 'event_one' => array (
+ 'category' => 'category_one'
+ ),
+ 'event_two' => array (
+ 'category' => 'category_two',
+ 'section' => 'message'
+ ),
+ 'event_three' => array (
+ 'category' => 'category_three',
+ 'section' => 'alert'
+ ),
+ 'event_four' => array (
+ 'category' => 'category_three',
+ ),
+ );
+ $category = array(
+ 'category_one' => array (
+ 'priority' => 10,
+ ),
+ 'category_two' => array (
+ 'priority' => 10,
+ ),
+ 'category_three' => array (
+ 'priority' => 10
+ ),
+ );
+ $manager = new EchoAttributeManager( $notif, $category );
+ $expected = array( 'event_one', 'event_three', 'event_four' );
+ $actual = $manager->getUserEnabledEventsBySections( $this->mockUser(), 'web', array( 'alert' ) );
+ sort( $expected );
+ sort( $actual );
+ $this->assertEquals( $actual, $expected );
+
+ $expected = array( 'event_two' );
+ $actual = $manager->getUserEnabledEventsBySections( $this->mockUser(), 'web', array( 'message' ) );
+ sort( $expected );
+ sort( $actual );
+ $this->assertEquals( $actual, $expected );
+
+ $expected = array( 'event_one', 'event_two', 'event_three', 'event_four' );
+ $actual = $manager->getUserEnabledEventsBySections( $this->mockUser(), 'web', array( 'message', 'alert' ) );
+ sort( $expected );
+ sort( $actual );
+ $this->assertEquals( $actual, $expected );
+ }
+
+ /**
+ * Mock object of User
+ */
+ protected function mockUser() {
+ $user = $this->getMockBuilder( 'User' )
+ ->disableOriginalConstructor()
+ ->getMock();
+ $user->expects( $this->any() )
+ ->method( 'getID' )
+ ->will( $this->returnValue( 1 ) );
+ $user->expects( $this->any() )
+ ->method( 'getOption' )
+ ->will( $this->returnValue( true ) );
+ $user->expects( $this->any() )
+ ->method( 'getGroups' )
+ ->will( $this->returnValue( array( 'echo_group' ) ) );
+ return $user;
+ }
+}
diff --git a/Echo/tests/phpunit/includes/BatchRowUpdateTest.php b/Echo/tests/phpunit/includes/BatchRowUpdateTest.php
new file mode 100644
index 00000000..c9956287
--- /dev/null
+++ b/Echo/tests/phpunit/includes/BatchRowUpdateTest.php
@@ -0,0 +1,244 @@
+<?php
+
+require_once __DIR__ . "/../../../includes/BatchRowUpdate.php";
+
+/**
+ * Tests for BatchRowUpdate and its components
+ * @group Echo
+ */
+class BatchRowUpdateTest extends MediaWikiTestCase {
+
+ public function testWriterBasicFunctionality() {
+ $db = $this->mockDb();
+ $writer = new EchoBatchRowWriter( $db, 'echo_event' );
+
+ $updates = array(
+ self::mockUpdate( array( 'something' => 'changed' ) ),
+ self::mockUpdate( array( 'otherthing' => 'changed' ) ),
+ self::mockUpdate( array( 'and' => 'something', 'else' => 'changed' ) ),
+ );
+
+ $db->expects( $this->exactly( count( $updates ) ) )
+ ->method( 'update' );
+
+ $writer->write( $updates );
+ }
+
+ static protected function mockUpdate( array $changes ) {
+ static $i = 0;
+ return array(
+ 'primaryKey' => array( 'event_id' => $i++ ),
+ 'changes' => $changes,
+ );
+ }
+
+ public function testReaderBasicIterate() {
+ $db = $this->mockDb();
+ $batchSize = 2;
+ $reader = new EchoBatchRowIterator( $db, 'some_table', 'id_field', $batchSize );
+
+ $response = $this->genSelectResult( $batchSize, /*numRows*/ 5, function() {
+ static $i = 0;
+ return array( 'id_field' => ++$i );
+ } );
+ $db->expects( $this->exactly( count( $response ) ) )
+ ->method( 'select' )
+ ->will( $this->consecutivelyReturnFromSelect( $response ) );
+
+ $pos = 0;
+ foreach ( $reader as $rows ) {
+ $this->assertEquals( $response[$pos], $rows, "Testing row in position $pos" );
+ $pos++;
+ }
+ // -1 is because the final array() marks the end and isnt included
+ $this->assertEquals( count( $response ) - 1, $pos );
+ }
+
+ static public function provider_readerGetPrimaryKey() {
+ $row = array(
+ 'id_field' => 42,
+ 'some_col' => 'dvorak',
+ 'other_col' => 'samurai',
+ );
+ return array(
+
+ array(
+ 'Must return single column pk when requested',
+ array( 'id_field' => 42 ),
+ $row
+ ),
+
+ array(
+ 'Must return multiple column pks when requested',
+ array( 'id_field' => 42, 'other_col' => 'samurai' ),
+ $row
+ ),
+
+ );
+ }
+
+ /**
+ * @dataProvider provider_readerGetPrimaryKey
+ */
+ public function testReaderGetPrimaryKey( $message, array $expected, array $row ) {
+ $reader = new EchoBatchRowIterator( $this->mockDb(), 'some_table', array_keys( $expected ), 8675309 );
+ $this->assertEquals( $expected, $reader->extractPrimaryKeys( (object) $row ), $message );
+ }
+
+ static public function provider_readerSetFetchColumns() {
+ return array(
+
+ array(
+ 'Must merge primary keys into select conditions',
+ // Expected column select
+ array( 'foo', 'bar' ),
+ // primary keys
+ array( 'foo' ),
+ // setFetchColumn
+ array( 'bar' )
+ ),
+
+ array(
+ 'Must not merge primary keys into the all columns selector',
+ // Expected column select
+ array( '*' ),
+ // primary keys
+ array( 'foo' ),
+ // setFetchColumn
+ array( '*' ),
+ ),
+
+ array(
+ 'Must not duplicate primary keys into column selector',
+ // Expected column select.
+ // TODO: figure out how to only assert the array_values portion and not the keys
+ array( 0 => 'foo', 1 => 'bar', 3 => 'baz' ),
+ // primary keys
+ array( 'foo', 'bar', ),
+ // setFetchColumn
+ array( 'bar', 'baz' ),
+ ),
+ );
+ }
+
+ /**
+ * @dataProvider provider_readerSetFetchColumns
+ */
+ public function testReaderSetFetchColumns( $message, array $columns, array $primaryKeys, array $fetchColumns ) {
+ $db = $this->mockDb();
+ $db->expects( $this->once() )
+ ->method( 'select' )
+ ->with( 'some_table', $columns ) // only testing second parameter of DatabaseBase::select
+ ->will( $this->returnValue( new ArrayIterator( array() ) ) );
+
+ $reader = new EchoBatchRowIterator( $db, 'some_table', $primaryKeys, 22 );
+ $reader->setFetchColumns( $fetchColumns );
+ // triggers first database select
+ $reader->rewind();
+ }
+
+ static public function provider_readerSelectConditions() {
+ return array(
+
+ array(
+ "With single primary key must generate id > 'value'",
+ // Expected second iteration
+ array( "( id_field > '3' )" ),
+ // Primary key(s)
+ 'id_field',
+ ),
+
+ array(
+ 'With multiple primary keys the first conditions must use >= and the final condition must use >',
+ // Expected second iteration
+ array( "( id_field = '3' AND foo > '103' ) OR ( id_field > '3' )" ),
+ // Primary key(s)
+ array( 'id_field', 'foo' ),
+ ),
+
+ );
+ }
+
+ /**
+ * Slightly hackish to use reflection, but asserting different parameters
+ * to consecutive calls of DatabaseBase::select in phpunit is error prone
+ *
+ * @dataProvider provider_readerSelectConditions
+ */
+ public function testReaderSelectConditionsMultiplePrimaryKeys( $message, $expectedSecondIteration, $primaryKeys, $batchSize = 3 ) {
+ $results = $this->genSelectResult( $batchSize, $batchSize * 3, function() {
+ static $i = 0, $j = 100, $k = 1000;
+ return array( 'id_field' => ++$i, 'foo' => ++$j, 'bar' => ++$k );
+ } );
+ $db = $this->mockDbConsecutiveSelect( $results );
+
+ $conditions = array( 'bar' => 42, 'baz' => 'hai' );
+ $reader = new EchoBatchRowIterator( $db, 'some_table', $primaryKeys, $batchSize );
+ $reader->addConditions( $conditions );
+
+ $buildConditions = new ReflectionMethod( $reader, 'buildConditions' );
+ $buildConditions->setAccessible( true );
+
+ // On first iteration only the passed conditions must be used
+ $this->assertEquals( $conditions, $buildConditions->invoke( $reader ),
+ 'First iteration must return only the conditions passed in addConditions' );
+ $reader->rewind();
+
+ // Second iteration must use the maximum primary key of last set
+ $this->assertEquals(
+ $conditions + $expectedSecondIteration,
+ $buildConditions->invoke( $reader ),
+ $message
+ );
+ }
+
+ protected function mockDbConsecutiveSelect( array $retvals ) {
+ $db = $this->mockDb();
+ $db->expects( $this->any() )
+ ->method( 'select' )
+ ->will( $this->consecutivelyReturnFromSelect( $retvals ) );
+ $db->expects( $this->any() )
+ ->method( 'addQuotes' )
+ ->will( $this->returnCallback( function( $value ) {
+ return "'$value'"; // not real quoting: doesn't matter in test
+ } ) );
+
+ return $db;
+ }
+
+ protected function consecutivelyReturnFromSelect( array $results ) {
+ $retvals = array();
+ foreach ( $results as $rows ) {
+ // The DatabaseBase::select method returns iterators, so we do too.
+ $retvals[] = $this->returnValue( new ArrayIterator( $rows ) );
+ }
+
+ return call_user_func_array( array( $this, 'onConsecutiveCalls' ), $retvals );
+ }
+
+
+ protected function genSelectResult( $batchSize, $numRows, $rowGenerator ) {
+ $res = array();
+ for ( $i = 0; $i < $numRows; $i += $batchSize ) {
+ $rows = array();
+ for ( $j = 0; $j < $batchSize && $i + $j < $numRows; $j++ ) {
+ $rows [] = (object) call_user_func( $rowGenerator );
+ }
+ $res[] = $rows;
+ }
+ $res[] = array(); // termination condition requires empty result for last row
+ return $res;
+ }
+
+ protected function mockDb() {
+ // Cant mock from DatabaseType or DatabaseBase, they dont
+ // have the full gamut of methods
+ $databaseMysql = $this->getMockBuilder( 'DatabaseMysql' )
+ ->disableOriginalConstructor()
+ ->getMock();
+ $databaseMysql->expects( $this->any() )
+ ->method( 'isOpen' )
+ ->will( $this->returnValue( true ) );
+ return $databaseMysql;
+ }
+}
diff --git a/Echo/tests/phpunit/includes/ContainmentSetTest.php b/Echo/tests/phpunit/includes/ContainmentSetTest.php
new file mode 100644
index 00000000..5c17f58f
--- /dev/null
+++ b/Echo/tests/phpunit/includes/ContainmentSetTest.php
@@ -0,0 +1,73 @@
+<?php
+
+/**
+ * @group Echo
+ */
+class ContainmentSetTest extends MediaWikiTestCase {
+
+ public function testGenericContains() {
+ $list = new EchoContainmentSet();
+
+ $list->addArray( array( 'foo', 'bar' ) );
+ $this->assertTrue( $list->contains( 'foo' ) );
+ $this->assertTrue( $list->contains( 'bar' ) );
+ $this->assertFalse( $list->contains( 'whammo' ) );
+
+ $list->addArray( array( 'whammo' ) );
+ $this->assertTrue( $list->contains( 'whammo' ) );
+ }
+
+ public function testCachedListInnerListIsOnlyCalledOnce() {
+
+ // the global $wgMemc during tests is an EmptyBagOStuff, so it
+ // wont do anything. We use a HashBagOStuff to get more like a real
+ // client
+ $innerCache = new HashBagOStuff;
+
+ $inner = array( 'bing', 'bang' );
+ // We use a mock instead of the real thing for the $this->once() assertion
+ // verifying that the cache doesn't just keep asking the inner object
+ $list = $this->getMockBuilder('EchoArrayList')
+ ->disableOriginalConstructor()
+ ->getMock();
+ $list->expects( $this->once() )
+ ->method( 'getValues' )
+ ->will( $this->returnValue( $inner ) );
+
+ $cached = new EchoCachedList( $innerCache, 'test_key', $list );
+
+ // First run through should hit the main list, and save to innerCache
+ $this->assertEquals( $inner, $cached->getValues() );
+ $this->assertEquals( $inner, $cached->getValues() );
+
+ // Reinitialize to get a fresh instance that will pull directly from
+ // innerCache without hitting the $list
+ $freshCached = new EchoCachedList( $innerCache, 'test_key', $list );
+ $this->assertEquals( $inner, $freshCached->getValues() );
+ }
+
+ /**
+ * @Database
+ */
+ public function testOnWikiList() {
+ $this->editPage( 'User:Foo/Bar-baz', "abc\ndef\r\nghi\n\n\n" );
+
+ $list = new EchoOnWikiList( NS_USER, "Foo/Bar-baz" );
+ $this->assertEquals(
+ array( 'abc', 'def', 'ghi' ),
+ $list->getValues()
+ );
+ }
+
+ public function testOnWikiListNonExistant() {
+ $list = new EchoOnWikiList( NS_USER, "Some_Non_Existant_Page" );
+ $this->assertEquals( array(), $list->getValues() );
+ }
+
+ protected function editPage( $pageName, $text, $summary = '', $defaultNs = NS_MAIN ) {
+ $title = Title::newFromText( $pageName, $defaultNs );
+ $page = WikiPage::factory( $title );
+
+ return $page->doEditContent( ContentHandler::makeContent( $text, $title ), $summary );
+ }
+}
diff --git a/Echo/tests/phpunit/includes/DiffParserTest.php b/Echo/tests/phpunit/includes/DiffParserTest.php
new file mode 100644
index 00000000..7db7de88
--- /dev/null
+++ b/Echo/tests/phpunit/includes/DiffParserTest.php
@@ -0,0 +1,190 @@
+<?php
+
+/**
+ * @group Echo
+ */
+class EchoDiffParserTest extends MediaWikiTestCase {
+
+ /**
+ * @dataProvider provider_getChangeSet
+ */
+ public function testGetChangeSet( $message, array $expect, $leftText, $rightText ) {
+ $changeSet = EchoDiscussionParser::getMachineReadableDiff( $leftText, $rightText );
+ unset( $changeSet['_info'] );
+ $this->assertEquals( $expect, $changeSet, $message );
+ }
+
+ static public function provider_getChangeSet() {
+ return array(
+
+ array(
+ 'Duplicate content must generate no changes',
+ // Expected change set
+ array(),
+ // Left text
+ "a\nb\nc",
+ // Right text
+ "a\nb\nc",
+ ),
+
+ array(
+ 'Removing blank lines must generate no changes',
+ // Expected change set
+ array(),
+ // Left text
+ "a\n\nb\n\nc",
+ // Right text
+ "a\nb\nc\n",
+ ),
+
+ array(
+ 'Must generate a single add change with only lines added',
+ // Expected change set
+ array( self::mockAction( 'add', "foo\nbar", 1 ) ),
+ // Left
+ "something",
+ // Right
+ "foo\nbar\nsomething",
+ ),
+
+ array(
+ 'Must generate a single subtract change with only lines subtracted',
+ // Expected change set
+ array( self::mockAction( 'subtract', "Zomg\nHiHiHi", 2 ) ),
+ // Left
+ "dummy\nZomg\nHiHiHi",
+ // Right
+ "dummy",
+ ),
+
+ array(
+ 'Adding content seperated by no change must generate multiple changes',
+ // Expected change set
+ array(
+ self::mockAction( 'add', 'b1', 3 ),
+ self::mockAction( 'add', "d1\nd2", 5, 6 ),
+ ),
+ // Left text
+ "a\nb\nc\nd\ne\nf",
+ // Right text
+ "a\nb\nb1\nc\nd\nd1\nd2\ne\nf",
+ ),
+
+ array(
+ 'Extra blank lines on the edges must be trimmed',
+ // Expected change set
+ array( self::mockAction( 'add', "Zomg\nHiHiHi", 1 ) ),
+ // Left text
+ "",
+ // Right text
+ "\nZomg\nHiHiHi\n",
+ ),
+
+ array(
+ 'Extra blank lines inside the content must not be trimmed',
+ // Expected change set
+ array( self::mockAction( 'add', "\nZomg\nHiHiHi\n", 2 ) ),
+ // Left text
+ "foo\nbar",
+ // Right text
+ "foo\n\nZomg\nHiHiHi\n\nbar",
+ ),
+
+ array(
+ 'A blank line replaced with content must be an add',
+ // Expected change set
+ array( self::mockAction( 'add', 'cowbell', 1 ) ),
+ // Left Text
+ "",
+ // Right Text
+ "cowbell",
+ ),
+
+ array(
+ 'A blanked out line must be a subtraction',
+ // Expected change set
+ array( self::mockAction( 'subtract', 'cowbell', 1 ) ),
+ // Left text
+ "cowbell",
+ // Right text
+ "",
+ ),
+
+ array(
+ 'A line with its content replaced must be a change',
+ // Expected change set
+ array( self::mockChange( 'Its all about the journey', 'dummy', 1 ) ),
+ // Left text
+ "Its all about the journey",
+ // Right text
+ "dummy",
+ ),
+
+ array(
+ 'Changing lines and adding more must result in two changes',
+ // Expected change set
+ array(
+ self::mockChange( 'Must be in a hurry to finish this thing', 'Must be in a hurry', 1 ),
+ self::mockAction( 'add', 'Finish this thing', 2 ),
+ ),
+ // Left text
+ "Must be in a hurry to finish this thing",
+ // Right text
+ "Must be in a hurry\nFinish this thing",
+ ),
+
+ array(
+ 'Changing multiple lines and adding more must result in two changes',
+ // Expected change set
+ array(
+ self::mockChange( "Must not be\nin much of a hurry", "Must be\nin a hurry", 2 ),
+ self::mockAction( 'subtract', "to finish\nthis thing", 4 ),
+ ),
+ // Left text
+ "abc\nMust not be\nin much of a hurry\nto finish\nthis thing",
+ // Right text
+ "abc\nMust be\nin a hurry",
+ ),
+
+ array(
+ 'Must generate multiple add, change, and subtract actions',
+ // Expected change set
+ array(
+ self::mockChange( "abc\nSome", "Other\nThings", 1 ),
+ self::mockAction( 'subtract', "Stuff", 3 ),
+ self::mockChange( "And\nThen", "There\nWas", 6, 5 ),
+ self::mockAction( 'add', 'Fencing', 8, 7 ),
+ ),
+ // Left text
+ "abc\nSome\nStuff\ndef\nghi\nAnd\nThen\njkl\nmno",
+ // Right text
+ "\nOther\nThings\ndef\nghi\nThere\nWas\nFencing\njkl\nmno",
+ ),
+ );
+ }
+
+ static protected function mockAction( $action, $content, $left, $right = null ) {
+ if ( $right === null ) {
+ $right = $left;
+ }
+ return array(
+ 'action' => $action,
+ 'content' => $content,
+ 'left-pos' => $left,
+ 'right-pos' => $right,
+ );
+ }
+
+ static public function mockChange( $oldContent, $newContent, $left, $right = null ) {
+ if ( $right === null ) {
+ $right = $left;
+ }
+ return array(
+ 'action' => 'change',
+ 'old_content' => $oldContent,
+ 'new_content' => $newContent,
+ 'left-pos' => $left,
+ 'right-pos' => $right,
+ );
+ }
+}
diff --git a/Echo/tests/phpunit/includes/DiscussionParserTest.php b/Echo/tests/phpunit/includes/DiscussionParserTest.php
new file mode 100644
index 00000000..0b9f3c12
--- /dev/null
+++ b/Echo/tests/phpunit/includes/DiscussionParserTest.php
@@ -0,0 +1,1084 @@
+<?php
+
+/**
+ * @group Echo
+ * @group Database
+ */
+class EchoDiscussionParserTest extends MediaWikiTestCase {
+ /**
+ * @var array
+ */
+ protected $tablesUsed = array( 'user', 'revision', 'text', 'page' );
+
+ /**
+ * Users used in these tests: signature extraction, mentioned users, ... all
+ * assume a user exists.
+ *
+ * @var array [username => [user preference => preference value]]
+ */
+ protected $testUsers = array(
+ // username
+ 'Werdna' => array(
+ // user preferences
+ 'nickname' => '',
+ 'fancysig' => '0',
+ ),
+ 'Werdna2' => array(
+ 'nickname' => '[[User:Werdna2|Andrew]]',
+ 'fancysig' => '1',
+ ),
+ 'Werdna3' => array(
+ 'nickname' => '[[User talk:Werdna3|Andrew]]',
+ 'fancysig' => '1',
+ ),
+ 'Werdna4' => array(
+ 'nickname' => '[[User:Werdna4|wer]dna]]',
+ 'fancysig' => '1',
+ ),
+ 'We buried our secrets in the garden' => array(
+ 'nickname' => '[[User talk:We buried our secrets in the garden#top|wbositg]]',
+ 'fancysig' => '1',
+ ),
+ 'I Heart Spaces' => array(
+ 'nickname' => '[[User:I_Heart_Spaces]] ([[User_talk:I_Heart_Spaces]])',
+ 'fancysig' => '1',
+ ),
+ 'Jam' => array(
+ 'nickname' => '[[User:Jam]]',
+ 'fancysig' => '1',
+ ),
+ 'Reverta-me' => array(
+ 'nickname' => "[[User:Reverta-me|<span style=\"font-size:13px; color:blue;font-family:Lucida Handwriting;text-shadow:aqua 5px 3px 12px;\">Aaaaa Bbbbbbb</span>]]'' <sup>[[User Talk:Reverta-me|<font color=\"gold\" face=\"Lucida Calligraphy\">Discussão</font>]]</sup>''",
+ 'fancysig' => '1',
+ ),
+ 'Jorm' => array(
+ 'nickname' => '',
+ 'fancysig' => '0',
+ ),
+ 'Jdforrester' => array(
+ 'nickname' => '',
+ 'fancysig' => '0',
+ ),
+ 'DarTar' => array(
+ 'nickname' => '',
+ 'fancysig' => '0',
+ ),
+ 'Bsitu' => array(
+ 'nickname' => '',
+ 'fancysig' => '0',
+ ),
+ 'JarJar' => array(
+ 'nickname' => '',
+ 'fancysig' => '0',
+ ),
+ 'Schnark' => array(
+ 'nickname' => '[[Benutzer:Schnark]] ([[Benutzer:Schnark/js|js]])',
+ 'fancysig' => '1',
+ ),
+ 'Cwobeel' => array(
+ 'nickname' => '[[User:Cwobeel|<span style="color:#339966">Cwobeel</span>]] [[User_talk:Cwobeel|<span style="font-size:80%">(talk)</span>]]',
+ 'fancysig' => '1',
+ ),
+ 'Bob K31416' => array(
+ 'nickname' => '',
+ 'fancysig' => '0',
+ ),
+ 'X" onclick="alert(\'XSS\');" title="y' => array(
+ 'nickname' => '',
+ 'fancysig' => '0',
+ ),
+ 'He7d3r' => array(
+ 'nickname' => '',
+ 'fancysig' => '0',
+ ),
+ 'PauloEduardo' => array(
+ 'nickname' => "[[User:PauloEduardo|<span style=\"font-size:13px; color:blue;font-family:Lucida Handwriting;text-shadow:aqua 5px 3px 12px;\">Paulo Eduardo</span>]]'' <sup>[[User Talk:PauloEduardo|<font color=\"gold\" face=\"Lucida Calligraphy\">Discussão</font>]]</sup>''",
+ 'fancysig' => '1',
+ ),
+ 'PatHadley' => array(
+ 'nickname' => '',
+ 'fancysig' => '0',
+ ),
+ 'Samwalton9' => array(
+ 'nickname' => '',
+ 'fancysig' => '0',
+ ),
+ 'Kudpung' => array(
+ 'nickname' => '[[User:Kudpung|Kudpung กุดผึ้ง]] ([[User talk:Kudpung#top|talk]])',
+ 'fancysig' => '1',
+ ),
+ 'Jim Carter' => array(
+ 'nickname' => '',
+ 'fancysig' => '0',
+ ),
+ 'Buster7' => array(
+ 'nickname' => '',
+ 'fancysig' => '0',
+ ),
+ );
+
+ protected function setUp() {
+ parent::setUp();
+
+ // we only need to add these users once, we won't (can't) tear them down anyway
+ static $executed = false;
+ if ( $executed === true ) {
+ return;
+ }
+
+ foreach ( $this->testUsers as $username => $preferences ) {
+ $user = User::createNew( $username );
+
+ // set signature preferences
+ if ( $user ) {
+ foreach ( $preferences as $option => $value ) {
+ $user->setOption( $option, $value );
+ }
+ $user->saveSettings();
+ }
+ }
+
+ $executed = true;
+ }
+
+ protected function tearDown() {
+ parent::tearDown();
+
+ global $wgHooks;
+ unset( $wgHooks['BeforeEchoEventInsert'][999] );
+ }
+
+ public function generateEventsForRevisionData() {
+ return array(
+ array(
+ 'new' => 637638133,
+ 'old' => 637637213,
+ 'username' => 'Cwobeel',
+ 'lang' => 'en',
+ 'pages' => array(
+ // pages expected to exist (e.g. templates to be expanded)
+ 'Template:u' => '[[User:{{{1}}}|{{<includeonly>safesubst:</includeonly>#if:{{{2|}}}|{{{2}}}|{{{1}}}}}]]<noinclude>{{documentation}}</noinclude>',
+ ),
+ 'title' => 'UTPage', // can't remember, not important here
+ 'expected' => array(
+ // events expected to be fired going from old revision to new
+ array(
+ 'type' => 'mention',
+ 'agent' => 'Cwobeel',
+ /*
+ * I wish I could also compare EchoEvent::$extra data to
+ * compare user ids of mentioned users. However, due to
+ * How PHPUnit works, setUp won't be run by the time
+ * this dataset is generated, so we don't yet know the
+ * user ids of the folks we're about to insert...
+ * I'll skip that part for now.
+ */
+ ),
+ ),
+ ),
+ array(
+ 'new' => 138275105,
+ 'old' => 138274875,
+ 'username' => 'Schnark',
+ 'lang' => 'de',
+ 'pages' => array(),
+ 'title' => 'UTPage', // can't remember, not important here
+ 'expected' => array(
+ array(
+ 'type' => 'mention',
+ 'agent' => 'Schnark',
+ ),
+ ),
+ ),
+ array(
+ 'new' => 40610292,
+ 'old' => 40608353,
+ 'username' => 'PauloEduardo',
+ 'lang' => 'pt',
+ 'pages' => array(
+ 'Predefinição:U' => '[[User:{{{1|<noinclude>Exemplo</noinclude>}}}|{{{{{|safesubst:}}}#if:{{{2|}}}|{{{2}}}|{{{1|<noinclude>Exemplo</noinclude>}}}}}]]<noinclude>{{Atalho|Predefinição:U}}{{Documentação|Predefinição:Usuário/doc}}</noinclude>',
+ ),
+ 'title' => 'UTPage', // can't remember, not important here
+ 'expected' => array(
+ array(
+ 'type' => 'mention',
+ 'agent' => 'PauloEduardo',
+ ),
+ ),
+ ),
+ array(
+ 'new' => 646792804,
+ 'old' => 646790570,
+ 'username' => 'PatHadley',
+ 'lang' => 'en',
+ 'pages' => array(
+ 'Template:ping' => '{{SAFESUBST:<noinclude />#if:{{{1|<noinclude>$</noinclude>}}}
+ |<span class="template-ping">@[[:User:{{SAFESUBST:<noinclude />BASEPAGENAME:{{{1|Example}}}}}|{{SAFESUBST:<noinclude />BASEPAGENAME:{{{label1|{{{1|Example}}}}}}}}]]{{SAFESUBST:<noinclude />#if:{{{2|}}}
+ |, [[:User:{{SAFESUBST:<noinclude />BASEPAGENAME:{{{2|Example}}}}}|{{SAFESUBST:<noinclude />BASEPAGENAME:{{{label2|{{{2|Example}}}}}}}}]]{{SAFESUBST:<noinclude />#if:{{{3|}}}
+ |, [[:User:{{SAFESUBST:<noinclude />BASEPAGENAME:{{{3|Example}}}}}|{{SAFESUBST:<noinclude />BASEPAGENAME:{{{label3|{{{3|Example}}}}}}}}]]{{SAFESUBST:<noinclude />#if:{{{4|}}}
+ |, [[:User:{{SAFESUBST:<noinclude />BASEPAGENAME:{{{4|Example}}}}}|{{SAFESUBST:<noinclude />BASEPAGENAME:{{{label4|{{{4|Example}}}}}}}}]]{{SAFESUBST:<noinclude />#if:{{{5|}}}
+ |, [[:User:{{SAFESUBST:<noinclude />BASEPAGENAME:{{{5|Example}}}}}|{{SAFESUBST:<noinclude />BASEPAGENAME:{{{label5|{{{5|Example}}}}}}}}]]{{SAFESUBST:<noinclude />#if:{{{6|}}}
+ |, [[:User:{{SAFESUBST:<noinclude />BASEPAGENAME:{{{6|Example}}}}}|{{SAFESUBST:<noinclude />BASEPAGENAME:{{{label6|{{{6|Example}}}}}}}}]]{{SAFESUBST:<noinclude />#if:{{{7|}}}
+ |, [[:User:{{SAFESUBST:<noinclude />BASEPAGENAME:{{{7|Example}}}}}|{{SAFESUBST:<noinclude />BASEPAGENAME:{{{label7|{{{7|Example}}}}}}}}]]
+ }}
+ }}
+ }}
+ }}
+ }}
+ }}{{{p|:}}}</span>
+ |{{SAFESUBST:<noinclude />Error|Error in [[Template:Replyto]]: Username not given.}}
+}}<noinclude>
+
+{{documentation}}
+</noinclude>',
+ 'MediaWiki:Signature' => '[[User:$1|$2]] {{#ifeq:{{FULLPAGENAME}}|User talk:$1|([[User talk:$1#top|talk]])|([[User talk:$1|talk]])}}',
+ ),
+ 'title' => 'User_talk:PatHadley',
+ 'expected' => array(
+ array(
+ 'type' => 'mention',
+ 'agent' => 'PatHadley',
+ ),
+ array(
+ 'type' => 'edit-user-talk',
+ 'agent' => 'PatHadley',
+ ),
+ ),
+ 'precondition' => 'isParserFunctionsInstalled',
+ ),
+ array(
+ 'new' => 647260329,
+ 'old' => 647258025,
+ 'username' => 'Kudpung',
+ 'lang' => 'en',
+ 'pages' => array(
+ 'Template:U' => '[[User:{{{1}}}|{{<includeonly>safesubst:</includeonly>#if:{{{2|}}}|{{{2}}}|{{{1}}}}}]]<noinclude>{{documentation}}</noinclude>',
+ ),
+ 'title' => 'User_talk:Kudpung',
+ 'expected' => array(
+ array(
+ 'type' => 'mention',
+ 'agent' => 'Kudpung',
+ ),
+ array(
+ 'type' => 'edit-user-talk',
+ 'agent' => 'Kudpung',
+ ),
+ ),
+ ),
+ );
+ }
+
+ /**
+ * @dataProvider generateEventsForRevisionData
+ */
+ public function testGenerateEventsForRevision( $newId, $oldId, $username, $lang, $pages, $title, $expected, $precondition = '' ) {
+ if ( $precondition !== '' ) {
+ $result = $this->$precondition();
+ if ( $result !== true ) {
+ $this->markTestSkipped( $result );
+ return;
+ }
+ }
+
+ $this->setMwGlobals( array(
+ // this global is used by the code that interprets the namespace part of
+ // titles (Title::getTitleParser), so should be the fake language ;)
+ 'wgContLang' => Language::factory( $lang ),
+ // this one allows Mediawiki:xyz pages to be set as messages
+ 'wgUseDatabaseMessages' => true
+ ) );
+
+ // pages to be created: templates may be used to ping users (e.g.
+ // {{u|...}}) but if we don't have that template, it just won't work!
+ $pages += array( $title => '' );
+ foreach ( $pages as $pageTitle => $pageText ) {
+ $template = WikiPage::factory( Title::newFromText( $pageTitle ) );
+ $template->doEditContent( new WikitextContent( $pageText ), '' );
+ }
+
+ // force i18n messages to be reloaded (from DB, where a new message
+ // might have been created as page)
+ MessageCache::destroyInstance();
+
+ // grab revision excerpts (didn't include them in this src file because
+ // they can be pretty long)
+ $oldText = file_get_contents( __DIR__ . '/revision_txt/' . $oldId . '.txt' );
+ $newText = file_get_contents( __DIR__ . '/revision_txt/' . $newId . '.txt' );
+
+ // revision texts can be in different languages, where links etc are
+ // different (e.g. User: becomes Benutzer: in German), so let's pretend
+ // the page they belong to is from that language
+ $title = Title::newFromText( $title );
+ $object = new ReflectionObject( $title );
+ $property = $object->getProperty( 'mDbPageLanguage' );
+ $property->setAccessible( true );
+ $property->setValue( $title, $lang );
+
+ // create stub Revision object
+ $row = array(
+ 'id' => $newId,
+ 'user_text' => $username,
+ 'user' => User::newFromName( $username )->getId(),
+ 'parent_id' => $oldId,
+ 'text' => $newText,
+ 'title' => $title,
+ );
+ $revision = Revision::newFromRow( $row );
+
+ // generate diff between 2 revisions
+ $changes = EchoDiscussionParser::getMachineReadableDiff( $oldText, $newText );
+ $output = EchoDiscussionParser::interpretDiff( $changes, $revision->getUserText(), $title );
+
+ // store diff in some local cache var, to circumvent
+ // EchoDiscussionParser::getChangeInterpretationForRevision's attempt to
+ // retrieve parent revision from DB
+ $class = new ReflectionClass( 'EchoDiscussionParser' );
+ $property = $class->getProperty( 'revisionInterpretationCache' );
+ $property->setAccessible( true );
+ $property->setValue( array( $revision->getId() => $output ) );
+
+ // to catch the generated event, I'm going to attach a callback to the
+ // hook that's being run just prior to sending the notifications out
+ $events = array();
+ $callback = function( EchoEvent $event ) use ( &$events ) {
+ $events[] = array(
+ 'type' => $event->getType(),
+ 'agent' => $event->getAgent()->getName(),
+ );
+
+ // don't let the event go out, abort from within this hook
+ return false;
+ };
+
+ // can't use setMwGlobals here, so I'll just re-attach to the same key
+ // for every dataProvider value (and don't worry, I'm removing it on
+ // tearDown too - I just felt the attaching should be happening here
+ // instead of on setUp, or code would get too messy)
+ global $wgHooks;
+ $wgHooks['BeforeEchoEventInsert'][999] = $callback;
+
+ // finally, dear god, start generating the events already!
+ EchoDiscussionParser::generateEventsForRevision( $revision );
+
+ $this->assertEquals( $expected, $events );
+ }
+
+ // TODO test cases for:
+ // - stripHeader
+ // - stripIndents
+ // - stripSignature
+ // - getNotifiedUsersForComment
+
+ public function testDiscussionParserAcceptsInternalDiff() {
+ global $wgDiff;
+
+ $origWgDiff = $wgDiff;
+ $wgDiff = '/does/not/exist/or/at/least/we/hope/not';
+ try {
+ $res = EchoDiscussionParser::getMachineReadableDiff(
+ <<<TEXT
+line 1
+line 2
+line 3
+line 4
+TEXT
+ ,
+ <<<TEXT
+line 1
+line c
+line 4
+TEXT
+ );
+ } catch ( MWException $e ) {
+ $wgDiff = $origWgDiff;
+ throw $e;
+ }
+ $wgDiff = $origWgDiff;
+
+ // Test failure occurs when MWException is thrown due to parsing failure
+ $this->assertTrue( true );
+ }
+
+ public function testTimestampRegex() {
+ $exemplarTimestamp = self::getExemplarTimestamp();
+ $timestampRegex = EchoDiscussionParser::getTimestampRegex();
+
+ $match = preg_match( '/' . $timestampRegex . '/u', $exemplarTimestamp );
+ $this->assertEquals( 1, $match );
+ }
+
+ public function testGetTimestampPosition() {
+ $line = 'Hello World. '. self::getExemplarTimestamp();
+ $pos = EchoDiscussionParser::getTimestampPosition( $line );
+ $this->assertEquals( 13, $pos );
+ }
+
+ /**
+ * @dataProvider signingDetectionData
+ * FIXME some of the app logic is in the test...
+ */
+ public function testSigningDetection( $line, $expectedUser ) {
+ if ( !EchoDiscussionParser::isSignedComment( $line ) ) {
+ $this->assertEquals( $expectedUser, false );
+ return;
+ }
+
+ $output = EchoDiscussionParser::getUserFromLine( $line );
+
+ if ( $output === false ) {
+ $this->assertEquals( false, $expectedUser );
+ } elseif ( is_array( $expectedUser ) ) {
+ // Sometimes testing for correct user detection,
+ // sometimes testing for offset detection
+ $this->assertEquals( $expectedUser, $output );
+ } else {
+ $this->assertEquals( $expectedUser, $output[1] );
+ }
+ }
+
+ public function signingDetectionData() {
+ $ts = self::getExemplarTimestamp();
+ return array(
+ // Basic
+ array(
+ "I like this. [[User:Werdna|Werdna]] ([[User talk:Werdna|talk]]) $ts",
+ array(
+ 13,
+ 'Werdna'
+ ),
+ ),
+ // Confounding
+ array(
+ "[[User:Jorm]] is a meanie. --[[User:Werdna2|Andrew]] $ts",
+ array(
+ 29,
+ "Werdna2"
+ ),
+ ),
+ // Talk page link only
+ array(
+ "[[User:Swalling|Steve]] is the best person I have ever met. --[[User talk:Werdna3|Andrew]] $ts",
+ array(
+ 62,
+ 'Werdna3'
+ ),
+ ),
+ // Anonymous user
+ array(
+ "I am anonymous because I like my IP address. --[[Special:Contributions/127.0.0.1|127.0.0.1]] $ts",
+ array(
+ 47,
+ '127.0.0.1'
+ ),
+ ),
+ // No signature
+ array(
+ "Well, \nI do think that [[User:Newyorkbrad]] is pretty cool, but what do I know?",
+ false
+ ),
+ // Hash symbols in usernames
+ array(
+ "What do you think? [[User talk:We buried our secrets in the garden#top|wbositg]] $ts",
+ array(
+ 19,
+ 'We buried our secrets in the garden'
+ ),
+ ),
+ // Title that gets normalized different than it is provided in the wikitext
+ array(
+ "Beep boop [[User:I_Heart_Spaces]] ([[User_talk:I_Heart_Spaces]]) $ts",
+ array(
+ strlen( "Beep boop " ),
+ 'I Heart Spaces'
+ ),
+ ),
+ // Accepts ] in the pipe
+ array(
+ "Shake n Bake --[[User:Werdna4|wer]dna]] $ts",
+ array(
+ strlen( "Shake n Bake --" ),
+ 'Werdna4',
+ ),
+ ),
+
+ array(
+ "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxã? [[User:Jam]] $ts",
+ array(
+ strlen( "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxã? " ),
+ "Jam"
+ ),
+ ),
+ // extra long signature
+ array(
+ "{{U|He7d3r}}, xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxã? [[User:Reverta-me|<span style=\"font-size:13px; color:blue;font-family:Lucida Handwriting;text-shadow:aqua 5px 3px 12px;\">Aaaaa Bbbbbbb</span>]]'' <sup>[[User Talk:Reverta-me|<font color=\"gold\" face=\"Lucida Calligraphy\">Discussão</font>]]</sup>''",
+ array(
+ strlen( "{{U|He7d3r}}, xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxã? " ),
+ 'Reverta-me',
+ ),
+ ),
+ // Bug: T87852
+ array(
+ "Test --[[Benutzer:Schnark]] ([[Benutzer:Schnark/js|js]])",
+ array(
+ strlen( "Test --" ),
+ 'Schnark',
+ ),
+ ),
+ // when adding additional tests, make sure to add the non-anon users
+ // to EchoDiscussionParserTest::$testusers - the DiscussionParser
+ // needs the users to exist, because it'll generate a comparison
+ // signature, which is different when the user is considered anon
+ );
+ }
+
+ /** @dataProvider diffData */
+ public function testDiff( $oldText, $newText, $expected ) {
+ $actual = EchoDiscussionParser::getMachineReadableDiff( $oldText, $newText );
+ unset( $actual['_info'] );
+ unset( $expected['_info'] );
+
+ $this->assertEquals( $expected, $actual );
+ }
+
+ public function diffData() {
+ return array(
+ array(
+ <<<TEXT
+line 1
+line 2
+line 3
+line 4
+TEXT
+ ,<<<TEXT
+line 1
+line 3
+line 4
+TEXT
+ ,
+ array( array(
+ 'action' => 'subtract',
+ 'content' => 'line 2',
+ 'left-pos' => 2,
+ 'right-pos' => 2,
+ ) )
+ ),
+ array(
+ <<<TEXT
+line 1
+line 2
+line 3
+line 4
+TEXT
+ ,<<<TEXT
+line 1
+line 2
+line 2.5
+line 3
+line 4
+TEXT
+ ,
+ array( array(
+ 'action' => 'add',
+ 'content' => 'line 2.5',
+ 'left-pos' => 3,
+ 'right-pos' => 3,
+ ) )
+ ),
+ array(
+ <<<TEXT
+line 1
+line 2
+line 3
+line 4
+TEXT
+ ,<<<TEXT
+line 1
+line b
+line 3
+line 4
+TEXT
+ ,
+ array( array(
+ 'action' => 'change',
+ 'old_content' => 'line 2',
+ 'new_content' => 'line b',
+ 'left-pos' => 2,
+ 'right-pos' => 2,
+ ) )
+ ),
+ array(
+ <<<TEXT
+line 1
+line 2
+line 3
+line 4
+TEXT
+ ,<<<TEXT
+line 1
+line b
+line c
+line d
+line 3
+line 4
+TEXT
+ ,
+ array(
+ array(
+ 'action' => 'change',
+ 'old_content' => 'line 2',
+ 'new_content' => 'line b',
+ 'left-pos' => 2,
+ 'right-pos' => 2,
+ ),
+ array(
+ 'action' => 'add',
+ 'content' => 'line c
+line d',
+ 'left-pos' => 3,
+ 'right-pos' => 3,
+ ),
+ ),
+ ),
+ );
+ }
+
+ /** @dataProvider annotationData */
+ public function testAnnotation( $message, $diff, $user, $expectedAnnotation ) {
+ $actual = EchoDiscussionParser::interpretDiff( $diff, $user );
+ $this->assertEquals( $expectedAnnotation, $actual, $message );
+ }
+
+ public function annotationData() {
+ $ts = self::getExemplarTimestamp();
+
+ return array(
+
+ array(
+ 'Must detect added comments',
+ // Diff
+ array(
+ // Action
+ array(
+ 'action' => 'add',
+ 'content' => ":What do you think? [[User:Werdna|Werdna]] ([[User talk:Werdna|talk]]) $ts",
+ 'left-pos' => 3,
+ 'right-pos' => 3,
+ ),
+ '_info' => array(
+ 'lhs' => array(
+ '== Section 1 ==',
+ "I do not like you. [[User:Jorm|Jorm]] ([[User talk:Jorm|talk]]) $ts",
+ ),
+ 'rhs' => array(
+ '== Section 1 ==',
+ "I do not like you. [[User:Jorm|Jorm]] ([[User talk:Jorm|talk]]) $ts",
+ ":What do you think? [[User:Werdna|Werdna]] ([[User talk:Werdna|talk]]) $ts",
+ ),
+ ),
+ ),
+ // User
+ 'Werdna',
+ // Expected annotation
+ array(
+ array(
+ 'type' => 'add-comment',
+ 'content' => ":What do you think? [[User:Werdna|Werdna]] ([[User talk:Werdna|talk]]) $ts",
+ 'full-section' => <<<TEXT
+== Section 1 ==
+I do not like you. [[User:Jorm|Jorm]] ([[User talk:Jorm|talk]]) $ts
+:What do you think? [[User:Werdna|Werdna]] ([[User talk:Werdna|talk]]) $ts
+TEXT
+ ),
+ ),
+ ),
+
+ array(
+ 'Full Section must not include the following pre-existing section',
+ // Diff
+ array(
+ // Action
+ array(
+ 'action' => 'add',
+ 'content' => ":What do you think? [[User:Werdna|Werdna]] ([[User talk:Werdna|talk]]) $ts",
+ 'left-pos' => 3,
+ 'right-pos' => 3,
+ ),
+ '_info' => array(
+ 'lhs' => array(
+ '== Section 1 ==',
+ "I do not like you. [[User:Jorm|Jorm]] ([[User talk:Jorm|talk]]) $ts",
+ '== Section 2 ==',
+ "Well well well. [[User:DarTar|DarTar]] ([[User talk:DarTar|talk]]) $ts",
+ ),
+ 'rhs' => array(
+ '== Section 1 ==',
+ "I do not like you. [[User:Jorm|Jorm]] ([[User talk:Jorm|talk]]) $ts",
+ ":What do you think? [[User:Werdna|Werdna]] ([[User talk:Werdna|talk]]) $ts",
+ '== Section 2 ==',
+ "Well well well. [[User:DarTar|DarTar]] ([[User talk:DarTar|talk]]) $ts",
+ ),
+ ),
+ ),
+ // User
+ 'Werdna',
+ // Expected annotation
+ array(
+ array(
+ 'type' => 'add-comment',
+ 'content' => ":What do you think? [[User:Werdna|Werdna]] ([[User talk:Werdna|talk]]) $ts",
+ 'full-section' => <<<TEXT
+== Section 1 ==
+I do not like you. [[User:Jorm|Jorm]] ([[User talk:Jorm|talk]]) $ts
+:What do you think? [[User:Werdna|Werdna]] ([[User talk:Werdna|talk]]) $ts
+TEXT
+ ),
+ ),
+ ),
+
+ array(
+ 'Must detect new-section-with-comment when a new section is added',
+ // Diff
+ array(
+ // Action
+ array(
+ 'action' => 'add',
+ 'content' => <<<TEXT
+== Section 1a ==
+Hmmm? [[User:Jdforrester|Jdforrester]] ([[User talk:Jdforrester|talk]]) $ts
+TEXT
+ ,
+ 'left-pos' => 4,
+ 'right-pos' => 4,
+ ),
+ '_info' => array(
+ 'lhs' => array(
+ '== Section 1 ==',
+ "I do not like you. [[User:Jorm|Jorm]] ([[User talk:Jorm|talk]]) $ts",
+ ":What do you think? [[User:Werdna|Werdna]] ([[User talk:Werdna|talk]]) $ts",
+ '== Section 2 ==',
+ "Well well well. [[User:DarTar|DarTar]] ([[User talk:DarTar|talk]]) $ts",
+ ),
+ 'rhs' => array(
+ '== Section 1 ==',
+ "I do not like you. [[User:Jorm|Jorm]] ([[User talk:Jorm|talk]]) $ts",
+ ":What do you think? [[User:Werdna|Werdna]] ([[User talk:Werdna|talk]]) $ts",
+ '== Section 1a ==',
+ 'Hmmm? [[User:Jdforrester|Jdforrester]] ([[User talk:Jdforrested|talk]]) $ts',
+ '== Section 2 ==',
+ "Well well well. [[User:DarTar|DarTar]] ([[User talk:DarTar|talk]]) $ts",
+ ),
+ ),
+ ),
+ // User
+ 'Jdforrester',
+ // Expected annotation
+ array(
+ array(
+ 'type' => 'new-section-with-comment',
+ 'content' => <<<TEXT
+== Section 1a ==
+Hmmm? [[User:Jdforrester|Jdforrester]] ([[User talk:Jdforrester|talk]]) $ts
+TEXT
+ ,
+ ),
+ ),
+ ),
+
+ array(
+ 'Must detect multiple added comments when multiple sections are edited',
+ EchoDiscussionParser::getMachineReadableDiff(
+ <<<TEXT
+== Section 1 ==
+I do not like you. [[User:Jorm|Jorm]] ([[User talk:Jorm|talk]]) $ts
+:What do you think? [[User:Werdna|Werdna]] ([[User talk:Werdna|talk]]) $ts
+== Section 2 ==
+Well well well. [[User:DarTar|DarTar]] ([[User talk:DarTar|talk]]) $ts
+== Section 3 ==
+Hai [[User:Bsitu|Bsitu]] ([[User talk:Bsitu|talk]]) $ts
+TEXT
+ ,
+ <<<TEXT
+== Section 1 ==
+I do not like you. [[User:Jorm|Jorm]] ([[User talk:Jorm|talk]]) $ts
+:What do you think? [[User:Werdna|Werdna]] ([[User talk:Werdna|talk]]) $ts
+:New Comment [[User:JarJar|JarJar]] ([[User talk:JarJar|talk]]) $ts
+== Section 2 ==
+Well well well. [[User:DarTar|DarTar]] ([[User talk:DarTar|talk]]) $ts
+== Section 3 ==
+Hai [[User:Bsitu|Bsitu]] ([[User talk:Bsitu|talk]]) $ts
+:Other New Comment [[User:JarJar|JarJar]] ([[User talk:JarJar|talk]]) $ts
+TEXT
+ ),
+ // User
+ 'JarJar',
+ // Expected annotation
+ array(
+ array(
+ 'type' => 'add-comment',
+ 'content' => ":New Comment [[User:JarJar|JarJar]] ([[User talk:JarJar|talk]]) $ts",
+ 'full-section' => <<<TEXT
+== Section 1 ==
+I do not like you. [[User:Jorm|Jorm]] ([[User talk:Jorm|talk]]) $ts
+:What do you think? [[User:Werdna|Werdna]] ([[User talk:Werdna|talk]]) $ts
+:New Comment [[User:JarJar|JarJar]] ([[User talk:JarJar|talk]]) $ts
+TEXT
+ ),
+ array(
+ 'type' => 'add-comment',
+ 'content' => ":Other New Comment [[User:JarJar|JarJar]] ([[User talk:JarJar|talk]]) $ts",
+ 'full-section' => <<<TEXT
+== Section 3 ==
+Hai [[User:Bsitu|Bsitu]] ([[User talk:Bsitu|talk]]) $ts
+:Other New Comment [[User:JarJar|JarJar]] ([[User talk:JarJar|talk]]) $ts
+TEXT
+ ),
+ ),
+ ),
+
+ array(
+ 'Bug T78424',
+ EchoDiscussionParser::getMachineReadableDiff(
+ <<<TEXT
+== Washington Post Reception Source ==
+
+''The Boston Post'' source that was used in the reception section has a couple of problems. First, it's actually a repost of ''The Washington Post'', but ''The Washington Post'' doesn't allow the Internet Archive to preserve it. Should it still be sourced to Boston or to Washington? Second, it seems to be a lot of analysis that can't be summed up easily without trimming it out, and doesn't really fit with the reception section and should probably moved next to Wilson's testimony. Any suggestions? --[[User:RAN1|RAN1]] ([[User talk:RAN1|talk]]) 01:44, 11 December 2014 (UTC)
+TEXT
+ ,
+ <<<TEXT
+== Washington Post Reception Source ==
+
+''The Boston Post'' source that was used in the reception section has a couple of problems. First, it's actually a repost of ''The Washington Post'', but ''The Washington Post'' doesn't allow the Internet Archive to preserve it. Should it still be sourced to Boston or to Washington? Second, it seems to be a lot of analysis that can't be summed up easily without trimming it out, and doesn't really fit with the reception section and should probably moved next to Wilson's testimony. Any suggestions? --[[User:RAN1|RAN1]] ([[User talk:RAN1|talk]]) 01:44, 11 December 2014 (UTC)
+
+== Grand jury no bill reception ==
+
+{{u|Bob K31416}} has started a process of summarizing that section, in a manner that I believe it to be counter productive. We have expert opinions from legal, law enforcement, politicians, and media outlets all of which are notable and informative. [[WP:NOTPAPER|Wikipedia is not paper]] – If the section is too long, the correct process to avoid losing good content that is well sources, is to create a sub-article with all the detail, and summarize here per [[WP:SUMMARY]]. But deleting useful and well sourced material, is not acceptable. We are here to build an encyclopedia. - [[User:Cwobeel|<span style="color:#339966">Cwobeel</span>]] [[User_talk:Cwobeel|<span style="font-size:80%">(talk)</span>]] 16:02, 11 December 2014 (UTC)
+TEXT
+ ),
+ // User
+ 'Cwobeel',
+ // Expected annotation
+ array(
+ array(
+ 'type' => 'new-section-with-comment',
+ 'content' => '== Grand jury no bill reception ==
+
+{{u|Bob K31416}} has started a process of summarizing that section, in a manner that I believe it to be counter productive. We have expert opinions from legal, law enforcement, politicians, and media outlets all of which are notable and informative. [[WP:NOTPAPER|Wikipedia is not paper]] – If the section is too long, the correct process to avoid losing good content that is well sources, is to create a sub-article with all the detail, and summarize here per [[WP:SUMMARY]]. But deleting useful and well sourced material, is not acceptable. We are here to build an encyclopedia. - [[User:Cwobeel|<span style="color:#339966">Cwobeel</span>]] [[User_talk:Cwobeel|<span style="font-size:80%">(talk)</span>]] 16:02, 11 December 2014 (UTC)',
+ ),
+ ),
+ ),
+ // when adding additional tests, make sure to add the non-anon users
+ // to EchoDiscussionParserTest::$testusers - the DiscussionParser
+ // needs the users to exist, because it'll generate a comparison
+ // signature, which is different when the user is considered anon
+ );
+ }
+
+ public static function getExemplarTimestamp() {
+ $title = Title::newMainPage();
+ $user = User::newFromName( 'Test' );
+ $options = new ParserOptions;
+
+ global $wgParser;
+ $exemplarTimestamp =
+ $wgParser->preSaveTransform( '~~~~~', $title, $user, $options );
+
+ return $exemplarTimestamp;
+ }
+
+ static public function provider_detectSectionTitleAndText() {
+ $name = 'Werdna'; // See EchoDiscussionParserTest::$testusers
+ $comment = self::signedMessage( $name );
+
+ return array(
+ array(
+ 'Must detect first sub heading when inserting in the middle of two sub headings',
+ // expected header content
+ 'Sub Heading 1',
+ // test content format
+ "
+== Heading ==
+$comment
+
+== Sub Heading 1 ==
+$comment
+%s
+
+== Sub Heading 2 ==
+$comment
+ ",
+ // user signing new comment
+ $name
+ ),
+
+ array(
+ 'Must detect second sub heading when inserting in the end of two sub headings',
+ // expected header content
+ 'Sub Heading 2',
+ // test content format
+ "
+== Heading ==
+$comment
+
+== Sub Heading 1 ==
+$comment
+
+== Sub Heading 2 ==
+$comment
+%s
+ ",
+ // user signing new comment
+ $name
+ ),
+
+ array(
+ 'Commenting in multiple sub-headings must result in no section link',
+ // expected header content
+ '',
+ // test content format
+ "
+== Heading ==
+$comment
+
+== Sub Heading 1 ==
+$comment
+%s
+
+== Sub Heading 2 ==
+$comment
+%s
+
+ ",
+ // user signing new comment
+ $name
+ ),
+
+ array(
+ 'Must accept headings without a space between the = and the section name',
+ // expected header content
+ 'Heading',
+ // test content format
+ "
+==Heading==
+$comment
+%s
+ ",
+ // user signing new comment
+ $name
+ ),
+
+ array(
+ 'Must not accept invalid headings split with a return',
+ // expected header content
+ '',
+ // test content format
+ "
+==Some
+Heading==
+$comment
+%s
+ ",
+ // user signing new comment
+ $name
+ ),
+ );
+ }
+
+ /**
+ * @dataProvider provider_detectSectionTitleAndText
+ */
+ public function testDetectSectionTitleAndText( $message, $expect, $format, $name ) {
+ // str_replace because we want to replace multiple instances of '%s' with the same value
+ $before = str_replace( '%s', '', $format );
+ $after = str_replace( '%s', self::signedMessage( $name ), $format );
+
+ $diff = EchoDiscussionParser::getMachineReadableDiff( $before, $after );
+ $interp = EchoDiscussionParser::interpretDiff( $diff, $name );
+
+ // There should be a section-text only if there is section-title
+ $expectText = $expect ? self::message( $name ) : '';
+ $this->assertEquals(
+ array( 'section-title' => $expect, 'section-text' => $expectText ),
+ EchoDiscussionParser::detectSectionTitleAndText( $interp ),
+ $message
+ );
+ }
+
+ protected static function signedMessage( $name ) {
+ return ": " . self::message() . " [[User:$name|$name]] ([[User talk:$name|talk]]) 00:17, 7 May 2013 (UTC)";
+ }
+
+ protected static function message() {
+ return 'foo';
+ }
+
+ static public function provider_getFullSection() {
+ $tests = array(
+ array(
+ 'Extracts full section',
+ // Full document content
+ <<<TEXT
+==Header 1==
+foo
+===Header 2===
+bar
+==Header 3==
+baz
+TEXT
+ ,
+ // Map of Line numbers to expanded section content
+ array(
+ 1 => "==Header 1==\nfoo",
+ 2 => "==Header 1==\nfoo",
+ 3 => "===Header 2===\nbar",
+ 4 => "===Header 2===\nbar",
+ 5 => "==Header 3==\nbaz",
+ 6 => "==Header 3==\nbaz",
+ ),
+ ),
+ );
+
+ // Allow for setting an array of line numbers to expand from rather than
+ // just a single line number
+ $retval = array();
+ foreach ( $tests as $test ) {
+ foreach ( $test[2] as $lineNum => $expected ) {
+ $retval[] = array(
+ $test[0],
+ $expected,
+ $test[1],
+ $lineNum,
+ );
+ }
+ }
+
+ return $retval;
+ }
+
+ /**
+ * @dataProvider provider_getFullSection
+ */
+ public function testGetFullSection( $message, $expect, $lines, $startLineNum ) {
+ $section = EchoDiscussionParser::getFullSection( explode( "\n", $lines ), $startLineNum );
+ $this->assertEquals( $expect, $section, $message );
+ }
+
+ public function testGetSectionCount() {
+ $one = "==Zomg==\nfoobar\n";
+ $two = "===SubZomg===\nHi there\n";
+ $three = "==Header==\nOh Hai!\n";
+
+ $this->assertEquals( 1, EchoDiscussionParser::getSectionCount( $one ) );
+ $this->assertEquals( 2, EchoDiscussionParser::getSectionCount( $one . $two ) );
+ $this->assertEquals( 2, EchoDiscussionParser::getSectionCount( $one . $three ) );
+ $this->assertEquals( 3, EchoDiscussionParser::getSectionCount( $one . $two . $three ) );
+ }
+
+ protected function isParserFunctionsInstalled() {
+ if ( class_exists( 'ExtParserFunctions' ) ) {
+ return true;
+ } else {
+ return "ParserFunctions not enabled";
+ }
+ }
+}
diff --git a/Echo/tests/phpunit/includes/EchoDbFactoryTest.php b/Echo/tests/phpunit/includes/EchoDbFactoryTest.php
new file mode 100644
index 00000000..61cffabf
--- /dev/null
+++ b/Echo/tests/phpunit/includes/EchoDbFactoryTest.php
@@ -0,0 +1,29 @@
+<?php
+
+class MWEchoDbFactoryTest extends MediaWikiTestCase {
+
+ public function testNewFromDefault() {
+ $db = MWEchoDbFactory::newFromDefault();
+ $this->assertInstanceOf( 'MWEchoDbFactory', $db );
+ return $db;
+ }
+
+ /**
+ * @depends testNewFromDefault
+ */
+ public function testGetEchoDb( MWEchoDbFactory $db ) {
+ $this->assertInstanceOf( 'DatabaseBase', $db->getEchoDb( DB_MASTER ) );
+ $this->assertInstanceOf( 'DatabaseBase', $db->getEchoDb( DB_SLAVE ) );
+ }
+
+ /**
+ * @depends testNewFromDefault
+ */
+ public function testGetLB( MWEchoDbFactory $db ) {
+ $reflection = new ReflectionClass( 'MWEchoDbFactory' );
+ $method = $reflection->getMethod( 'getLB' );
+ $method->setAccessible( true );
+ $this->assertInstanceOf( 'LoadBalancer', $method->invoke( $db ) );
+ }
+
+}
diff --git a/Echo/tests/phpunit/includes/EmailFormatterTest.php b/Echo/tests/phpunit/includes/EmailFormatterTest.php
new file mode 100644
index 00000000..555a0857
--- /dev/null
+++ b/Echo/tests/phpunit/includes/EmailFormatterTest.php
@@ -0,0 +1,89 @@
+<?php
+
+/**
+ * @group Echo
+ */
+class EchoEmailFormatterTest extends MediaWikiTestCase {
+
+ private $emailSingle;
+ private $emailDigest;
+
+ public function setUp() {
+ parent::setUp();
+
+ global $wgEchoNotifications;
+
+ $this->setMwGlobals( 'wgAllowHTMLEmail', true );
+ $event = $this->mockEvent( 'edit-user-talk' );
+ $event->expects( $this->any() )
+ ->method( 'getTitle' )
+ ->will( $this->returnValue( Title::newMainPage() ) );
+
+ $formatter = EchoNotificationFormatter::factory( $wgEchoNotifications[$event->getType()] );
+ $formatter->setOutputFormat( 'email' );
+
+ $user = User::newFromId( 1 );
+ $user->setName( 'Test' );
+ $user->setOption( 'echo-email-format', EchoHooks::EMAIL_FORMAT_HTML );
+
+ $this->emailSingle = new EchoEmailSingle( $formatter, $event, $user );
+
+ $content[$event->getCategory()][] = EchoNotificationController::formatNotification( $event, $user, 'email', 'emaildigest' );
+ $this->emailDigest = new EchoEmailDigest( User::newFromId( 2 ), $content );
+ }
+
+ public function testEmailFormatter() {
+ $pattern = '/%%(.*?)%%/is';
+
+ // Single email mode
+ $textFormatter = new EchoTextEmailFormatter( $this->emailSingle );
+ $this->assertRegExp( $pattern, $this->emailSingle->getTextTemplate() );
+ $this->assertEquals( 0, preg_match ( $pattern, $textFormatter->formatEmail() ) );
+
+ $htmlFormatter = new EchoHTMLEmailFormatter( $this->emailSingle );
+ $this->assertRegExp( $pattern, $this->emailSingle->getHTMLTemplate() );
+ $this->assertEquals( 0, preg_match ( $pattern, $htmlFormatter->formatEmail() ) );
+
+ // Digest email mode
+ $textFormatter = new EchoTextEmailFormatter( $this->emailDigest );
+ $this->assertRegExp( $pattern, $this->emailSingle->getTextTemplate() );
+ $this->assertEquals( 0, preg_match ( $pattern, $textFormatter->formatEmail() ) );
+
+ $htmlFormatter = new EchoHTMLEmailFormatter( $this->emailDigest );
+ $this->assertRegExp( $pattern, $this->emailSingle->getHTMLTemplate() );
+ $this->assertEquals( 0, preg_match ( $pattern, $htmlFormatter->formatEmail() ) );
+ }
+
+ public function testBuildAction() {
+ $this->emailSingle->attachDecorator( new EchoTextEmailDecorator() );
+ $this->assertEquals( 0, preg_match ( '/<a /i', $this->emailSingle->buildAction() ) );
+
+ $this->emailSingle->attachDecorator( new EchoHTMLEmailDecorator() );
+ $this->assertRegExp( '/<a /i', $this->emailSingle->buildAction() );
+
+ $this->emailDigest->attachDecorator( new EchoTextEmailDecorator() );
+ $this->assertEquals( 0, preg_match ( '/<a /i', $this->emailDigest->buildAction() ) );
+
+ $this->emailDigest->attachDecorator( new EchoHTMLEmailDecorator() );
+ $this->assertRegExp( '/<a /i', $this->emailDigest->buildAction() );
+ }
+
+ protected function mockEvent( $type ) {
+ $methods = get_class_methods( 'EchoEvent' );
+ $methods = array_diff( $methods, array( 'userCan', 'getLinkMessage', 'getLinkDestination' ) );
+
+ $attribManager = EchoAttributeManager::newFromGlobalVars();
+ $event = $this->getMockBuilder( 'EchoEvent' )
+ ->disableOriginalConstructor()
+ ->setMethods( $methods )
+ ->getMock();
+ $event->expects( $this->any() )
+ ->method( 'getType' )
+ ->will( $this->returnValue( $type ) );
+ $event->expects( $this->any() )
+ ->method( 'getCategory' )
+ ->will( $this->returnValue( $attribManager->getNotificationCategory( $type ) ) );
+ return $event;
+ }
+
+}
diff --git a/Echo/tests/phpunit/includes/NotifUserTest.php b/Echo/tests/phpunit/includes/NotifUserTest.php
new file mode 100644
index 00000000..e1e69ce0
--- /dev/null
+++ b/Echo/tests/phpunit/includes/NotifUserTest.php
@@ -0,0 +1,210 @@
+<?php
+
+/**
+ * @group Echo
+ */
+class MWEchoNotifUserTest extends MediaWikiTestCase {
+
+ protected function setUp() {
+ parent::setUp();
+ $this->setMwGlobals( 'wgMemc', new HashBagOStuff() );
+ }
+
+ public function testNewFromUser() {
+ $exception = false;
+ try {
+ MWEchoNotifUser::newFromUser( User::newFromId( 0 ) );
+ } catch ( Exception $e ) {
+ $exception = true;
+ $this->assertEquals( "User must be logged in to view notification!",
+ $e->getMessage() );
+ }
+ $this->assertTrue( $exception, "Got exception" );
+
+ $notifUser = MWEchoNotifUser::newFromUser( User::newFromId( 2 ) );
+ $this->assertInstanceOf( 'MWEchoNotifUser', $notifUser );
+ }
+
+ public function testFlagCacheWithNewTalkNotification() {
+ global $wgMemc;
+
+ $notifUser = MWEchoNotifUser::newFromUser( User::newFromId( 2 ) );
+
+ $notifUser->flagCacheWithNewTalkNotification();
+ $this->assertEquals( '1', $wgMemc->get( $notifUser->getTalkNotificationCacheKey() ) );
+ }
+
+ public function testFlagCacheWithNoTalkNotification() {
+ global $wgMemc;
+
+ $notifUser = MWEchoNotifUser::newFromUser( User::newFromId( 2 ) );
+
+ $notifUser->flagCacheWithNoTalkNotification();
+ $this->assertEquals( '0', $wgMemc->get( $notifUser->getTalkNotificationCacheKey() ) );
+ }
+
+ public function testNotifCountHasReachedMax() {
+ global $wgEchoMaxNotificationCount;
+
+ $notifUser = MWEchoNotifUser::newFromUser( User::newFromId( 2 ) );
+
+ if ( $notifUser->getNotificationCount() > $wgEchoMaxNotificationCount ) {
+ $this->assertTrue( $notifUser->notifCountHasReachedMax() );
+ } else {
+ $this->assertFalse( $notifUser->notifCountHasReachedMax() );
+ }
+ }
+
+ public function testClearTalkNotification() {
+ global $wgMemc;
+
+ $notifUser = MWEchoNotifUser::newFromUser( User::newFromId( 2 ) );
+
+ $notifUser->flagCacheWithNewTalkNotification();
+
+ $hasMax = $notifUser->notifCountHasReachedMax();
+
+ $notifUser->clearTalkNotification();
+ if ( $hasMax ) {
+ $this->assertEquals( '1', $wgMemc->get( $notifUser->getTalkNotificationCacheKey() ) );
+ } else {
+ $this->assertEquals( '0', $wgMemc->get( $notifUser->getTalkNotificationCacheKey() ) );
+ }
+ }
+
+ public function testGetEmailFormat() {
+ global $wgAllowHTMLEmail;
+
+ $format = $wgAllowHTMLEmail;
+
+ $user = User::newFromId( 2 );
+ $notifUser = MWEchoNotifUser::newFromUser( $user );
+
+ $this->setMwGlobals( 'wgAllowHTMLEmail', true );
+ $this->assertEquals( $notifUser->getEmailFormat(), $user->getOption( 'echo-email-format' ) );
+ $this->setMwGlobals( 'wgAllowHTMLEmail', false );
+ $this->assertEquals( $notifUser->getEmailFormat(), EchoHooks::EMAIL_FORMAT_PLAIN_TEXT );
+
+ $this->setMwGlobals( 'wgAllowHTMLEmail', $format );
+ }
+
+ public function testMarkRead() {
+ global $wgMemc;
+ $notifUser = new MWEchoNotifUser(
+ User::newFromId( 2 ),
+ $wgMemc,
+ $this->mockEchoUserNotificationGateway( array( 'markRead' => true ) ),
+ $this->mockEchoNotificationMapper(),
+ $this->mockEchoTargetPageMapper()
+ );
+ $this->assertFalse( $notifUser->markRead( array() ) );
+ $this->assertTrue( $notifUser->markRead( array( 1 ) ) );
+
+ $notifUser = new MWEchoNotifUser(
+ User::newFromId( 2 ),
+ $wgMemc,
+ $this->mockEchoUserNotificationGateway( array( 'markRead' => false ) ),
+ $this->mockEchoNotificationMapper(),
+ $this->mockEchoTargetPageMapper()
+ );
+ $this->assertFalse( $notifUser->markRead( array() ) );
+ $this->assertFalse( $notifUser->markRead( array( 1 ) ) );
+ }
+
+ public function testMarkAllRead() {
+ global $wgMemc;
+
+ // Successful mark as read & non empty fetch
+ $notifUser = new MWEchoNotifUser(
+ User::newFromId( 2 ),
+ $wgMemc,
+ $this->mockEchoUserNotificationGateway( array( 'markRead' => true ) ),
+ $this->mockEchoNotificationMapper( array( $this->mockEchoNotification() ) ),
+ $this->mockEchoTargetPageMapper()
+ );
+ $this->assertTrue( $notifUser->markAllRead() );
+
+ // Unsuccessful mark as read & non empty fetch
+ $notifUser = new MWEchoNotifUser(
+ User::newFromId( 2 ),
+ $wgMemc,
+ $this->mockEchoUserNotificationGateway( array( 'markRead' => false ) ),
+ $this->mockEchoNotificationMapper( array( $this->mockEchoNotification() ) ),
+ $this->mockEchoTargetPageMapper()
+ );
+ $this->assertFalse( $notifUser->markAllRead() );
+
+ // Successful mark as read & empty fetch
+ $notifUser = new MWEchoNotifUser(
+ User::newFromId( 2 ),
+ $wgMemc,
+ $this->mockEchoUserNotificationGateway( array( 'markRead' => true ) ),
+ $this->mockEchoNotificationMapper(),
+ $this->mockEchoTargetPageMapper()
+ );
+ $this->assertFalse( $notifUser->markAllRead() );
+
+ // Unsuccessful mark as read & empty fetch
+ $notifUser = new MWEchoNotifUser(
+ User::newFromId( 2 ),
+ $wgMemc,
+ $this->mockEchoUserNotificationGateway( array( 'markRead' => false ) ),
+ $this->mockEchoNotificationMapper(),
+ $this->mockEchoTargetPageMapper()
+ );
+ $this->assertFalse( $notifUser->markAllRead() );
+ }
+
+ public function mockEchoUserNotificationGateway( array $dbResult = array() ) {
+ $dbResult += array(
+ 'markRead' => true
+ );
+ $gateway = $this->getMockBuilder( 'EchoUserNotificationGateway' )
+ ->disableOriginalConstructor()
+ ->getMock();
+ $gateway->expects( $this->any() )
+ ->method( 'markRead' )
+ ->will( $this->returnValue( $dbResult['markRead'] ) );
+ return $gateway;
+ }
+
+ public function mockEchoNotificationMapper( array $result = array() ) {
+ $mapper = $this->getMockBuilder( 'EchoNotificationMapper' )
+ ->disableOriginalConstructor()
+ ->getMock();
+ $mapper->expects( $this->any() )
+ ->method( 'fetchUnreadByUser' )
+ ->will( $this->returnValue( $result ) );
+ return $mapper;
+ }
+
+ public function mockEchoTargetPageMapper( array $result = array() ) {
+ $mapper = $this->getMockBuilder( 'EchoTargetPageMapper' )
+ ->disableOriginalConstructor()
+ ->getMock();
+ $mapper->expects( $this->any() )
+ ->method( 'deleteByUserEvents' )
+ ->will( $this->returnValue( $result ) );
+ return $mapper;
+ }
+
+ protected function mockEchoNotification() {
+ $notification = $this->getMockBuilder( 'EchoNotification' )
+ ->disableOriginalConstructor()
+ ->getMock();
+ $notification->expects( $this->any() )
+ ->method( 'getEvent' )
+ ->will( $this->returnValue( $this->mockEchoEvent() ) );
+ return $notification;
+ }
+
+ protected function mockEchoEvent() {
+ $event = $this->getMockBuilder( 'EchoEvent' )
+ ->disableOriginalConstructor()
+ ->getMock();
+ $event->expects( $this->any() )
+ ->method( 'getId' )
+ ->will( $this->returnValue( 1 ) );
+ return $event;
+ }
+}
diff --git a/Echo/tests/phpunit/includes/TalkPageFunctionalTest.php b/Echo/tests/phpunit/includes/TalkPageFunctionalTest.php
new file mode 100644
index 00000000..8a3c4af5
--- /dev/null
+++ b/Echo/tests/phpunit/includes/TalkPageFunctionalTest.php
@@ -0,0 +1,90 @@
+<?php
+/**
+ * @group Echo
+ * @group DataBase
+ * @group medium
+ */
+class EchoTalkPageFunctionalTest extends ApiTestCase {
+
+ protected $dbr;
+
+ public function setUp() {
+ parent::setUp();
+ $this->dbr = MWEchoDbFactory::getDB( DB_SLAVE );
+ }
+
+ /**
+ * Creates and updates a user talk page a few times to ensure proper events are
+ * created. The user performing the edits is self::$users['sysop'].
+ * @group Broken
+ */
+ public function testAddCommentsToTalkPage() {
+ $editor = self::$users['sysop']->user->getName();
+ $talkPage = self::$users['uploader']->user->getName();
+ // A set of messages which will be inserted
+ $messages = array(
+ 'Moar Cowbell',
+ "I can haz test\n\nplz?", // checks that the parser allows multi-line comments
+ 'blah blah',
+ );
+
+ $messageCount = 0;
+ $this->assertCount($messageCount, $this->fetchAllEvents() );
+
+ // Start a talkpage
+ $content = "== Section 8 ==\n\n" . $this->signedMessage( $editor, $messages[$messageCount] );
+ $this->editPage( $talkPage, $content, '', NS_USER_TALK );
+
+ // Ensure the proper event was created
+ $events = $this->fetchAllEvents();
+ $this->assertCount(1 + $messageCount, $events, 'After initial edit a single event must exist.'); // +1 is due to 0 index
+ $row = array_shift( $events );
+ $this->assertEquals( 'edit-user-talk', $row->event_type );
+ $this->assertEventSectionTitle( 'Section 8', $row );
+
+ // Add another message to the talk page
+ $messageCount++;
+ $content .= $this->signedMessage( $editor, $messages[$messageCount] );
+ $this->editPage( $talkPage, $content, '', NS_USER_TALK );
+
+ // Ensure another event was created
+ $events = $this->fetchAllEvents();
+ $this->assertCount(1 + $messageCount, $events);
+ $row = array_shift( $events );
+ $this->assertEquals( 'edit-user-talk', $row->event_type );
+ $this->assertEventSectionTitle( 'Section 8', $row );
+
+ // Add a new section and a message within it
+ $messageCount++;
+ $content .= "\n\n== EE ==\n\n" . $this->signedMessage( $editor, $messages[$messageCount] );
+ $this->editPage( $talkPage, $content, '', NS_USER_TALK );
+
+ // Ensure this event has the new section title
+ $events = $this->fetchAllEvents();
+ $this->assertCount(1 + $messageCount, $events);
+ $row = array_pop( $events );
+ $this->assertEquals( 'edit-user-talk', $row->event_type );
+ $this->assertEventSectionTitle( 'EE', $row );
+ }
+
+ protected function assertEventSectionTitle( $sectionTitle, $row ) {
+ $this->assertNotNull( $row->event_extra, 'Event must contain extra data.' );
+ $extra = unserialize( $row->event_extra );
+ $this->assertArrayHasKey( 'section-title', $extra, 'Extra data must include a section-title key.' );
+ $this->assertEquals( $sectionTitle, $extra['section-title'], 'Detected section title must match' );
+ }
+
+ /**
+ * @return array All events in db sorted from oldest to newest
+ */
+ protected function fetchAllEvents() {
+ $res = $this->dbr->select( 'echo_event', array( '*' ), array(), __METHOD__, array( 'ORDER BY' => 'event_id ASC' ) );
+
+ return iterator_to_array( $res );
+ }
+
+ protected function signedMessage( $name, $content = 'Moar cowbell', $depth = 1 ) {
+ return str_repeat(':', $depth)." $content [[User:$name|$name]] ([[User talk:$name|$name]]) 00:17, 7 May 2013 (UTC)\n";
+ }
+
+}
diff --git a/Echo/tests/phpunit/includes/UserLocatorTest.php b/Echo/tests/phpunit/includes/UserLocatorTest.php
new file mode 100644
index 00000000..47d86edd
--- /dev/null
+++ b/Echo/tests/phpunit/includes/UserLocatorTest.php
@@ -0,0 +1,270 @@
+<?php
+
+/**
+ * @Database
+ */
+class EchoUserLocatorTest extends MediaWikiTestCase {
+
+ protected $tablesUsed = array( 'user', 'watchlist' );
+
+ public function testLocateUsersWatchingTitle() {
+ $title = Title::makeTitleSafe( NS_USER_TALK, 'Something_something_something' );
+ $key = $title->getDBkey();
+
+ for ( $i = 1000; $i < 1050; ++$i ) {
+ $rows[] = array(
+ 'wl_user' => $i,
+ 'wl_namespace' => NS_USER_TALK,
+ 'wl_title' => $key
+ );
+ }
+ wfGetDB( DB_MASTER )->insert( 'watchlist', $rows, __METHOD__ );
+
+ $event = $this->getMockBuilder( 'EchoEvent' )
+ ->disableOriginalConstructor()
+ ->getMock();
+ $event->expects( $this->any() )
+ ->method( 'getTitle' )
+ ->will( $this->returnValue( $title ) );
+
+ $it = EchoUserLocator::locateUsersWatchingTitle( $event, 10 );
+ $count = 0;
+ foreach ( $it as $user ) {
+ ++$count;
+ }
+ $this->assertEquals( 50, $count );
+ // @todo assert more than one query was issued
+ }
+
+ public function locateTalkPageOwnerProvider() {
+ return array(
+ array(
+ 'Allows null event title',
+ // expected user id's
+ array(),
+ // event title
+ null
+ ),
+
+ array(
+ 'No users selected for non-user talk namespace',
+ // expected user id's
+ array(),
+ // event title
+ Title::newMainPage(),
+ ),
+
+ array(
+ 'Selects user from NS_USER_TALK',
+ // callback returning expected user ids and event title.
+ // required because database insert must be inside test.
+ function() {
+ $user = User::newFromName( 'UTUser' );
+ $user->addToDatabase();
+
+ return array(
+ array( $user->getId() ),
+ $user->getTalkPage(),
+ );
+ }
+ ),
+ );
+ }
+
+ /**
+ * @dataProvider locateTalkPageOwnerProvider
+ */
+ public function testLocateTalkPageOwner( $message, $expect, Title $title = null ) {
+ if ( $expect instanceof Closure ) {
+ list( $expect, $title ) = $expect();
+ }
+ $event = $this->mockEchoEvent();
+ $event->expects( $this->any() )
+ ->method( 'getTitle' )
+ ->will( $this->returnValue( $title ) );
+
+ $users = EchoUserLocator::locateTalkPageOwner( $event );
+ $this->assertEquals( $expect, array_keys( $users ), $message );
+ }
+
+ public function locateArticleCreatorProvider() {
+ return array(
+ array(
+ 'Something',
+ function() {
+ $user = User::newFromName( 'UTUser' );
+ $user->addToDatabase();
+
+ return array(
+ array( $user->getId() ),
+ $user->getTalkPage(),
+ $user
+ );
+ }
+ ),
+ );
+ }
+
+ /**
+ * @dataProvider locateArticleCreatorProvider
+ */
+ public function testLocateArticleCreator( $message, $initialize ) {
+
+ list( $expect, $title, $user ) = $initialize();
+ WikiPage::factory( $title )->doEditContent(
+ /* $content = */ ContentHandler::makeContent( 'content', $title ),
+ /* $summary = */ 'summary',
+ /* $flags = */ 0,
+ /* $baseRevId = */ false,
+ /* $user = */ $user
+ );
+
+ $event = $this->mockEchoEvent();
+ $event->expects( $this->any() )
+ ->method( 'getTitle' )
+ ->will( $this->returnValue( $title ) );
+ $event->expects( $this->any() )
+ ->method( 'getAgent' )
+ ->will( $this->returnValue( User::newFromId( 123 ) ) );
+
+ $users = EchoUserLocator::locateArticleCreator( $event );
+ $this->assertEquals( $expect, array_keys( $users ), $message );
+ }
+
+ public static function locateEventAgentProvider() {
+ return array(
+ array(
+ 'Null event agent returns no users',
+ // expected result user id's
+ array(),
+ // event agent
+ null,
+ ),
+
+ array(
+ 'Anonymous event agent returns no users',
+ // expected result user id's
+ array(),
+ // event agent
+ User::newFromName( '4.5.6.7', /* $validate = */ false ),
+ ),
+
+ array(
+ 'Registed event agent returned as user',
+ // expected result user id's
+ array( 42 ),
+ // event agent
+ User::newFromId( 42 ),
+ ),
+ );
+ }
+
+ /**
+ * @dataProvider locateEventAgentProvider
+ */
+ public function testLocateEventAgent( $message, $expect, User $agent = null ) {
+ $event = $this->mockEchoEvent();
+ $event->expects( $this->any() )
+ ->method( 'getAgent' )
+ ->will( $this->returnValue( $agent ) );
+
+ $users = EchoUserLocator::locateEventAgent( $event );
+ $this->assertEquals( $expect, array_keys( $users ), $message );
+ }
+
+ public function locateFromEventExtraProvider() {
+ return array(
+ array(
+ 'Event without extra data returns empty result',
+ // expected user list
+ array(),
+ // event extra data
+ array(),
+ // extra keys to get ids from
+ array( 'foo' ),
+ ),
+
+ array(
+ 'Event with specified extra data returns expected result',
+ // expected user list
+ array( 123 ),
+ // event extra data
+ array( 'foo' => 123 ),
+ // extra keys to get ids from
+ array( 'foo' ),
+ ),
+
+ array(
+ 'Accepts User objects instead of user ids',
+ // expected user list
+ array( 123 ),
+ // event extra data
+ array( 'foo' => User::newFromId( 123 ) ),
+ // extra keys to get ids from
+ array( 'foo' ),
+ ),
+
+ array(
+ 'Allows inner key to be array of ids',
+ // expected user list
+ array( 123, 321 ),
+ // event extra data
+ array( 'foo' => array( 123, 321 ) ),
+ // extra keys to get ids from
+ array( 'foo' ),
+ ),
+
+ array(
+ 'Empty inner array causes no error',
+ // expected user list
+ array(),
+ // event extra data
+ array( 'foo' => array() ),
+ // extra keys to get ids from
+ array( 'foo' ),
+ ),
+
+ array(
+ 'Accepts User object at inner level',
+ // expected user list
+ array( 123 ),
+ // event extra data
+ array( 'foo' => array( User::newFromId( 123 ) ) ),
+ // extra keys to get ids from
+ array( 'foo' ),
+ ),
+
+ );
+ }
+
+ /**
+ * @dataProvider locateFromEventExtraProvider
+ */
+ public function testLocateFromEventExtra( $message, $expect, array $extra, array $keys ) {
+ $event = $this->mockEchoEvent();
+ $event->expects( $this->any() )
+ ->method( 'getExtra' )
+ ->will( $this->returnValue( $extra ) );
+ $event->expects( $this->any() )
+ ->method( 'getExtraParam' )
+ ->will( $this->returnValueMap( self::arrayToValueMap( $extra ) ) );
+
+ $users = EchoUserLocator::locateFromEventExtra( $event, $keys );
+ $this->assertEquals( $expect, array_keys( $users ), $message );
+ }
+
+ protected static function arrayToValueMap( array $array ) {
+ $result = array();
+ foreach ( $array as $key => $value ) {
+ // EchoEvent::getExtraParam second argument defaults to null
+ $result[] = array( $key, null, $value );
+ }
+ return $result;
+ }
+
+ protected function mockEchoEvent() {
+ return $this->getMockBuilder( 'EchoEvent' )
+ ->disableOriginalConstructor()
+ ->getMock();
+ }
+}
diff --git a/Echo/tests/phpunit/includes/cache/TitleLocalCacheTest.php b/Echo/tests/phpunit/includes/cache/TitleLocalCacheTest.php
new file mode 100644
index 00000000..c295b947
--- /dev/null
+++ b/Echo/tests/phpunit/includes/cache/TitleLocalCacheTest.php
@@ -0,0 +1,89 @@
+<?php
+
+class EchoTitleLocalCacheTest extends MediaWikiTestCase {
+
+ public function testCreate() {
+ $cache = EchoTitleLocalCache::create();
+ $this->assertInstanceOf( 'EchoTitleLocalCache', $cache );
+ return $cache;
+ }
+
+ /**
+ * @depends testCreate
+ */
+ public function testAdd( $cache ) {
+ $cache->add( 1 );
+ $this->assertEquals( count( $cache->getLookups() ), 1 );
+ $this->assertArrayHasKey( 1, $cache->getLookups() );
+ }
+
+ /**
+ * @depends testCreate
+ */
+ public function testGet( $cache ) {
+ $lruMap = new MapCacheLRU( EchoLocalCache::TARGET_MAX_NUM );
+ $titleIds = array();
+ $res = $this->insertPage( "EchoTitleLocalCacheTest_testGet" );
+ $titleIds[$res['id']] = $res['id'];
+ // First title included in cache
+ $lruMap->set( $res['id'], $res['title'] );
+
+ // second title not in internal cache, resolves from db.
+ $res = $this->insertPage( "EchoTitleLocalCacheTest_testGet2" );
+ $titleIds[$res['id']] = $res['id'];
+
+ $object = new \ReflectionObject( $cache );
+
+ // Load our generated MapCacheLRU in as the targets(known mapping from
+ // title id to title object) into $cache
+ $targets = $object->getProperty( 'targets' );
+ $targets->setAccessible( true );
+ $targets->setValue( $cache, $lruMap );
+
+ // Load both of the titles we are curious about into the list of titles
+ // to be looked up
+ $lookups = $object->getProperty( 'lookups' );
+ $lookups->setAccessible( true );
+ $lookups->setValue( $cache, $titleIds );
+
+ // Requesting the first object, which is within the known targets, should
+ // not resolve the pending lookups.
+ $this->assertInstanceOf( 'Title', $cache->get( reset( $titleIds ) ) );
+ $this->assertGreaterThan( 0, count( $cache->getLookups() ) );
+
+ // Requesting the second object, which is not within the known targets, should
+ // resolve the pending lookups and reset the list to lookup.
+ $this->assertInstanceOf( 'Title', $cache->get( end( $titleIds ) ) );
+ $this->assertEquals( 0, count( $cache->getLookups() ) );
+ }
+
+ /**
+ * @depends testCreate
+ */
+ public function testClearAll( $cache ) {
+ $object = new \ReflectionObject( $cache );
+ $targets = $object->getProperty( 'targets' );
+ $targets->setAccessible( true );
+ $lruMap = new MapCacheLRU( EchoLocalCache::TARGET_MAX_NUM );
+ $lruMap->set( 1, $this->mockTitle() );
+ $targets->setValue( $cache, $lruMap );
+ $lookups = $object->getProperty( 'lookups' );
+ $lookups->setAccessible( true );
+ $lookups->setValue( $cache, array( '1' => '1', '2' => '2' ) );
+
+ $cache->clearAll();
+ $this->assertTrue( count( $cache->getLookups() ) == 0 );
+ $this->assertNull( $cache->getTargets()->get( 1 ) );
+ $this->assertNull( $cache->getTargets()->get( '1' ) );
+ }
+
+ /**
+ * Mock object of Title
+ */
+ protected function mockTitle() {
+ $title = $this->getMockBuilder( 'Title' )
+ ->disableOriginalConstructor()
+ ->getMock();
+ return $title;
+ }
+}
diff --git a/Echo/tests/phpunit/includes/gateway/UserNotificationGatewayTest.php b/Echo/tests/phpunit/includes/gateway/UserNotificationGatewayTest.php
new file mode 100644
index 00000000..5fa9b0fc
--- /dev/null
+++ b/Echo/tests/phpunit/includes/gateway/UserNotificationGatewayTest.php
@@ -0,0 +1,120 @@
+<?php
+
+class EchoUserNotificationGatewayTest extends MediaWikiTestCase {
+
+ public function testMarkRead() {
+ // no event ids to mark
+ $gateway = new EchoUserNotificationGateway( User::newFromId( 1 ), $this->mockMWEchoDbFactory() );
+ $this->assertNull( $gateway->markRead( array() ) );
+
+ // successful update
+ $gateway = new EchoUserNotificationGateway( User::newFromId( 1 ), $this->mockMWEchoDbFactory( array( 'update' => true ) ) );
+ $this->assertTrue( $gateway->markRead( array( 2 ) ) );
+
+ // unsuccessful update
+ $gateway = new EchoUserNotificationGateway( User::newFromId( 1 ), $this->mockMWEchoDbFactory( array( 'update' => false ) ) );
+ $this->assertFalse( $gateway->markRead( array( 2 ) ) );
+ }
+
+ public function testMarkAllRead() {
+ // successful update
+ $gateway = new EchoUserNotificationGateway( User::newFromId( 1 ), $this->mockMWEchoDbFactory( array( 'update' => true ) ) );
+ $this->assertTrue( $gateway->markAllRead( array( 2 ) ) );
+
+ // unsuccessful update
+ $gateway = new EchoUserNotificationGateway( User::newFromId( 1 ), $this->mockMWEchoDbFactory( array( 'update' => false ) ) );
+ $this->assertFalse( $gateway->markAllRead( array( 2 ) ) );
+ }
+
+ public function testGetNotificationCount() {
+ // unsuccessful select
+ $gateway = new EchoUserNotificationGateway( $this->mockUser(), $this->mockMWEchoDbFactory( array( 'select' => false ) ) );
+ $this->assertEquals( 0, $gateway->getNotificationCount( DB_SLAVE, array( 'event_one' ) ) );
+
+ // successful select of alert
+ $gateway = new EchoUserNotificationGateway( $this->mockUser(), $this->mockMWEchoDbFactory( array( 'select' => array( 1, 2 ) ) ) );
+ $this->assertEquals( 2, $gateway->getNotificationCount( DB_SLAVE, array( 'event_one', 'event_two' ) ) );
+
+ // there is event, should return 0
+ $gateway = new EchoUserNotificationGateway( $this->mockUser(), $this->mockMWEchoDbFactory( array( 'select' => array( 1, 2 ) ) ) );
+ $this->assertEquals( 0, $gateway->getNotificationCount( DB_SLAVE, array() ) );
+
+ // successful select
+ $gateway = new EchoUserNotificationGateway( $this->mockUser(), $this->mockMWEchoDbFactory( array( 'select' => array( 1, 2, 3 ) ) ) );
+ $this->assertEquals( 3, $gateway->getNotificationCount( DB_SLAVE, array( 'event_one' ) ) );
+ }
+
+ public function testGetUnreadNotifications() {
+ $gateway = new EchoUserNotificationGateway( $this->mockUser(), $this->mockMWEchoDbFactory( array( 'select' => false ) ) );
+ $this->assertEmpty( $gateway->getUnreadNotifications( 'user_talk' ) );
+
+ $dbResult = array(
+ (object)array( 'notification_event' => 1 ),
+ (object)array( 'notification_event' => 2 ),
+ (object)array( 'notification_event' => 3 ),
+ );
+ $gateway = new EchoUserNotificationGateway( $this->mockUser(), $this->mockMWEchoDbFactory( array( 'select' => $dbResult ) ) );
+ $res = $gateway->getUnreadNotifications( 'user_talk' );
+ $this->assertEquals( $res, array( 1 => 1, 2 => 2, 3 => 3 ) );
+ }
+
+ /**
+ * Mock object of User
+ */
+ protected function mockUser( $group = 'echo_group' ) {
+ $user = $this->getMockBuilder( 'User' )
+ ->disableOriginalConstructor()
+ ->getMock();
+ $user->expects( $this->any() )
+ ->method( 'getID' )
+ ->will( $this->returnValue( 1 ) );
+ $user->expects( $this->any() )
+ ->method( 'getOption' )
+ ->will( $this->returnValue( true ) );
+ $user->expects( $this->any() )
+ ->method( 'getGroups' )
+ ->will( $this->returnValue( array( $group ) ) );
+ return $user;
+ }
+
+ /**
+ * Mock object of MWEchoDbFactory
+ */
+ protected function mockMWEchoDbFactory( array $dbResult = array() ) {
+ $dbFactory = $this->getMockBuilder( 'MWEchoDbFactory' )
+ ->disableOriginalConstructor()
+ ->getMock();
+ $dbFactory->expects( $this->any() )
+ ->method( 'getEchoDb' )
+ ->will( $this->returnValue( $this->mockDb( $dbResult ) ) );
+ return $dbFactory;
+ }
+
+ /**
+ * Mock object of DatabaseMysql ( DatabaseBase )
+ */
+ protected function mockDb( array $dbResult = array() ) {
+ $dbResult += array(
+ 'update' => '',
+ 'select' => '',
+ 'selectRow' => '',
+ );
+ $db = $this->getMockBuilder( 'DatabaseMysql' )
+ ->disableOriginalConstructor()
+ ->getMock();
+ $db->expects( $this->any() )
+ ->method( 'update' )
+ ->will( $this->returnValue( $dbResult['update'] ) );
+ $db->expects( $this->any() )
+ ->method( 'select' )
+ ->will( $this->returnValue( $dbResult['select'] ) );
+ $db->expects( $this->any() )
+ ->method( 'selectRow' )
+ ->will( $this->returnValue( $dbResult['selectRow'] ) );
+ $db->expects( $this->any() )
+ ->method( 'numRows' )
+ ->will( $this->returnValue( count( $dbResult['select'] ) ) );
+ return $db;
+ }
+
+}
diff --git a/Echo/tests/phpunit/includes/iterator/FilteredSequentialIteratorTest.php b/Echo/tests/phpunit/includes/iterator/FilteredSequentialIteratorTest.php
new file mode 100644
index 00000000..900db22b
--- /dev/null
+++ b/Echo/tests/phpunit/includes/iterator/FilteredSequentialIteratorTest.php
@@ -0,0 +1,104 @@
+<?php
+
+class FilteredSequentialIteratorTest extends MediaWikiTestCase {
+
+ public function testEchoCallbackIteratorDoesntBlowUp() {
+ $it = new EchoCallbackIterator(
+ new ArrayIterator( array( 1, 2, 3 ) ),
+ function( $num ) {
+ return "There were $num items";
+ }
+ );
+
+ foreach ( $it as $val ) {
+ $res[] = $val;
+ }
+
+ $expected = array( "There were 1 items", "There were 2 items", "There were 3 items" );
+ $this->assertEquals( $expected, $res, 'Basic iteration with callback applied' );
+ }
+
+ public static function echoFilteredSequentialIteratorProvider() {
+ $odd = function( $v ) { return $v & 1; };
+ $greaterThanFour = function( $v ) { return $v > 4; };
+
+ return array(
+ array(
+ 'Empty object still works',
+ // expected result
+ array(),
+ // list of iterators/arrays/etc each containing users
+ array(),
+ // list of filters to apply on output
+ array(),
+ ),
+ array(
+ 'Basic iteration with one array and no filters',
+ // expected result
+ array( 1, 2, 3 ),
+ // list of iterators/arrays/etc each containing users
+ array( array( 1, 2, 3 ) ),
+ // list of filters to apply on output
+ array()
+ ),
+ array(
+ 'Basic iteration with one array and one filters',
+ // expected result
+ array( 1, 3 ),
+ // list of tierators/arrays/etc each containing users
+ array( array( 1, 2, 3 ) ),
+ // list of filters to apply on output
+ array( $odd ),
+ ),
+ array(
+ 'Iteration with multiple input arrays and no filters',
+ // expected result (iterators are run in parallel)
+ array( 1, 4, 2, 5, 3 ),
+ // list of tierators/arrays/etc each containing users
+ array( array( 1, 2, 3 ), array( 4, 5 ) ),
+ // list of filters to apply on output
+ array(),
+ ),
+ array(
+ 'Iteration with multiple input arrays and multiple filters',
+ // expected result
+ array( 5 ),
+ // list of tierators/arrays/etc each containing users
+ array( array( 1, 2 ), array( 3, 4 ), array( 5, 6 ) ),
+ // list of filters to apply on output
+ array( $odd, $greaterThanFour ),
+ ),
+ array(
+ 'Iteration with interspersed empty arrays',
+ // expected result
+ array( 1, 3, 2 ),
+ // list of tierators/arrays/etc each containing users
+ array( array(), array( 1, 2 ), array( 3 ), array() ),
+ // list of filters to apply on output
+ array(),
+ ),
+ );
+ }
+
+ /**
+ * @dataProvider echoFilteredSequentialIteratorProvider
+ */
+ public function testEchoFilteredSequentialIterator( $message, $expect, $userLists, $filters ) {
+ $notify = new EchoFilteredSequentialIterator;
+
+ foreach ( $userLists as $userList ) {
+ $notify->add( $userList );
+ }
+
+ foreach ( $filters as $filter ) {
+ $notify->addFilter( $filter );
+ }
+
+ $result = array();
+ foreach ( $notify as $value ) {
+ $result[] = $value;
+ }
+
+ $this->assertEquals( $expect, $result, $message );
+ }
+}
diff --git a/Echo/tests/phpunit/includes/mapper/AbstractMapperTest.php b/Echo/tests/phpunit/includes/mapper/AbstractMapperTest.php
new file mode 100644
index 00000000..cf91a459
--- /dev/null
+++ b/Echo/tests/phpunit/includes/mapper/AbstractMapperTest.php
@@ -0,0 +1,75 @@
+<?php
+
+class EchoAbstractMapperTest extends MediaWikiTestCase {
+
+ public function testAttachListener() {
+ $mapper = new EchoAbstractMapperStub();
+ $mapper->attachListener( 'testMethod', 'key_a', function() {} );
+
+ $class = new ReflectionClass( 'EchoAbstractMapperStub' );
+ $property = $class->getProperty( 'listeners' );
+ $property->setAccessible( true );
+ $listeners = $property->getValue( $mapper );
+
+ $this->assertArrayHasKey( 'testMethod', $listeners );
+ $this->assertArrayHasKey( 'key_a', $listeners['testMethod'] );
+ $this->assertTrue( is_callable( $listeners['testMethod']['key_a'] ) );
+ return array( 'mapper' => $mapper, 'property' => $property );
+ }
+
+ /**
+ * @expectedException MWException
+ */
+ public function testAttachListenerWithException() {
+ $mapper = new EchoAbstractMapperStub();
+ $mapper->attachListener( 'nonExistingMethod', 'key_a', function() {} );
+ }
+
+ /**
+ * @depends testAttachListener
+ */
+ public function testGetMethodListeners( $data ) {
+ $mapper = $data['mapper'];
+ $property = $data['property'];
+
+ $listeners = $mapper->getMethodListeners( 'testMethod' );
+ $this->assertArrayHasKey( 'key_a', $listeners );
+ $this->assertTrue( is_callable( $listeners['key_a'] ) );
+ }
+
+ /**
+ * @depends testAttachListener
+ * @expectedException MWException
+ */
+ public function testGetMethodListenersWithException( $data ) {
+ $mapper = $data['mapper'];
+ $property = $data['property'];
+
+ $listeners = $mapper->getMethodListeners( 'nonExistingMethod' );
+ }
+
+ /**
+ * @depends testAttachListener
+ */
+ public function testDetachListener( $data ) {
+ $mapper = $data['mapper'];
+ $property = $data['property'];
+
+ $mapper->detachListener( 'testMethod', 'key_a' );
+ $listeners = $property->getValue( $mapper );
+ $this->assertArrayHasKey( 'testMethod', $listeners );
+ $this->assertTrue( !isset( $listeners['testMethod']['key_a'] ) );
+ }
+
+}
+
+/**
+ * Create a stub class for testing the abstract class
+ */
+class EchoAbstractMapperStub extends EchoAbstractMapper {
+
+ public function testMethod() {
+
+ }
+
+}
diff --git a/Echo/tests/phpunit/includes/mapper/EventMapperTest.php b/Echo/tests/phpunit/includes/mapper/EventMapperTest.php
new file mode 100644
index 00000000..834df687
--- /dev/null
+++ b/Echo/tests/phpunit/includes/mapper/EventMapperTest.php
@@ -0,0 +1,167 @@
+<?php
+
+class EchoEventMapperTest extends MediaWikiTestCase {
+
+ public function provideDataTestInsert() {
+ return array (
+ array (
+ 'successful insert with next sequence = 1',
+ array ( 'nextSequenceValue' => 1, 'insert' => true, 'insertId' => 2 ),
+ 1
+ ),
+ array (
+ 'successful insert with insert id = 2',
+ array ( 'nextSequenceValue' => null, 'insert' => true, 'insertId' => 2 ),
+ 2
+ ),
+ array (
+ 'unsuccessful insert',
+ array ( 'nextSequenceValue' => null, 'insert' => false, 'insertId' => 2 ),
+ false
+ ),
+ );
+ }
+
+ /**
+ * @dataProvider provideDataTestInsert
+ */
+ public function testInsert( $message, $dbResult, $result ) {
+ $event = $this->mockEchoEvent();
+ $eventMapper = new EchoEventMapper( $this->mockMWEchoDbFactory( $dbResult ) );
+ $this->assertEquals( $result, $eventMapper->insert( $event ), $message );
+ }
+
+ /**
+ * Successful fetchById()
+ */
+ public function testSuccessfulFetchById() {
+ $eventMapper = new EchoEventMapper(
+ $this->mockMWEchoDbFactory(
+ array(
+ 'selectRow' => (object)array (
+ 'event_id' => 1,
+ 'event_type' => 'test',
+ 'event_variant' => '',
+ 'event_extra' => '',
+ 'event_page_id' => '',
+ 'event_agent_id' => '',
+ 'event_agent_ip' => ''
+ )
+ )
+ )
+ );
+ $res = $eventMapper->fetchById( 1 );
+ $this->assertInstanceOf( 'EchoEvent', $res );
+ }
+
+ /**
+ * @expectedException MWException
+ */
+ public function testUnsuccessfulFetchById() {
+ $eventMapper = new EchoEventMapper(
+ $this->mockMWEchoDbFactory(
+ array(
+ 'selectRow' => false
+ )
+ )
+ );
+ $res = $eventMapper->fetchById( 1 );
+ $this->assertInstanceOf( 'EchoEvent', $res );
+ }
+
+ public function testFetchByUserBundleHash() {
+ // Unsuccessful select
+ $event = $this->mockEchoEvent();
+ $eventMapper = new EchoEventMapper( $this->mockMWEchoDbFactory( array ( 'select' => false ) ) );
+ $res = $eventMapper->fetchByUserBundleHash( User::newFromId( 1 ), 'testhash', 'web', 'DESC', 250 );
+ $this->assertFalse( $res );
+
+ // Successful select
+ $event = $this->mockEchoEvent();
+ $dbResult = array (
+ (object)array (
+ 'event_id' => 1,
+ 'event_type' => 'test',
+ 'event_variant' => '',
+ 'event_extra' => '',
+ 'event_page_id' => '',
+ 'event_agent_id' => '',
+ 'event_agent_ip' => ''
+ ),
+ (object)array (
+ 'event_id' => 2,
+ 'event_type' => 'test2',
+ 'event_variant' => '',
+ 'event_extra' => '',
+ 'event_page_id' => '',
+ 'event_agent_id' => '',
+ 'event_agent_ip' => ''
+ )
+ );
+ $eventMapper = new EchoEventMapper( $this->mockMWEchoDbFactory( array ( 'select' => $dbResult ) ) );
+ $res = $eventMapper->fetchByUserBundleHash( User::newFromId( 1 ), 'testhash', 'web', 'DESC', 250 );
+ $this->assertTrue( is_array( $res ) );
+ foreach ( $res as $row ) {
+ $this->assertInstanceOf( 'EchoEvent', $row );
+ }
+ }
+
+ /**
+ * Mock object of EchoEvent
+ */
+ protected function mockEchoEvent() {
+ $event = $this->getMockBuilder( 'EchoEvent' )
+ ->disableOriginalConstructor()
+ ->getMock();
+ $event->expects( $this->any() )
+ ->method( 'toDbArray' )
+ ->will( $this->returnValue( array() ) );
+ return $event;
+ }
+
+ /**
+ * Mock object of MWEchoDbFactory
+ */
+ protected function mockMWEchoDbFactory( $dbResult ) {
+ $dbFactory = $this->getMockBuilder( 'MWEchoDbFactory' )
+ ->disableOriginalConstructor()
+ ->getMock();
+ $dbFactory->expects( $this->any() )
+ ->method( 'getEchoDb' )
+ ->will( $this->returnValue( $this->mockDb( $dbResult ) ) );
+ return $dbFactory;
+ }
+
+ /**
+ * Mock object of DatabaseMysql ( DatabaseBase )
+ */
+ protected function mockDb( array $dbResult ) {
+ $dbResult += array(
+ 'nextSequenceValue' => '',
+ 'insert' => '',
+ 'insertId' => '',
+ 'select' => '',
+ 'selectRow' => ''
+ );
+ $db = $this->getMockBuilder( 'DatabaseMysql' )
+ ->disableOriginalConstructor()
+ ->getMock();
+ $db->expects( $this->any() )
+ ->method( 'nextSequenceValue' )
+ ->will( $this->returnValue( $dbResult['nextSequenceValue'] ) );
+ $db->expects( $this->any() )
+ ->method( 'insert' )
+ ->will( $this->returnValue( $dbResult['insert'] ) );
+ $db->expects( $this->any() )
+ ->method( 'insertId' )
+ ->will( $this->returnValue( $dbResult['insertId'] ) );
+ $db->expects( $this->any() )
+ ->method( 'select' )
+ ->will( $this->returnValue( $dbResult['select'] ) );
+ $db->expects( $this->any() )
+ ->method( 'selectRow' )
+ ->will( $this->returnValue( $dbResult['selectRow'] ) );
+ return $db;
+ }
+
+}
diff --git a/Echo/tests/phpunit/includes/mapper/NotificationMapperTest.php b/Echo/tests/phpunit/includes/mapper/NotificationMapperTest.php
new file mode 100644
index 00000000..3a67219a
--- /dev/null
+++ b/Echo/tests/phpunit/includes/mapper/NotificationMapperTest.php
@@ -0,0 +1,262 @@
+<?php
+
+class EchoNotificationMapperTest extends MediaWikiTestCase {
+
+ /**
+ * @todo write this test
+ */
+ public function testInsert() {
+ $this->assertTrue( true );
+ }
+
+ public function fetchUnreadByUser( User $user, $limit, array $eventTypes = array() ) {
+ // Unsuccessful select
+ $notifMapper = new EchoNotificationMapper( $this->mockMWEchoDbFactory( array ( 'select' => false ) ) );
+ $res = $notifMapper->fetchUnreadByUser( $this->mockUser(), 10, '' );
+ $this->assertEmpty( $res );
+
+ // Successful select
+ $dbResult = array(
+ (object)array (
+ 'event_id' => 1,
+ 'event_type' => 'test_event',
+ 'event_variant' => '',
+ 'event_extra' => '',
+ 'event_page_id' => '',
+ 'event_agent_id' => '',
+ 'event_agent_ip' => '',
+ 'notification_user' => 1,
+ 'notification_timestamp' => '20140615101010',
+ 'notification_read_timestamp' => '',
+ 'notification_bundle_base' => 1,
+ 'notification_bundle_hash' => 'testhash',
+ 'notification_bundle_display_hash' => 'testdisplayhash'
+ )
+ );
+ $notifMapper = new EchoNotificationMapper( $this->mockMWEchoDbFactory( array ( 'select' => $dbResult ) ) );
+ $res = $notifMapper->fetchUnreadByUser( $this->mockUser(), 10, '', array() );
+ $this->assertEmpty( $res );
+
+ $notifMapper = new EchoNotificationMapper( $this->mockMWEchoDbFactory( array ( 'select' => $dbResult ) ) );
+ $res = $notifMapper->fetchUnreadByUser( $this->mockUser(), 10, '', array( 'test_event' ) );
+ $this->assertTrue( is_array( $res ) );
+ $this->assertGreaterThan( 0, count( $res ) );
+ foreach ( $res as $row ) {
+ $this->assertInstanceOf( 'EchoNotification', $row );
+ }
+ }
+
+ public function testFetchByUser() {
+ // Unsuccessful select
+ $notifMapper = new EchoNotificationMapper( $this->mockMWEchoDbFactory( array ( 'select' => false ) ) );
+ $res = $notifMapper->fetchByUser( $this->mockUser(), 10, '' );
+ $this->assertEmpty( $res );
+
+ // Successful select
+ $notifDbResult = array(
+ (object)array (
+ 'event_id' => 1,
+ 'event_type' => 'test_event',
+ 'event_variant' => '',
+ 'event_extra' => '',
+ 'event_page_id' => '',
+ 'event_agent_id' => '',
+ 'event_agent_ip' => '',
+ 'notification_user' => 1,
+ 'notification_timestamp' => '20140615101010',
+ 'notification_read_timestamp' => '20140616101010',
+ 'notification_bundle_base' => 1,
+ 'notification_bundle_hash' => 'testhash',
+ 'notification_bundle_display_hash' => 'testdisplayhash'
+ )
+ );
+
+ $tpDbResult = array(
+ (object)array(
+ 'etp_user' => 1, // userid
+ 'etp_page' => 7, // pageid
+ 'etp_event' => 1, // eventid
+ ),
+ );
+
+ $notifMapper = new EchoNotificationMapper( $this->mockMWEchoDbFactory( array ( 'select' => $notifDbResult ) ) );
+ $res = $notifMapper->fetchByUser( $this->mockUser(), 10, '', array() );
+ $this->assertEmpty( $res );
+
+ $notifMapper = new EchoNotificationMapper(
+ $this->mockMWEchoDbFactory( array ( 'select' => $notifDbResult ) ),
+ new EchoTargetPageMapper(
+ $this->mockMWEchoDbFactory( array( 'select' => $tpDbResult ) )
+ )
+ );
+ $res = $notifMapper->fetchByUser( $this->mockUser(), 10, '', array( 'test_event' ) );
+ $this->assertTrue( is_array( $res ) );
+ $this->assertGreaterThan( 0, count( $res ) );
+ foreach ( $res as $row ) {
+ $this->assertInstanceOf( 'EchoNotification', $row );
+ }
+
+ $notifMapper = new EchoNotificationMapper( $this->mockMWEchoDbFactory( array() ) );
+ $res = $notifMapper->fetchByUser( $this->mockUser(), 10, '' );
+ $this->assertEmpty( $res );
+ }
+
+ public function testFetchNewestByUserBundleHash() {
+ // Unsuccessful select
+ $notifMapper = new EchoNotificationMapper( $this->mockMWEchoDbFactory( array ( 'selectRow' => false ) ) );
+ $res = $notifMapper->fetchNewestByUserBundleHash( User::newFromId( 1 ), 'testhash' );
+ $this->assertFalse( $res );
+
+ // Successful select
+ $dbResult = (object)array (
+ 'event_id' => 1,
+ 'event_type' => 'test',
+ 'event_variant' => '',
+ 'event_extra' => '',
+ 'event_page_id' => '',
+ 'event_agent_id' => '',
+ 'event_agent_ip' => '',
+ 'notification_user' => 1,
+ 'notification_timestamp' => '20140615101010',
+ 'notification_read_timestamp' => '20140616101010',
+ 'notification_bundle_base' => 1,
+ 'notification_bundle_hash' => 'testhash',
+ 'notification_bundle_display_hash' => 'testdisplayhash'
+ );
+ $notifMapper = new EchoNotificationMapper( $this->mockMWEchoDbFactory( array ( 'selectRow' => $dbResult ) ) );
+ $row = $notifMapper->fetchNewestByUserBundleHash( User::newFromId( 1 ), 'testdisplayhash' );
+ $this->assertInstanceOf( 'EchoNotification', $row );
+ }
+
+ public function testFetchByUserOffset() {
+ // Unsuccessful select
+ $notifMapper = new EchoNotificationMapper( $this->mockMWEchoDbFactory( array ( 'selectRow' => false ) ) );
+ $res = $notifMapper->fetchByUserOffset( User::newFromId( 1 ), 500 );
+ $this->assertFalse( $res );
+
+ // Successful select
+ $dbResult = (object)array (
+ 'event_id' => 1,
+ 'event_type' => 'test',
+ 'event_variant' => '',
+ 'event_extra' => '',
+ 'event_page_id' => '',
+ 'event_agent_id' => '',
+ 'event_agent_ip' => '',
+ 'notification_user' => 1,
+ 'notification_timestamp' => '20140615101010',
+ 'notification_read_timestamp' => '20140616101010',
+ 'notification_bundle_base' => 1,
+ 'notification_bundle_hash' => 'testhash',
+ 'notification_bundle_display_hash' => 'testdisplayhash'
+ );
+ $notifMapper = new EchoNotificationMapper( $this->mockMWEchoDbFactory( array ( 'selectRow' => $dbResult ) ) );
+ $row = $notifMapper->fetchNewestByUserBundleHash( User::newFromId( 1 ), 500 );
+ $this->assertInstanceOf( 'EchoNotification', $row );
+ }
+
+ public function testDeleteByUserEventOffset() {
+ $dbResult = array( 'delete' => true );
+ $notifMapper = new EchoNotificationMapper( $this->mockMWEchoDbFactory( $dbResult ) );
+ $this->assertTrue( $notifMapper->deleteByUserEventOffset( User::newFromId( 1 ), 500 ) );
+
+ $dbResult = array( 'delete' => false );
+ $notifMapper = new EchoNotificationMapper( $this->mockMWEchoDbFactory( $dbResult ) );
+ $this->assertFalse( $notifMapper->deleteByUserEventOffset( User::newFromId( 1 ), 500 ) );
+ }
+
+ /**
+ * Mock object of User
+ */
+ protected function mockUser() {
+ $user = $this->getMockBuilder( 'User' )
+ ->disableOriginalConstructor()
+ ->getMock();
+ $user->expects( $this->any() )
+ ->method( 'getID' )
+ ->will( $this->returnValue( 1 ) );
+ $user->expects( $this->any() )
+ ->method( 'getOption' )
+ ->will( $this->returnValue( true ) );
+ $user->expects( $this->any() )
+ ->method( 'getGroups' )
+ ->will( $this->returnValue( array( 'echo_group' ) ) );
+ return $user;
+ }
+
+ /**
+ * Mock object of EchoNotification
+ */
+ protected function mockEchoNotification() {
+ $event = $this->getMockBuilder( 'EchoNotification' )
+ ->disableOriginalConstructor()
+ ->getMock();
+ $event->expects( $this->any() )
+ ->method( 'toDbArray' )
+ ->will( $this->returnValue( array() ) );
+ return $event;
+ }
+
+ /**
+ * Mock object of MWEchoDbFactory
+ */
+ protected function mockMWEchoDbFactory( $dbResult ) {
+ $dbFactory = $this->getMockBuilder( 'MWEchoDbFactory' )
+ ->disableOriginalConstructor()
+ ->getMock();
+ $dbFactory->expects( $this->any() )
+ ->method( 'getEchoDb' )
+ ->will( $this->returnValue( $this->mockDb( $dbResult ) ) );
+ return $dbFactory;
+ }
+
+ /**
+ * Mock object of DatabaseMysql ( DatabaseBase )
+ */
+ protected function mockDb( array $dbResult ) {
+ $dbResult += array(
+ 'insert' => '',
+ 'select' => '',
+ 'selectRow' => '',
+ 'delete' => ''
+ );
+
+ $db = $this->getMockBuilder( 'DatabaseMysql' )
+ ->disableOriginalConstructor()
+ ->getMock();
+ $db->expects( $this->any() )
+ ->method( 'insert' )
+ ->will( $this->returnValue( $dbResult['insert'] ) );
+ $db->expects( $this->any() )
+ ->method( 'select' )
+ ->will( $this->returnValue( $dbResult['select'] ) );
+ $db->expects( $this->any() )
+ ->method( 'delete' )
+ ->will( $this->returnValue( $dbResult['delete'] ) );
+ $db->expects( $this->any() )
+ ->method( 'selectRow' )
+ ->will( $this->returnValue( $dbResult['selectRow'] ) );
+ $db->expects ( $this->any() )
+ ->method( 'onTransactionIdle' )
+ ->will( new EchoExecuteFirstArgumentStub );
+
+ return $db;
+ }
+
+}
+
+class EchoExecuteFirstArgumentStub implements PHPUnit_Framework_MockObject_Stub {
+ public function invoke( PHPUnit_Framework_MockObject_Invocation $invocation ) {
+ if ( !$invocation instanceof PHPUnit_Framework_MockObject_Invocation_Static ) {
+ throw new PHPUnit_Framework_Exception( 'wrong invocation type' );
+ }
+ if ( !$invocation->arguments ) {
+ throw new PHPUnit_Framework_Exception( 'Method call must have an argument' );
+ }
+ return call_user_func( reset( $invocation->arguments ) );
+ }
+
+ public function toString() {
+ return 'return result of call_user_func on first invocation argument';
+ }
+}
diff --git a/Echo/tests/phpunit/includes/mapper/TargetPageMapperTest.php b/Echo/tests/phpunit/includes/mapper/TargetPageMapperTest.php
new file mode 100644
index 00000000..6358df31
--- /dev/null
+++ b/Echo/tests/phpunit/includes/mapper/TargetPageMapperTest.php
@@ -0,0 +1,177 @@
+<?php
+
+class EchoTargetPageMapperTest extends MediaWikiTestCase {
+
+ public function testFetchByUserPageId() {
+ $targetMapper = new EchoTargetPageMapper( $this->mockMWEchoDbFactory( array ( 'select' => false ) ) );
+ $res = $targetMapper->fetchByUserPageId( User::newFromId( 1 ), 1 );
+ $this->assertFalse( $res );
+
+ $dbResult = array (
+ (object)array (
+ 'etp_user' => 1,
+ 'etp_page' => 2,
+ 'etp_event' => 3
+ ),
+ (object)array (
+ 'etp_user' => 1,
+ 'etp_page' => 2,
+ 'etp_event' => 7,
+ )
+ );
+ $targetMapper = new EchoTargetPageMapper( $this->mockMWEchoDbFactory( array ( 'select' => $dbResult ) ) );
+ $res = $targetMapper->fetchByUserPageId( User::newFromId( 1 ), 2 );
+ $this->assertTrue( is_array( $res ) );
+ $this->assertCount( 2, $res );
+ foreach ( $res as $targetPages ) {
+ $this->assertTrue( is_array( $targetPages ) );
+ $this->assertCount( 1, $targetPages );
+ $this->assertInstanceOf( 'EchoTargetPage', reset( $targetPages ) );
+ }
+ }
+
+ public function provideDataTestInsert() {
+ return array (
+ array (
+ 'successful insert with next sequence = 1',
+ array ( 'nextSequenceValue' => 1, 'insert' => true, 'insertId' => 2 ),
+ 1
+ ),
+ array (
+ 'successful insert with insert id = 2',
+ array ( 'nextSequenceValue' => null, 'insert' => true, 'insertId' => 2 ),
+ 2
+ ),
+ array (
+ 'unsuccessful insert',
+ array ( 'nextSequenceValue' => null, 'insert' => false, 'insertId' => 2 ),
+ false
+ ),
+ );
+ }
+
+ /**
+ * @dataProvider provideDataTestInsert
+ */
+ public function testInsert( $message, $dbResult, $result ) {
+ $target = $this->mockEchoTargetPage();
+ $targetMapper = new EchoTargetPageMapper( $this->mockMWEchoDbFactory( $dbResult ) );
+ $this->assertEquals( $result, $targetMapper->insert( $target ), $message );
+ }
+
+ public function testDelete() {
+ $dbResult = array( 'delete' => true );
+ $targetMapper = new EchoTargetPageMapper( $this->mockMWEchoDbFactory( $dbResult ) );
+ $this->assertTrue( $targetMapper->delete( $this->mockEchoTargetPage() ) );
+
+ $dbResult = array( 'delete' => false );
+ $targetMapper = new EchoTargetPageMapper( $this->mockMWEchoDbFactory( $dbResult ) );
+ $this->assertFalse( $targetMapper->delete( $this->mockEchoTargetPage() ) );
+ }
+
+ public function provideDataTestDeleteByUserEvents() {
+ return array(
+ array( true, array( 1 ), true ),
+ array( false, array( 1 ), false ),
+ array( true, array(), true ),
+ array( false, array(), true ),
+ );
+ }
+
+ /**
+ * @dataProvider provideDataTestDeleteByUserEvents
+ */
+ public function testDeleteByUserEvents( $deleteResult, $eventIds, $result ) {
+ $dbResult = array( 'delete' => $deleteResult );
+ $targetMapper = new EchoTargetPageMapper( $this->mockMWEchoDbFactory( $dbResult ) );
+ $this->assertSame( $targetMapper->deleteByUserEvents( User::newFromId( 1 ), $eventIds ), $result );
+ }
+
+ public function testDeleteByUser() {
+ $dbResult = array( 'delete' => true );
+ $targetMapper = new EchoTargetPageMapper( $this->mockMWEchoDbFactory( $dbResult ) );
+ $this->assertSame( $targetMapper->deleteByUser( User::newFromId( 1 ) ), true );
+
+ $dbResult = array( 'delete' => false );
+ $targetMapper = new EchoTargetPageMapper( $this->mockMWEchoDbFactory( $dbResult ) );
+ $this->assertSame( $targetMapper->deleteByUser( User::newFromId( 1 ) ), false );
+ }
+
+ public function testDeleteByUserEventOffset() {
+ $dbResult = array( 'delete' => true );
+ $targetMapper = new EchoTargetPageMapper( $this->mockMWEchoDbFactory( $dbResult ) );
+ $this->assertSame( $targetMapper->deleteByUserEventOffset( User::newFromId( 1 ), 500 ), true );
+
+ $dbResult = array( 'delete' => false );
+ $targetMapper = new EchoTargetPageMapper( $this->mockMWEchoDbFactory( $dbResult ) );
+ $this->assertSame( $targetMapper->deleteByUserEventOffset( User::newFromId( 1 ), 500 ), false );
+ }
+
+ /**
+ * Mock object of EchoTargetPage
+ */
+ protected function mockEchoTargetPage() {
+ $target = $this->getMockBuilder( 'EchoTargetPage' )
+ ->disableOriginalConstructor()
+ ->getMock();
+ $target->expects( $this->any() )
+ ->method( 'toDbArray' )
+ ->will( $this->returnValue( array() ) );
+ $target->expects( $this->any() )
+ ->method( 'getUser' )
+ ->will( $this->returnValue( User::newFromId( 1 ) ) );
+ $target->expects( $this->any() )
+ ->method( 'getPageId' )
+ ->will( $this->returnValue( 2 ) );
+ $target->expects( $this->any() )
+ ->method( 'getEventId' )
+ ->will( $this->returnValue( 3 ) );
+ return $target;
+ }
+
+ /**
+ * Mock object of MWEchoDbFactory
+ */
+ protected function mockMWEchoDbFactory( $dbResult ) {
+ $dbFactory = $this->getMockBuilder( 'MWEchoDbFactory' )
+ ->disableOriginalConstructor()
+ ->getMock();
+ $dbFactory->expects( $this->any() )
+ ->method( 'getEchoDb' )
+ ->will( $this->returnValue( $this->mockDb( $dbResult ) ) );
+ return $dbFactory;
+ }
+
+ /**
+ * Mock object of DatabaseMysql ( DatabaseBase )
+ */
+ protected function mockDb( array $dbResult ) {
+ $dbResult += array(
+ 'nextSequenceValue' => '',
+ 'insert' => '',
+ 'insertId' => '',
+ 'select' => '',
+ 'delete' => ''
+ );
+ $db = $this->getMockBuilder( 'DatabaseMysql' )
+ ->disableOriginalConstructor()
+ ->getMock();
+ $db->expects( $this->any() )
+ ->method( 'nextSequenceValue' )
+ ->will( $this->returnValue( $dbResult['nextSequenceValue'] ) );
+ $db->expects( $this->any() )
+ ->method( 'insert' )
+ ->will( $this->returnValue( $dbResult['insert'] ) );
+ $db->expects( $this->any() )
+ ->method( 'insertId' )
+ ->will( $this->returnValue( $dbResult['insertId'] ) );
+ $db->expects( $this->any() )
+ ->method( 'select' )
+ ->will( $this->returnValue( $dbResult['select'] ) );
+ $db->expects( $this->any() )
+ ->method( 'delete' )
+ ->will( $this->returnValue( $dbResult['delete'] ) );
+ return $db;
+ }
+
+}
diff --git a/Echo/tests/phpunit/includes/revision_txt/138274875.txt b/Echo/tests/phpunit/includes/revision_txt/138274875.txt
new file mode 100644
index 00000000..a2416f1c
--- /dev/null
+++ b/Echo/tests/phpunit/includes/revision_txt/138274875.txt
@@ -0,0 +1,78 @@
+{{Autoarchiv
+|Alter=30
+|Mindestbeiträge=1
+|Klein=Ja
+|Ziel='Benutzer Diskussion:Schnark/Archiv4'
+|Übersicht=[[Spezial:Präfixindex/Benutzer Diskussion:Schnark/Archiv|Archiv]].</b> Das momentan verwendete Archiv ist <b>[[Benutzer Diskussion:Schnark/Archiv4|Archiv 4]]
+|Frequenz=sonntags
+}}
+
+== Code-Review (3. Versuch) ==
+
+Hallo Schnark, habe [[Benutzer Diskussion:Schnark/Archiv4#Code-Review|deine Einwände]] umgesetzt. Allerdings kann ich tatsächlich nicht sagen ob diese Bugfrei sind. Da diese Bananen-Methodik heutzutage jedoch gang und gebe ist, würde ich mich jedoch umgehend bzw. zeitnäher als bis jetzt um eine Bearbeitung kümmern.[http://de.wikipedia.beta.wmflabs.org/wiki/Benutzer:Perhelion Freundliche Grüße]<kbd style="white-space:nowrap;color:#567"> ↔ ''[[User: Perhelion]]''<small> 17:00, 16. Okt. 2014 (CEST)</small></kbd>
+
+:de.wikipedia.beta.wmflabs.org liefert mir seit Tagen nur Ladefehler, sodass ich deinen Code nicht sehen kann. --[[Benutzer:Schnark|Schnark]] 10:55, 17. Okt. 2014 (CEST)
+
+:: Schade, ich dachte das zwischen uns ist eine Win-win-Situation. (Leider bekomme ich langsam den Verdacht, dass du etwas gegen mich hast⁉) [[Datei:SMirC-bored.svg|18px|-.-]]<kbd style="white-space:nowrap;color:#567"> ↔ ''[[User: Perhelion]]''<small> 08:48, 31. Okt. 2014 (CET)</small></kbd>
+
+:::Labs hat etwas gegen mich und leitet mich noch immer stur auf HTTPS um, wo mir dann ein Serverfehler präsentiert wird. --[[Benutzer:Schnark|Schnark]] 09:35, 31. Okt. 2014 (CET)
+
+:::: Ach ok, das hatte ich auch. Ich musste erst meinen kompletten BrowserCache löschen (wie mir PeCh riet).<kbd style="white-space:nowrap;color:#567"> ↔ ''[[User: Perhelion]]''<small> 10:15, 31. Okt. 2014 (CET)</small></kbd>
+
+::::Irgendwo kam ein <code>forceHttps</code>-Cookie her, jetzt ist es weg. Es fallen immer noch viele Dinge beim reinen Überfliegen auf:
+::::http://de.wikipedia.beta.wmflabs.org/wiki/Benutzer:Perhelion/signing.js
+:::::<code>mw.loader.using('jquery.textSelection');</code> bringt in dieser Form nichts, du musst den Code, der auf die Funktionen aus <code>jquery.textSelection</code> angewiesen ist, als Callback-Funktion im zweiten Parameter übergeben oder alternativ dem zurückgegebenen Promise-Objekt anhängen.
+:::::<code>n.test(cfg.sigText[-1])</code> ist immer falsch
+:::::<code>pos = txt.indexOf('\n', pos);</code> schlägt fehl, wenn kein Zeilenumbruch mehr kommt (unwahrscheinlich, aber möglich)
+:::::<code>/de|als/.test(cfg.wgUserLanguage)</code>: Die Anzahl der Benutzer mit <code>ks-deva</code>, die keine deutsche Lokalisierung wollen oder der mit <code>pfl</code>, die Deutsch dem Englischen vorziehen, dürfte klein sein. Trotzdem solltest du <code>mw.language.getFallbackLanguageChain()</code> verwenden, dafür ist es da.
+:::::Den <code>wpAutoSummary</code>-Hack verstehe ich nicht, aber vermutlich führt er dazu, dass die Funktion „Warnen, wenn Zusammenfassung fehlt“ nicht mehr zuverlässig funktioniert.
+:::::Gibt es irgendeinen Grund <code>..updateTooltipAccessKeys()</code> nicht einfach für die eingefügten Elemente aufzurufen, statt irgendwelche komischen Hacks zu verwenden?
+::::http://de.wikipedia.beta.wmflabs.org/wiki/Benutzer:Perhelion/sectionSummary.js verwendet mit <code>$.unique</code> ''immer noch'' eine Funktion, die nur für DOM-Elemente funktioniert, für normale Arrays. --[[Benutzer:Schnark|Schnark]] 12:06, 6. Nov. 2014 (CET)
+:::::: Vielen Dank auch diesmal, ich denke morgen werde ich das signing-script updaten. Das sectionSummary habe ich soweit gefixt und auch gleich mit weiterer Funktion verbessert. Ein schönes Wochenende. VG<kbd style="white-space:nowrap;color:#567"> ↔ ''[[User: Perhelion]]''<small> 15:07, 15. Nov. 2014 (CET)</small></kbd>
+
+:::::::Was sollen die Änderungen von <code>foo !== -1</code> in <code>!~foo</code>? Ersteres ist deutlich verständlicher und gilt als performanter (in Firefox ist beides praktisch gleich schnell, aber im IE ist es wirklich ein Faktor 2 in der Laufzeit)? --[[Benutzer:Schnark|Schnark]] 09:20, 20. Nov. 2014 (CET)
+
+:::::::: Du siehst aber auch alles (wohl weil JSHint hier auch meckert). Ja hm* verständlicher ist relativ, also für mich ist es rein optisch schon verständlicher (hatte es einfach aus einem Code-Snippet, fand es einfach gut ohne einen Logical-Operator).[[Datei:SMirC-grin.svg|18px|X-)]] Vielen Dank für den Hinweis, ich werde es wieder rückgängig machen.
+:::::::: Bin jetzt auch mit dem autoSigning fertig (mit ebenfalls kleinen Verbesserungen). Mit dem <code>accessKey</code> hatte ich mich wirklich schwer getan (zudem der Tooltip in Chrome vorher auch nicht gestimmt hatte). Bis nachher VG<kbd style="white-space:nowrap;color:#567"> ↔ ''[[User: Perhelion]]''<small> 21:08, 20. Nov. 2014 (CET)</small></kbd>
+
+:::::::::Verständlich ist es nur dann, wenn man weiß, dass negative Integers intern als [[Zweierkomplement]] dargestellt werden, was in gewisser Hinsicht die natürlichste, aber keineswegs die offensichtlichste oder einzige Darstellung ist. Tatsächlich finde ich im ES5-Standard kein einziges Wort dazu, in ES6 auch nur eine sehr versteckte Erwähnung am Rande.
+:::::::::Warnungen von JSHint sind nicht dazu da Programmierer zu ärgern, sondern sollten von sehr wenigen Ausnahmefällen abgesehen immer beachtet werden.
+:::::::::In signing.js trifft mein Kommentar zum <code>wpAutoSummary</code>-Hack noch immer zu, das gilt natürlich auch für sectionSummary.js. <code>Array.prototype.filter</code> führt als ES5-Methode im IE8 zu Laufzeitfehlern. Wie gesagt, IE8 ist nicht das Maß aller Dinge, aber solange MW diesen Browser unterstützt, darf kein Skript Laufzeitfehler auslösen. Entweder lädst du den ES5-Shim oder schreibst die entsprechende Anweisung auf jQuery um. Gleiches gilt für ausgefallenere Methoden von <code>console</code>. --[[Benutzer:Schnark|Schnark]] 09:53, 21. Nov. 2014 (CET)
+┌{{padleft:┘|22|─}}<br />
+Ich kümmer mich die Woche drum (mir sind jetzt auch noch einige Kleinigkeiten bzw. Verbesserungen eingefallen, man muss sich ja immer wieder erst in den ganzen Code reindenken).
+@Hack: Ich finde auf Diskussionsseiten ist dieser Hack legitim, er kommt auch nur zur Anwendung wenn der Minor-Button aktiviert wurde, ansonsten wird der Wert wieder resettet.
+@sectionSummary kommt hinzu dass das Summary eh vom Script geändert wird und der Tocken hinfällig wird und tatsächlich wird der Tocken nur geändert wenn das Summary geändert wurde. Damit wollte ich auf die ganze Cookie-Komplikation (die sich ja auch dieses Jahr wieder geändert hat) umgehen. Daher würde ich dich bitten ein Zugeständnis zu machen und hier ein Auge zuzudrücken.[[Datei:SMirC-wink.svg|20px|;-)]]
+PS: Ich habe mal deinen alten Bugreport [[bugzilla:38829]] etwas Aufmerksamkeit zugeführt. [[Datei:SMirC-jealous.svg|20px|(°₀°)]] LG<kbd style="white-space:nowrap;color:#567"> ↔ ''[[User: Perhelion]]''<small> 13:26, 2. Dez. 2014 (CET)</small></kbd>
+
+:Ich verwende die Funktion „Warnen, wenn Zusammenfassung fehlt“ dazu, dass ich eine Bearbeitung wirklich erst dann speichere, wenn ich fertig bin, und fülle dazu die Zusammenfassungszeile erst ganz am Schluss aus. Sollte ich zwischendurch versehentlich auf „Speichern“ klicken, dann bekomme ich zuerst eine Warnung. Zudem kannst du dir nie sicher sein, was die Serverseite mit ungültigen MD5-Codes macht. Im Augenblick ignoriert sie diese Tatsache, es kann aber ohne Vorwarnung passieren, dass sich dieses Verhalten plötzlich ändert, und dann der Wert, den du dort speicherst, verworfen wird, oder der Benutzer ganz am Abspeichern gehindert wird. Darum: Ein Feld, dass den MD5-Hash einer Zusammenfassung enthalten soll, darf auch nur den MD5-Hash einer Zusammenfassung enthalten und sonst nichts.
+:happy5214 kümmert sich gerade sehr um meine Bugreports, [[phab:T39485]], den er auch behoben hat, war mir ehrlich gesagt wichtiger. --[[Benutzer:Schnark|Schnark]] 09:11, 3. Dez. 2014 (CET)
+:: Nun denn ein Frohes Neues! (Bevor der Thread wieder in der Versenkung verschwindet, ich habe deine Einwände betr. „Warnen“ dahingehend „gefixt“, dass das hidden Tocken-Feld vor dem Speichern gänzlich resetet wird.) Es scheint mir du würdest tatsächlich auf eine Cookielösung hinaus wollen (denn eine andere sehe ich jetzt nicht)⁉ OT: Mir scheint du hast dein [[Benutzer:Schnark/js/Wikisyntax-config.js|WSTM config]] gänzlich deaktiviert (oder ich habe deine Mühen zur Unterbindung fremder Einbindung nicht völlig erfasst, Z.151)!?<kbd style="white-space:nowrap;color:#567"> ↔ ''[[User: Perhelion]]'' <small> 14:59, 3. Jan. 2015 (CET)</small></kbd>
+:::Selbst wenn du beim Abspeichern den Inhalt von wpAutoSummary beim Speichern wiederherstellst, reicht das nicht, es muss bei jeglicher Serverinteraktion, also auch bei der Vorschau, ein korrekter Wert übergeben werden, andernfalls musst du mit undefiniertem Verhalten rechnen. --[[Benutzer:Schnark|Schnark]] 09:28, 5. Jan. 2015 (CET)
+
+== Danke ==
+
+Vielen Dank für Deine sehr ausführliche und hilfreiche Antwort auf meine [[Wikipedia:Auskunft#Hilberts_Axiomensystem_der_euklidischen_Geometrie|Frage auf der Wikipedia-Asukunft]]. Mir ist gleich ein ganzer Kronleuchter aufgegangen... {{unsigniert|79.245.165.238|17:49, 8. Jan. 2015 (CET)‎}}
+
+:Gern geschehen! --[[Benutzer:Schnark|Schnark]] 09:03, 9. Jan. 2015 (CET)
+
+== Bug erstellen ==
+
+Hi Schnark, könntest Du bitte mal schauen, ob es zu dem [[Wikipedia:Bots/Anfragen/Archiv/2014-2#Referenzierungsfehler_finden|hier beschriebenem Problem]] schon einen Bug gibt und ihn ggf. erstellen?--[[Benutzer:Mabschaaf|Mabschaaf]] 23:20, 15. Jan. 2015 (CET)
+
+:Ehrlich gesagt ist mir der Abschnitt viel zu lang um ihn mir durchzulesen. Du kannst unter https://phabricator.wikimedia.org/maniphest/query/advanced/ selbst suchen, mit deinem Wikipedia-Konto kannst du dich inzwischen auch direkt bei Phabricator anmelden und selbst eine Task anlegen, wenn du nichts findest. So schwer ist das nicht, und wenn man beim ersten Mal etwas falsch macht, ist das auch nicht schlimm. --[[Benutzer:Schnark|Schnark]] 10:15, 16. Jan. 2015 (CET)
+::Du musst gar nicht den kompletten Abschnitt lesen, das erste Posting reicht. Ich werde auf phab sicher nicht aktiv.--[[Benutzer:Mabschaaf|Mabschaaf]] 16:08, 16. Jan. 2015 (CET)
+:::[[Benutzer:Se4598]] wars: [[phab:T85386]]. Was spricht gegen phab? (Oder jeden anderen Bug-Tracker?) [[Benutzer:Umherirrender|Der Umherirrende]] 16:50, 16. Jan. 2015 (CET)
+:::: Also ich finde (den Abschnitt auch zu lang), dass Phab fast in jeder Hinsicht ein Fortschritt zum alten Bugzilla ist (ein paar wenige Schwächen wird es wohl geben, aber darum soll es ja hier jetzt nicht gehen).<kbd style="white-space:nowrap;color:#567"> ↔ ''[[User: Perhelion]]'' <small> 21:55, 16. Jan. 2015 (CET)</small></kbd>
+
+== Testwiki ==
+
+Hallo Schnark,
+ich bräuchte, um Dinge für [[WP:Meinungsbilder/Erweiterung der Sichterrechte|dieses MB]] eine Möglichkeit, in einem Wiki, in dem die Benutzerrechtskonfiguration mit einer Ausnahme genau wie hier sind, zu editiern und verschieben. Um genau zu sein geht es um eine zusätzliche Benutzergruppe mit move-subpages, suppressredirect und unwatchedpages. Was kann ich da machen? Eine eigene MediaWiki-Installattion habe ich noch nie gemacht. --[[Benutzer:MGChecker|MGChecker]] ([[Benutzer Diskussion:MGChecker|Disk.]] &#124; [[Spezial:Beiträge/MGChecker|Beitr.]] &#124; [[Benutzer:MGChecker/Bewertung|Bewert.]]) 12:44, 17. Jan. 2015 (CET)
+
+:Ich habe zwar ein privates Testwiki, aber dort funktioniert <code>$wgRateLimits</code> nicht (und den meisten anderen Testwiki-Besitzern wird das ähnlich gehen). Frag am besten mal unter [[mw:Project:Support desk]] nach, dort sollte es eigentlich jemand wissen. --[[Benutzer:Schnark|Schnark]] 10:37, 19. Jan. 2015 (CET)
+
+== Echo-Test ==
+
+[[Benutzer:X" onclick="alert('XSS');" title="y]] [[Benutzer Diskussion:Schnark]] 10:15, 29. Jan. 2015 (CET)
+
+[[Benutzer:X" onclick="alert('XSS');" title="y]] [[Benutzer:Schnark|<span>falsch]] verschachtelt</span> 10:20, 29. Jan. 2015 (CET)
diff --git a/Echo/tests/phpunit/includes/revision_txt/138275105.txt b/Echo/tests/phpunit/includes/revision_txt/138275105.txt
new file mode 100644
index 00000000..0e151d48
--- /dev/null
+++ b/Echo/tests/phpunit/includes/revision_txt/138275105.txt
@@ -0,0 +1,80 @@
+{{Autoarchiv
+|Alter=30
+|Mindestbeiträge=1
+|Klein=Ja
+|Ziel='Benutzer Diskussion:Schnark/Archiv4'
+|Übersicht=[[Spezial:Präfixindex/Benutzer Diskussion:Schnark/Archiv|Archiv]].</b> Das momentan verwendete Archiv ist <b>[[Benutzer Diskussion:Schnark/Archiv4|Archiv 4]]
+|Frequenz=sonntags
+}}
+
+== Code-Review (3. Versuch) ==
+
+Hallo Schnark, habe [[Benutzer Diskussion:Schnark/Archiv4#Code-Review|deine Einwände]] umgesetzt. Allerdings kann ich tatsächlich nicht sagen ob diese Bugfrei sind. Da diese Bananen-Methodik heutzutage jedoch gang und gebe ist, würde ich mich jedoch umgehend bzw. zeitnäher als bis jetzt um eine Bearbeitung kümmern.[http://de.wikipedia.beta.wmflabs.org/wiki/Benutzer:Perhelion Freundliche Grüße]<kbd style="white-space:nowrap;color:#567"> ↔ ''[[User: Perhelion]]''<small> 17:00, 16. Okt. 2014 (CEST)</small></kbd>
+
+:de.wikipedia.beta.wmflabs.org liefert mir seit Tagen nur Ladefehler, sodass ich deinen Code nicht sehen kann. --[[Benutzer:Schnark|Schnark]] 10:55, 17. Okt. 2014 (CEST)
+
+:: Schade, ich dachte das zwischen uns ist eine Win-win-Situation. (Leider bekomme ich langsam den Verdacht, dass du etwas gegen mich hast⁉) [[Datei:SMirC-bored.svg|18px|-.-]]<kbd style="white-space:nowrap;color:#567"> ↔ ''[[User: Perhelion]]''<small> 08:48, 31. Okt. 2014 (CET)</small></kbd>
+
+:::Labs hat etwas gegen mich und leitet mich noch immer stur auf HTTPS um, wo mir dann ein Serverfehler präsentiert wird. --[[Benutzer:Schnark|Schnark]] 09:35, 31. Okt. 2014 (CET)
+
+:::: Ach ok, das hatte ich auch. Ich musste erst meinen kompletten BrowserCache löschen (wie mir PeCh riet).<kbd style="white-space:nowrap;color:#567"> ↔ ''[[User: Perhelion]]''<small> 10:15, 31. Okt. 2014 (CET)</small></kbd>
+
+::::Irgendwo kam ein <code>forceHttps</code>-Cookie her, jetzt ist es weg. Es fallen immer noch viele Dinge beim reinen Überfliegen auf:
+::::http://de.wikipedia.beta.wmflabs.org/wiki/Benutzer:Perhelion/signing.js
+:::::<code>mw.loader.using('jquery.textSelection');</code> bringt in dieser Form nichts, du musst den Code, der auf die Funktionen aus <code>jquery.textSelection</code> angewiesen ist, als Callback-Funktion im zweiten Parameter übergeben oder alternativ dem zurückgegebenen Promise-Objekt anhängen.
+:::::<code>n.test(cfg.sigText[-1])</code> ist immer falsch
+:::::<code>pos = txt.indexOf('\n', pos);</code> schlägt fehl, wenn kein Zeilenumbruch mehr kommt (unwahrscheinlich, aber möglich)
+:::::<code>/de|als/.test(cfg.wgUserLanguage)</code>: Die Anzahl der Benutzer mit <code>ks-deva</code>, die keine deutsche Lokalisierung wollen oder der mit <code>pfl</code>, die Deutsch dem Englischen vorziehen, dürfte klein sein. Trotzdem solltest du <code>mw.language.getFallbackLanguageChain()</code> verwenden, dafür ist es da.
+:::::Den <code>wpAutoSummary</code>-Hack verstehe ich nicht, aber vermutlich führt er dazu, dass die Funktion „Warnen, wenn Zusammenfassung fehlt“ nicht mehr zuverlässig funktioniert.
+:::::Gibt es irgendeinen Grund <code>..updateTooltipAccessKeys()</code> nicht einfach für die eingefügten Elemente aufzurufen, statt irgendwelche komischen Hacks zu verwenden?
+::::http://de.wikipedia.beta.wmflabs.org/wiki/Benutzer:Perhelion/sectionSummary.js verwendet mit <code>$.unique</code> ''immer noch'' eine Funktion, die nur für DOM-Elemente funktioniert, für normale Arrays. --[[Benutzer:Schnark|Schnark]] 12:06, 6. Nov. 2014 (CET)
+:::::: Vielen Dank auch diesmal, ich denke morgen werde ich das signing-script updaten. Das sectionSummary habe ich soweit gefixt und auch gleich mit weiterer Funktion verbessert. Ein schönes Wochenende. VG<kbd style="white-space:nowrap;color:#567"> ↔ ''[[User: Perhelion]]''<small> 15:07, 15. Nov. 2014 (CET)</small></kbd>
+
+:::::::Was sollen die Änderungen von <code>foo !== -1</code> in <code>!~foo</code>? Ersteres ist deutlich verständlicher und gilt als performanter (in Firefox ist beides praktisch gleich schnell, aber im IE ist es wirklich ein Faktor 2 in der Laufzeit)? --[[Benutzer:Schnark|Schnark]] 09:20, 20. Nov. 2014 (CET)
+
+:::::::: Du siehst aber auch alles (wohl weil JSHint hier auch meckert). Ja hm* verständlicher ist relativ, also für mich ist es rein optisch schon verständlicher (hatte es einfach aus einem Code-Snippet, fand es einfach gut ohne einen Logical-Operator).[[Datei:SMirC-grin.svg|18px|X-)]] Vielen Dank für den Hinweis, ich werde es wieder rückgängig machen.
+:::::::: Bin jetzt auch mit dem autoSigning fertig (mit ebenfalls kleinen Verbesserungen). Mit dem <code>accessKey</code> hatte ich mich wirklich schwer getan (zudem der Tooltip in Chrome vorher auch nicht gestimmt hatte). Bis nachher VG<kbd style="white-space:nowrap;color:#567"> ↔ ''[[User: Perhelion]]''<small> 21:08, 20. Nov. 2014 (CET)</small></kbd>
+
+:::::::::Verständlich ist es nur dann, wenn man weiß, dass negative Integers intern als [[Zweierkomplement]] dargestellt werden, was in gewisser Hinsicht die natürlichste, aber keineswegs die offensichtlichste oder einzige Darstellung ist. Tatsächlich finde ich im ES5-Standard kein einziges Wort dazu, in ES6 auch nur eine sehr versteckte Erwähnung am Rande.
+:::::::::Warnungen von JSHint sind nicht dazu da Programmierer zu ärgern, sondern sollten von sehr wenigen Ausnahmefällen abgesehen immer beachtet werden.
+:::::::::In signing.js trifft mein Kommentar zum <code>wpAutoSummary</code>-Hack noch immer zu, das gilt natürlich auch für sectionSummary.js. <code>Array.prototype.filter</code> führt als ES5-Methode im IE8 zu Laufzeitfehlern. Wie gesagt, IE8 ist nicht das Maß aller Dinge, aber solange MW diesen Browser unterstützt, darf kein Skript Laufzeitfehler auslösen. Entweder lädst du den ES5-Shim oder schreibst die entsprechende Anweisung auf jQuery um. Gleiches gilt für ausgefallenere Methoden von <code>console</code>. --[[Benutzer:Schnark|Schnark]] 09:53, 21. Nov. 2014 (CET)
+┌{{padleft:┘|22|─}}<br />
+Ich kümmer mich die Woche drum (mir sind jetzt auch noch einige Kleinigkeiten bzw. Verbesserungen eingefallen, man muss sich ja immer wieder erst in den ganzen Code reindenken).
+@Hack: Ich finde auf Diskussionsseiten ist dieser Hack legitim, er kommt auch nur zur Anwendung wenn der Minor-Button aktiviert wurde, ansonsten wird der Wert wieder resettet.
+@sectionSummary kommt hinzu dass das Summary eh vom Script geändert wird und der Tocken hinfällig wird und tatsächlich wird der Tocken nur geändert wenn das Summary geändert wurde. Damit wollte ich auf die ganze Cookie-Komplikation (die sich ja auch dieses Jahr wieder geändert hat) umgehen. Daher würde ich dich bitten ein Zugeständnis zu machen und hier ein Auge zuzudrücken.[[Datei:SMirC-wink.svg|20px|;-)]]
+PS: Ich habe mal deinen alten Bugreport [[bugzilla:38829]] etwas Aufmerksamkeit zugeführt. [[Datei:SMirC-jealous.svg|20px|(°₀°)]] LG<kbd style="white-space:nowrap;color:#567"> ↔ ''[[User: Perhelion]]''<small> 13:26, 2. Dez. 2014 (CET)</small></kbd>
+
+:Ich verwende die Funktion „Warnen, wenn Zusammenfassung fehlt“ dazu, dass ich eine Bearbeitung wirklich erst dann speichere, wenn ich fertig bin, und fülle dazu die Zusammenfassungszeile erst ganz am Schluss aus. Sollte ich zwischendurch versehentlich auf „Speichern“ klicken, dann bekomme ich zuerst eine Warnung. Zudem kannst du dir nie sicher sein, was die Serverseite mit ungültigen MD5-Codes macht. Im Augenblick ignoriert sie diese Tatsache, es kann aber ohne Vorwarnung passieren, dass sich dieses Verhalten plötzlich ändert, und dann der Wert, den du dort speicherst, verworfen wird, oder der Benutzer ganz am Abspeichern gehindert wird. Darum: Ein Feld, dass den MD5-Hash einer Zusammenfassung enthalten soll, darf auch nur den MD5-Hash einer Zusammenfassung enthalten und sonst nichts.
+:happy5214 kümmert sich gerade sehr um meine Bugreports, [[phab:T39485]], den er auch behoben hat, war mir ehrlich gesagt wichtiger. --[[Benutzer:Schnark|Schnark]] 09:11, 3. Dez. 2014 (CET)
+:: Nun denn ein Frohes Neues! (Bevor der Thread wieder in der Versenkung verschwindet, ich habe deine Einwände betr. „Warnen“ dahingehend „gefixt“, dass das hidden Tocken-Feld vor dem Speichern gänzlich resetet wird.) Es scheint mir du würdest tatsächlich auf eine Cookielösung hinaus wollen (denn eine andere sehe ich jetzt nicht)⁉ OT: Mir scheint du hast dein [[Benutzer:Schnark/js/Wikisyntax-config.js|WSTM config]] gänzlich deaktiviert (oder ich habe deine Mühen zur Unterbindung fremder Einbindung nicht völlig erfasst, Z.151)!?<kbd style="white-space:nowrap;color:#567"> ↔ ''[[User: Perhelion]]'' <small> 14:59, 3. Jan. 2015 (CET)</small></kbd>
+:::Selbst wenn du beim Abspeichern den Inhalt von wpAutoSummary beim Speichern wiederherstellst, reicht das nicht, es muss bei jeglicher Serverinteraktion, also auch bei der Vorschau, ein korrekter Wert übergeben werden, andernfalls musst du mit undefiniertem Verhalten rechnen. --[[Benutzer:Schnark|Schnark]] 09:28, 5. Jan. 2015 (CET)
+
+== Danke ==
+
+Vielen Dank für Deine sehr ausführliche und hilfreiche Antwort auf meine [[Wikipedia:Auskunft#Hilberts_Axiomensystem_der_euklidischen_Geometrie|Frage auf der Wikipedia-Asukunft]]. Mir ist gleich ein ganzer Kronleuchter aufgegangen... {{unsigniert|79.245.165.238|17:49, 8. Jan. 2015 (CET)‎}}
+
+:Gern geschehen! --[[Benutzer:Schnark|Schnark]] 09:03, 9. Jan. 2015 (CET)
+
+== Bug erstellen ==
+
+Hi Schnark, könntest Du bitte mal schauen, ob es zu dem [[Wikipedia:Bots/Anfragen/Archiv/2014-2#Referenzierungsfehler_finden|hier beschriebenem Problem]] schon einen Bug gibt und ihn ggf. erstellen?--[[Benutzer:Mabschaaf|Mabschaaf]] 23:20, 15. Jan. 2015 (CET)
+
+:Ehrlich gesagt ist mir der Abschnitt viel zu lang um ihn mir durchzulesen. Du kannst unter https://phabricator.wikimedia.org/maniphest/query/advanced/ selbst suchen, mit deinem Wikipedia-Konto kannst du dich inzwischen auch direkt bei Phabricator anmelden und selbst eine Task anlegen, wenn du nichts findest. So schwer ist das nicht, und wenn man beim ersten Mal etwas falsch macht, ist das auch nicht schlimm. --[[Benutzer:Schnark|Schnark]] 10:15, 16. Jan. 2015 (CET)
+::Du musst gar nicht den kompletten Abschnitt lesen, das erste Posting reicht. Ich werde auf phab sicher nicht aktiv.--[[Benutzer:Mabschaaf|Mabschaaf]] 16:08, 16. Jan. 2015 (CET)
+:::[[Benutzer:Se4598]] wars: [[phab:T85386]]. Was spricht gegen phab? (Oder jeden anderen Bug-Tracker?) [[Benutzer:Umherirrender|Der Umherirrende]] 16:50, 16. Jan. 2015 (CET)
+:::: Also ich finde (den Abschnitt auch zu lang), dass Phab fast in jeder Hinsicht ein Fortschritt zum alten Bugzilla ist (ein paar wenige Schwächen wird es wohl geben, aber darum soll es ja hier jetzt nicht gehen).<kbd style="white-space:nowrap;color:#567"> ↔ ''[[User: Perhelion]]'' <small> 21:55, 16. Jan. 2015 (CET)</small></kbd>
+
+== Testwiki ==
+
+Hallo Schnark,
+ich bräuchte, um Dinge für [[WP:Meinungsbilder/Erweiterung der Sichterrechte|dieses MB]] eine Möglichkeit, in einem Wiki, in dem die Benutzerrechtskonfiguration mit einer Ausnahme genau wie hier sind, zu editiern und verschieben. Um genau zu sein geht es um eine zusätzliche Benutzergruppe mit move-subpages, suppressredirect und unwatchedpages. Was kann ich da machen? Eine eigene MediaWiki-Installattion habe ich noch nie gemacht. --[[Benutzer:MGChecker|MGChecker]] ([[Benutzer Diskussion:MGChecker|Disk.]] &#124; [[Spezial:Beiträge/MGChecker|Beitr.]] &#124; [[Benutzer:MGChecker/Bewertung|Bewert.]]) 12:44, 17. Jan. 2015 (CET)
+
+:Ich habe zwar ein privates Testwiki, aber dort funktioniert <code>$wgRateLimits</code> nicht (und den meisten anderen Testwiki-Besitzern wird das ähnlich gehen). Frag am besten mal unter [[mw:Project:Support desk]] nach, dort sollte es eigentlich jemand wissen. --[[Benutzer:Schnark|Schnark]] 10:37, 19. Jan. 2015 (CET)
+
+== Echo-Test ==
+
+[[Benutzer:X" onclick="alert('XSS');" title="y]] [[Benutzer Diskussion:Schnark]] 10:15, 29. Jan. 2015 (CET)
+
+[[Benutzer:X" onclick="alert('XSS');" title="y]] [[Benutzer:Schnark|<span>falsch]] verschachtelt</span> 10:20, 29. Jan. 2015 (CET)
+
+[[Benutzer:X" onclick="alert('XSS');" title="y]] --[[Benutzer:Schnark]] ([[Benutzer:Schnark/js|js]]) 10:26, 29. Jan. 2015 (CET)
diff --git a/Echo/tests/phpunit/includes/revision_txt/40608353.txt b/Echo/tests/phpunit/includes/revision_txt/40608353.txt
new file mode 100644
index 00000000..3d4bcba8
--- /dev/null
+++ b/Echo/tests/phpunit/includes/revision_txt/40608353.txt
@@ -0,0 +1,145 @@
+{{/D}}
+== Perfil ==
+
+Olá, Paulo!
+
+Verifiquei que no histórico do meu perfil aparece o teu nome como possível reversor do meu próprio perfil. Gostaria de esclarecimentos. Obrigado. Abraços [[Usuário:Montolive|ASP]] ([[Usuário Discussão:Montolive|discussão]]) 22h30min de 27 de outubro de 2014 (UTC)
+
+Entendi. Ainda há um outro erro, que não tem a ver com você. Meu perfil está relacionado com "Corsplarge" e essa relação me caracteriza como fantocheiro. Acabei de enviar uma mensagem para quem está no meu histórico e que acho que foi quem me caracterizou assim. Mas eu nunca usei outros nomes. Isso está errado. Como eu devo proceder nesse caso? [[Usuário:Montolive|ASP]] ([[Usuário Discussão:Montolive|discussão]]) 22h49min de 27 de outubro de 2014 (UTC)
+
+Ok. "Se ele parece um pato, nada como um pato e grasna como um pato, ele é provavelmente um pato". Prefiro a visão de René Magritte: "Isto não é um Cachimbo. Vê-se um cachimbo e afirma-se que não se trata de tal." Não menos importante é saber o porquê de estarem vigiando a minha página e até mesmo querendo dominar as informações do MEU próprio perfil, revertendo as informações que escolho tirar. É o meu perfil! Bem, obrigado pela ajuda. Abraços [[Usuário:Montolive|ASP]] ([[Usuário Discussão:Montolive|discussão]]) 23h13min de 27 de outubro de 2014 (UTC)
+
+Mas não há regra referente a proibir a remoção de conteúdo do meu histórico, apesar de não ser bem visto e tal. Mas não configura violação de regras da Wiki, porque é "meu perfil". Quando digo meu, quero dizer referente a mim.[[Usuário:Montolive|ASP]] ([[Usuário Discussão:Montolive|discussão]]) 23h28min de 27 de outubro de 2014 (UTC)
+
+A questão é que não fico fuçando no perfil de ninguém. Se você altera o teu perfil, nem ligo. Se o Genaron, FSogumo ou o Lord Mota alteram os deles, penso que eles devem ter o seus motivos. Se alguém altera o meu, não há outra explicação a não ser a "pegação de pé" ou a falta do que fazer. Não entendo isso! Boa noite. Abraços [[Usuário:Montolive|ASP]] ([[Usuário Discussão:Montolive|discussão]]) 23h40min de 27 de outubro de 2014 (UTC)
+
+Apenas utilizei o nome deles como exemplo para argumentar, não os culpei. Não verifico quem reverteu ou bloqueou o meu nome. Mas a princípio achei estranho você se preocupar com o que eu faço no "meu" perfil. Mas agora entendi. [[Usuário:Montolive|ASP]] ([[Usuário Discussão:Montolive|discussão]]) 00h21min de 28 de outubro de 2014 (UTC)
+
+== Obrigado pela resposta ==
+
+Mais uma questão: ele também será eliminado da busca no google?<small>—''comentário [[Ajuda:Guia_de_edição/Assinar|não assinado]] de '' [[Usuário:Bernardo Rodrigues|Bernardo Rodrigues]] ([[Usuário Discussão:Bernardo Rodrigues|discussão]]&nbsp;•&nbsp;[[Especial:Contribuições/Bernardo Rodrigues|contrib]]) 20h07min de 28 de outubro de 2014‎ (UTC)</small><!-- Substituído da Predefinição:Não assinou -->
+
+== Maiores wikipédias ==
+
+Oi Paulo, percebi que usa a predefinição {{tl|Maiores Wikipedias}}, que atualmente está bastante impactada pelas pequenas wikis robotizadas. Note lá o cebuano, samarês e o vietnamita na frente da ptwiki, por exemplo, wikis notórias pela estratégia e que já provocaram grandes debates por aí. Não sei se era isso que queria mostrar, mas foi criada uma outra predefinição que leva em consideração a "profundidade" dos artigos, {{tl|Wikipédias com mais artigos desenvolvidos}}, que reflete melhor o papel da ptwiki (e da língua portuguesa) num cenário onde se pretende demonstrar "quem é maior", como é o caso destas predefs. Boas! [[Usuário:jbribeiro1|José Luiz]] <sup> [[Usuário Discussão:Jbribeiro1|disc]]</sup> 00h59min de 29 de outubro de 2014 (UTC)
+
+== Administrador ==
+<!-- Substituído da Predefinição:Novo administrador -->
+[[Imagem:Wikipedia Administrator.svg|direita|150px]]
+Caro usuário, informo que lhe foi <span class="plainlinks">[{{fullurl:Especial:Registro|type=rights&user=%C3%89rico+J%C3%BAnior+Wouters&page=Usuário:PauloEduardo&year=2014&month=10&hide_patrol_log=1}} atribuído]</span> o estatuto de [[Wikipédia:Administradores|administrador]] de acordo com a decisão da comunidade em [[Wikipédia:Pedidos de administração/PauloEduardo|votação]]. Por favor, apenas tenha em mente que:
+
+* Este estatuto lhe possibilita, de modo geral, o [[Especial:Registro/rights|gerenciamento de privilégios]], [[Wikipédia:Página protegida|proteção]], [[Wikipédia:eliminadores|eliminação]] e [[Wikipédia:Restauro|restauro de páginas]], além de [[Wikipédia:Administradores#Ferramentas|outras ferramentas]].
+* O abuso destas ferramentas poderá ocasionar a abertura de um [[Wikipédia:Pedidos de administração#Desnomeações do estatuto de administrador|pedido de desnomeação]]. Verifique atentamente como utilizar as suas permissões e como [[Wikipédia:Regras de conduta para administradores|deve proceder]].
+* Não se deve esquecer do que [[Wikipédia:O que os administradores não são|os administradores não são]].
+* Caso tenha quaisquer dúvidas sobre as ferramentas poderá perguntar aos outros administradores no <span class="plainlinks">[irc://freenode/wikipedia-pt-admins canal do IRC]</span>.
+* Existe a possibilidade de incluir em sua página de usuário a caixa {{tlu|Wikipédia:Userbox/Administrador}}, para fins de identificação.
+* Se, por qualquer motivo, decidir que não deseja mais usufruir desta permissão, poderá fazer um pedido de remoção no [[:m:Steward requests/Permissions|Meta-Wiki]].
+: Bom trabalho! [[Usuário:Érico Júnior Wouters|<font color="gray">'''Érico Wouters'''</font>]] <sup>[[Usuário discussão:Érico Júnior Wouters|msg]]</sup> 14h40min de 30 de outubro de 2014 (UTC)
+
+== Agradecimento ==
+
+Olá Paulo Eduardo! Agradeço a confiança pela atribuição do status de autorevisor. Parabenizo-o pela unanimidade na eleição de administrador. (não vi seu pedido, se tivesse visto votaria a favor. Suas contribuições são admiráveis.). E informo que você ganhou mais um xereta nas suas discussões...{{piscada}} {{llp}} [[Usuário:Ixocactus|Ixocactus]] ([[Usuário Discussão:Ixocactus|discussão]]) 18h45min de 30 de outubro de 2014 (UTC)
+
+== Uma medalha! ==
+
+{| style="background-color: #fdffe7; border: 1px solid #fceb92;"
+|rowspan="2" style="vertical-align: middle; padding: 5px;" | [[File:Special Barnstar Hires.png|100px]]
+|style="font-size: x-large; padding: 3px 3px 0 3px; height: 1.5em;" | '''Medalha especial'''
+|-
+|style="vertical-align: middle; padding: 3px;" | Entrego-lhe esta medalha pelas suas ótimas contribuições, pelo seu estatuto, e por ter me ajudado bastante quando eu comecei com o estatuto de reversor!
+Certamente suas dicas foram valiosas, você merece tudo de bom {{8D}}
+
+Abraços, <span style="font-family: Segoe Print, sans-serif;">[[Usuário:Jackgba|<span style="color:green;">'''Jack<span style="color:#1E90FF;">gba'''</span>]]</span></span><sup>[[Usuário Discussão:Jackgba|'''Msg''']]</sup> 16h58min de 31 de outubro de 2014 (UTC)
+|}
+
+== Vou entrar no tunel ==
+
+Olá colega, eu estava esperando para ver se ele aparecia de novo mas .... você foi rápido kkkk. É bom ver que tem outro sysop de madrugada, eu costumo passar as madrugadas sozinho. Um abraço [[Usuário:DARIO SEVERI|DARIO SEVERI]] ([[Usuário Discussão:DARIO SEVERI|discussão]]) 11h04min de 1 de novembro de 2014 (UTC)
+:Nove horas no sábado é ainda de madrugada, aqui são quase as 7 da noite e estou me preparando para sair com a minha noiva asiática, para dizer a verdade já é minha esposa. Abraço(s) + de um ... não quero ser considerado egoísta também hahaha. [[Usuário:DARIO SEVERI|DARIO SEVERI]] ([[Usuário Discussão:DARIO SEVERI|discussão]]) 11h40min de 1 de novembro de 2014 (UTC)
+
+== Wikipédia Discussão:Página de testes ==
+
+Para info:
+
+'''Wikipédia Discussão:Página de testes'''
+
+A página esta protegida desde 16h47min de 7 de maio de 2011 por EuTuga [edit=sysop] (infinito) [move=sysop] (infinito)
+
+Nenhum robô pode editar esta página.
+
+Sds, [[Usuário:Kim richard|Kim ®ichard]] <sup>[[Usuário Discussão:Kim richard|oi]]</sup> 15h48min de 4 de novembro de 2014 (UTC)
+
+:Entendi. Sinto não poder ajudar. Abraços [[Usuário:Kim richard|Kim ®ichard]] <sup>[[Usuário Discussão:Kim richard|oi]]</sup> 19h48min de 4 de novembro de 2014 (UTC)
+
+== Re: Reversão ==
+
+Erro meu. Quis reverter várias edições (incluindo a do ip anterior ao que você já tinha revertido) e em vez de clicar em desfazer, fui por engano, em "reverter" (o que desfez só a sua edição). Obrigado por avisar. [[Usuário(a):Eamaral|Eamaral]] ([[Usuário(a) Discussão:Eamaral|discussão]]) 22h51min de 10 de novembro de 2014 (UTC)
+== Discussão de bloqueio ==
+{{ambox|tipo=notícia|texto=Caro administrador, foi iniciado um pedido de revisão de bloqueio do(a) usuário(a) [[Usuário:Iacobus Artifex|Iacobus Artifex]].<br />A discussão está ocorrendo na seguinte página: [[Wikipédia:Pedidos a administradores/Discussão de bloqueio/Iacobus Artifex]].<br />Lembre-se de que a sua <u>[[Wikipédia:Pedidos a administradores/Discussão de bloqueio/Iacobus Artifex#Avaliação dos administradores|análise]]</u> do bloqueio deve ocorrer, obrigatoriamente, ao abrigo das [[Wikipédia:Políticas e recomendações|políticas e recomendações do projeto]] e da [[Wikipédia:Política de bloqueio|política de bloqueio]], incluindo, na medida do possível, uma síntese cuidadosa dos argumentos expostos.<br />Sua participação é importante.
+<div style="font-size: smaller; text-align: center;">Mensagem enviada automáticamente por [[User:Aleth Bot|Aleth Bot]].<br />Caso pretenda deixar de receber as notificações, avise o [[Utilizador discussão:Alchimista|operador]][[Usuária:Aleth Bot|Aleth Bot]] ([[Usuária Discussão:Aleth Bot|discussão]]) 03h26min de 11 de novembro de 2014 (UTC)}}
+
+== Moção ==
+
+Por favor, pode mover [[Não Adianta Chorar (desambiguação)]] para [[Não Adianta Chorar]]?
+
+Aproveitando a ocasião, há alguns pedidos dessa natureza em [[WP:PA/Outros]], aguardando atendimento. Se puder dar uma olhada, agradeço.
+
+[[Image:Fuchs-Vulcan salute.svg|20px|Piscada]]<!--code style="background:yellow">;-)</code--> ''Vida longa e próspera!''
+
+[[Usuário:Yanguas|<span style="color:#8b0000;font-family:Viner Hand ITC;font-size:11pt">Yanguas</span>]] <sup>[[Usuário Discussão:Yanguas|diz!]]-[[Especial:Contribuições/Yanguas|fiz]]</sup> 14h20min de 11 de novembro de 2014 (UTC)
+
+== IP :199.255.210.169 ==
+
+Olá PauloEduardo, bloqueia [https://pt.wikipedia.org/wiki/Usu%C3%A1rio(a)_Discuss%C3%A3o:199.255.210.169|esse usuário IP], ele também é um proxy aberto, fiz o pedido de bloqueio dele na [[WP:P/B]], mas como você mesmo pode conferir, lá ele aparece como um usuário inexistente, por isso to fazendo o pedido de bloqueio na sua PDU. {{llp}}--[[Usuário:Leon saudanha|<span style="color: #0ff; background: #000;">Leon saudanha</span>]] 17h59min de 11 de novembro de 2014 (UTC)
+:{{U|Leon saudanha}}, aonde diz que esse IP é um proxy aberto? [[Usuário:PauloEduardo|<span style="font-size:13px; color:blue;font-family:Lucida Handwriting;text-shadow:aqua 5px 3px 12px;">Paulo Eduardo</span>]]'' <sup>[[User Talk:PauloEduardo|<font color="gold" face="Lucida Calligraphy">Discussão</font>]]</sup>'' 18h02min de 11 de novembro de 2014 (UTC)
+[https://pt.wikipedia.org/wiki/Wikip%C3%A9dia:Detec%C3%A7%C3%A3o_de_proxies_abertos aqui], ele é um proxy aberto tão poderoso que consegue até mesmo ocultar seu endereço https de usuário aqui, por isso não dá pra chegar a ele apenas apontando o link de sua PDU--[[Usuário:Leon saudanha|<span style="color: #0ff; background: #000;">Leon saudanha</span>]] 18h12min de 11 de novembro de 2014 (UTC)
+:OK {{U|Leon saudanha}}, a {{U|Belanidia}} já bloqueou. Mas não vá na hipótese que exista um proxy "tão poderoso" a ponto de não lhe permitir fazer [[User talk:199.255.210.169|isso]], ou [[Especial:Contribuições/199.255.210.169|isso]]. [[Usuário:PauloEduardo|<span style="font-size:13px; color:blue;font-family:Lucida Handwriting;text-shadow:aqua 5px 3px 12px;">Paulo Eduardo</span>]]'' <sup>[[User Talk:PauloEduardo|<font color="gold" face="Lucida Calligraphy">Discussão</font>]]</sup>'' 18h18min de 11 de novembro de 2014 (UTC)
+Foi um erro de escrita rs. Ele é um anonimizador, provavelmente é por isso que não adiantou pedir o bloqueio dele na [[WP:P/B]]--[[Usuário:Leon saudanha|<span style="color: #0ff; background: #000;">Leon saudanha</span>]] 18h23min de 11 de novembro de 2014 (UTC)
+:Certo {{U|Leon saudanha|Leon}}, sem problemas, hehehehe... Um abraço. [[Usuário:PauloEduardo|<span style="font-size:13px; color:blue;font-family:Lucida Handwriting;text-shadow:aqua 5px 3px 12px;">Paulo Eduardo</span>]]'' <sup>[[User Talk:PauloEduardo|<font color="gold" face="Lucida Calligraphy">Discussão</font>]]</sup>'' 18h25min de 11 de novembro de 2014 (UTC)
+
+==[[:TV Globo América do Sul]]==
+<!-- O aviso a seguir foi substituído da Predefinição:Aviso-PE -->
+[[Imagem:Ambox warning yellow.svg|left|48px|]]
+
+O verbete [[:TV Globo América do Sul]], editado por você, foi marcado para [[Wikipédia:Eliminação por consenso|eliminação por consenso]], por ter sido considerado, por algum editor, não condizente com a Wikipédia; isso significa que o verbete talvez não satisfaça os [[Wikipédia:Critérios de notoriedade|critérios de notoriedade]] estabelecidos pela comunidade ou se encaixe no descrito em {{nowrap|[[Wikipédia:O que a Wikipédia não é|O que a Wikipédia não é]].}}
+
+Você poderá <u>'''[[Wikipédia:Páginas para eliminar/TV Globo América do Sul|expor seus argumentos na discussão]]'''</u> para manter ou eliminar, porém '''jamais''' remova o aviso de eliminação que está no verbete, pois seria considerado [[WP:vandalismo|vandalismo]].
+
+Boas contribuições! [[Usuário:GRS73|Fabiano]] <sup> [[Usuário Discussão:GRS73|'''msg''']]</sup> 22h28min de 11 de novembro de 2014 (UTC)
+
+== Usuário Atlanticidades IESF ==
+
+Olá Paulo, o usuário {{u|Atlanticidades IESF}} é provavelmente um [[WP:SOCK|fantoche]] do usuário {{u|Jorgesandramanuel}} usado para tentar recriar o artigo [[IESF]] após eu ter avisado na PDU dele que se insistisse com essa atitude, seria bloqueado--[[Usuário:Leon saudanha|<span style="color: #0ff; background: #000;">Leon saudanha</span>]] 22h58min de 12 de novembro de 2014 (UTC)
+
+== Patrulhamento ==
+
+Poderia tentar [[Ajuda:Edição patrulhada|patrulhar]] as edições que reverte? Isso evitaria que elas aparecessem na lista de revisões que outros editores precisam conferir posteriormente... Aparentemente [[bugzilla:72433|o Huggle não faz isso automaticamente]] quando o utiliza em vez do sistema de ''rollback'' do próprio MediaWiki. [[Usuário(a):He7d3r|Helder]] 12h59min de 13 de novembro de 2014 (UTC)
+:Ah sim. E diferente do que disse, não sou reversor, sou administrador. E marquei a opção ''Use software rollback''. Vou tentar fazer um teste com essa opção marcada e desmarcada. Att, [[Usuário:PauloEduardo|<span style="font-size:13px; color:blue;font-family:Lucida Handwriting;text-shadow:aqua 5px 3px 12px;">Paulo Eduardo</span>]]'' <sup>[[User Talk:PauloEduardo|<font color="gold" face="Lucida Calligraphy">Discussão</font>]]</sup>'' 13h19min de 13 de novembro de 2014 (UTC)
+::Estranho. Nenhuma das duas edições revertidas ([[Special:Diff/40601214|40601214]] e [[Special:Diff/40601225|40601225]]) foi [https://pt.wikipedia.org/w/index.php?title=Especial:Registo&dir=prev&offset=20141113000000&limit=10&type=patrol&user=&page=Usu%C3%A1rio%3APauloEduardo%2FTestes&tagfilter=&hide_patrol_log=1&hide_review_log=1&hide_thanks_log=1 registrada como patrulhada] (só as reversões propriamente ditas, [[Special:Diff/40601219|40601219]] e [[Special:Diff/40601231|40601231]]).
+::Sobre o que eu disse no bug, eu tinha informado ele antes de você ter adquirido as permissões administrativas. Atualizei lá com informações sobre os seus testes recentes. [[Usuário(a):He7d3r|Helder]] 13h31min de 13 de novembro de 2014 (UTC)
+:::{{Ping|He7d3r}} Entendi. Pensei que tinha feito o pedido recentemente. Estranho mesmo acontecer nas duas situações. [[Usuário:PauloEduardo|<span style="font-size:13px; color:blue;font-family:Lucida Handwriting;text-shadow:aqua 5px 3px 12px;">Paulo Eduardo</span>]]'' <sup>[[User Talk:PauloEduardo|<font color="gold" face="Lucida Calligraphy">Discussão</font>]]</sup>'' 13h35min de 13 de novembro de 2014 (UTC)
+::::Pois é... Isso é muito inconveniente. [[Usuário(a):He7d3r|Helder]] 13h40min de 13 de novembro de 2014 (UTC)
+::::Também está acontecendo nas edições que o [[User:Vitor Mazuco|Vitor Mazuco]] reverte (por exemplo, eu tive que [https://pt.wikipedia.org/wiki/Especial:Registo/patrol?page=Coenzimas&uselang=en patrulhar] uma [[Special:Diff/40601249|edição]] que ele já havia revertido). [[Usuário(a):He7d3r|Helder]] 13h45min de 13 de novembro de 2014 (UTC)
+Hmmm, estranho, então não é só comigo. Chato é ter que marcar todas as edições que forem revertidas pelo Huggle como patrulhadas manualmente. [[Usuário(a):PauloEduardo|<span style="font-size:13px; color:blue;font-family:Lucida Handwriting;text-shadow:aqua 5px 3px 12px;">Paulo Eduardo</span>]]'' <sup>[[User Talk:PauloEduardo|<font color="gold" face="Lucida Calligraphy">Discussão</font>]]</sup>'' 13h48min de 13 de novembro de 2014 (UTC)
+
+== Notificações ==
+Por algum motivo não fui notificado quando [[Special:Diff/40601300|mencionou meu nome de usuário]]. Poderia fazer um teste? Troque "Usuário" por "Usuário(a)" na sua assinatura e mencione meu nome de usuário novamente para conferirmos se funciona? [[Usuário(a):He7d3r|Helder]] 13h40min de 13 de novembro de 2014 (UTC)
+:{{Ping|He7d3r}} Com a assinatura normal foi feita em minha página de testes. Agora com Usuário(a) foi feito aqui. [[Usuário(a):PauloEduardo|<span style="font-size:13px; color:blue;font-family:Lucida Handwriting;text-shadow:aqua 5px 3px 12px;">Paulo Eduardo</span>]]'' <sup>[[User Talk:PauloEduardo|<font color="gold" face="Lucida Calligraphy">Discussão</font>]]</sup>'' 13h45min de 13 de novembro de 2014 (UTC)
+::<del>Não funcionou. Estamos com azar hoje... [[Image:Sad.png]].</del> [[Usuário(a):He7d3r|Helder]] 13h49min de 13 de novembro de 2014 (UTC) <ins>Isso foi culpa do [[bugzilla:54639]]</ins>
+:::Não sei se lembra, mas não é a primeira vez que isso acontece comigo. Ora o usuário citado [https://pt.wikipedia.org/w/index.php?title=Especial:Restaurar&target=Usu%C3%A1rio%3APauloEduardo%2FTestes&timestamp=20141106213328&diff=prev recebe notificação], [[Wikipédia:Pedidos/Bloqueio#Albergue.alb|ora não]]. [[Usuário(a):PauloEduardo|<span style="font-size:13px; color:blue;font-family:Lucida Handwriting;text-shadow:aqua 5px 3px 12px;">Paulo Eduardo</span>]]'' <sup>[[User Talk:PauloEduardo|<font color="gold" face="Lucida Calligraphy">Discussão</font>]]</sup>'' 13h52min de 13 de novembro de 2014 (UTC)
+::Eu informei no [[bugzilla:73366]] mas seria interessante fazermos mais alguns testes para descobrir exatamente em que situações esse problema ocorre. Poderia tentar me notificar mais uma vez, com a assinatura padrão (isto é, esvaziando o campo de assinatura personalizada e sem "Tratar assinatura como texto wiki")? [[Usuário(a):He7d3r|Helder]] 13h57min de 13 de novembro de 2014 (UTC)
+:::{{Ping|He7d3r}} em minha página de testes e aqui. Alguma coisa? [[Usuário:PauloEduardo|PauloEduardo]] ([[Usuário Discussão:PauloEduardo|discussão]]) 14h02min de 13 de novembro de 2014 (UTC)
+::::As edições [[Special:Diff/40601500|40601500]], [[Special:Diff/40601506|40601506]] e [[Special:Diff/40601521|40601521]] geraram uma notificação. Por outro lado, só agora notei que a [[Special:Diff/40601378|40601378]] do seu teste anterior não deveria ser considerada, pois pode ter sido afetada por [[bugzilla:54639|outro bug igualmente chato]], que ocorre quando alguém substitui um conteúdo que já existia na página. [[Usuário(a):He7d3r|Helder]] 14h07min de 13 de novembro de 2014 (UTC)
+:[[bugzilla:73366#c1|Resumo]]: parece que no momento só o que funciona é "User" e "Usuário" (antes, pelo que me recordo, só funcionavam "Usuário" e "Usuário(a)"). [[Usuário(a):He7d3r|Helder]] 14h42min de 13 de novembro de 2014 (UTC)
+::Entendi {{U|He7d3r}}, acho que é esse bug mesmo. {{=)}} [[Usuário(a):PauloEduardo|<span style="font-size:13px; color:blue;font-family:Lucida Handwriting;text-shadow:aqua 5px 3px 12px;">Paulo Eduardo</span>]]'' <sup>[[User Talk:PauloEduardo|<font color="gold" face="Lucida Calligraphy">Discussão</font>]]</sup>'' 15h05min de 13 de novembro de 2014 (UTC)
+:::Com sorte será só [https://gerrit.wikimedia.org/r/#/c/173077/1/includes/DiscussionParser.php,unified este problema com os parêntesis] que acabaram de corrigir (mas que demorará uns dias para ficar online, eu acho). [[Usuário(a):He7d3r|Helder]] 22h25min de 13 de novembro de 2014 (UTC)
+::::Fiz alguns testes e agora todas as opções estão funcionando: "User", "Usuário", "Usuário(a)", "Usuária", "User talk", "Usuário Discussão", "Usuário(a) Discussão" e "Usuária Discussão". [[Usuário(a):He7d3r|Helder]] 11h31min de 14 de novembro de 2014 (UTC)
+
+== Uma medalha! ==
+
+{| style="background-color: #fdffe7; border: 1px solid #fceb92;"
+|rowspan="2" style="vertical-align: middle; padding: 5px;" | [[File:Barnstar of Reversion Hires.png|100px]]
+|style="font-size: x-large; padding: 3px 3px 0 3px; height: 1.5em;" | '''Medalha pelo combate ao vandalismo'''
+|-
+|style="vertical-align: middle; padding: 3px;" | Muito obrigado pelo bloqueio temporário da página, pois considero ato de reverter o trabalho de meses de um usuário, de má fé. Em breve entraremos em um consenso. [[Usuário(a):JoseAlfedo|JoseAlfedo]] ([[Usuário(a) Discussão:JoseAlfedo|discussão]]) 16h01min de 13 de novembro de 2014 (UTC)
+|}
diff --git a/Echo/tests/phpunit/includes/revision_txt/40610292.txt b/Echo/tests/phpunit/includes/revision_txt/40610292.txt
new file mode 100644
index 00000000..c08945d3
--- /dev/null
+++ b/Echo/tests/phpunit/includes/revision_txt/40610292.txt
@@ -0,0 +1,146 @@
+{{/D}}
+== Perfil ==
+
+Olá, Paulo!
+
+Verifiquei que no histórico do meu perfil aparece o teu nome como possível reversor do meu próprio perfil. Gostaria de esclarecimentos. Obrigado. Abraços [[Usuário:Montolive|ASP]] ([[Usuário Discussão:Montolive|discussão]]) 22h30min de 27 de outubro de 2014 (UTC)
+
+Entendi. Ainda há um outro erro, que não tem a ver com você. Meu perfil está relacionado com "Corsplarge" e essa relação me caracteriza como fantocheiro. Acabei de enviar uma mensagem para quem está no meu histórico e que acho que foi quem me caracterizou assim. Mas eu nunca usei outros nomes. Isso está errado. Como eu devo proceder nesse caso? [[Usuário:Montolive|ASP]] ([[Usuário Discussão:Montolive|discussão]]) 22h49min de 27 de outubro de 2014 (UTC)
+
+Ok. "Se ele parece um pato, nada como um pato e grasna como um pato, ele é provavelmente um pato". Prefiro a visão de René Magritte: "Isto não é um Cachimbo. Vê-se um cachimbo e afirma-se que não se trata de tal." Não menos importante é saber o porquê de estarem vigiando a minha página e até mesmo querendo dominar as informações do MEU próprio perfil, revertendo as informações que escolho tirar. É o meu perfil! Bem, obrigado pela ajuda. Abraços [[Usuário:Montolive|ASP]] ([[Usuário Discussão:Montolive|discussão]]) 23h13min de 27 de outubro de 2014 (UTC)
+
+Mas não há regra referente a proibir a remoção de conteúdo do meu histórico, apesar de não ser bem visto e tal. Mas não configura violação de regras da Wiki, porque é "meu perfil". Quando digo meu, quero dizer referente a mim.[[Usuário:Montolive|ASP]] ([[Usuário Discussão:Montolive|discussão]]) 23h28min de 27 de outubro de 2014 (UTC)
+
+A questão é que não fico fuçando no perfil de ninguém. Se você altera o teu perfil, nem ligo. Se o Genaron, FSogumo ou o Lord Mota alteram os deles, penso que eles devem ter o seus motivos. Se alguém altera o meu, não há outra explicação a não ser a "pegação de pé" ou a falta do que fazer. Não entendo isso! Boa noite. Abraços [[Usuário:Montolive|ASP]] ([[Usuário Discussão:Montolive|discussão]]) 23h40min de 27 de outubro de 2014 (UTC)
+
+Apenas utilizei o nome deles como exemplo para argumentar, não os culpei. Não verifico quem reverteu ou bloqueou o meu nome. Mas a princípio achei estranho você se preocupar com o que eu faço no "meu" perfil. Mas agora entendi. [[Usuário:Montolive|ASP]] ([[Usuário Discussão:Montolive|discussão]]) 00h21min de 28 de outubro de 2014 (UTC)
+
+== Obrigado pela resposta ==
+
+Mais uma questão: ele também será eliminado da busca no google?<small>—''comentário [[Ajuda:Guia_de_edição/Assinar|não assinado]] de '' [[Usuário:Bernardo Rodrigues|Bernardo Rodrigues]] ([[Usuário Discussão:Bernardo Rodrigues|discussão]]&nbsp;•&nbsp;[[Especial:Contribuições/Bernardo Rodrigues|contrib]]) 20h07min de 28 de outubro de 2014‎ (UTC)</small><!-- Substituído da Predefinição:Não assinou -->
+
+== Maiores wikipédias ==
+
+Oi Paulo, percebi que usa a predefinição {{tl|Maiores Wikipedias}}, que atualmente está bastante impactada pelas pequenas wikis robotizadas. Note lá o cebuano, samarês e o vietnamita na frente da ptwiki, por exemplo, wikis notórias pela estratégia e que já provocaram grandes debates por aí. Não sei se era isso que queria mostrar, mas foi criada uma outra predefinição que leva em consideração a "profundidade" dos artigos, {{tl|Wikipédias com mais artigos desenvolvidos}}, que reflete melhor o papel da ptwiki (e da língua portuguesa) num cenário onde se pretende demonstrar "quem é maior", como é o caso destas predefs. Boas! [[Usuário:jbribeiro1|José Luiz]] <sup> [[Usuário Discussão:Jbribeiro1|disc]]</sup> 00h59min de 29 de outubro de 2014 (UTC)
+
+== Administrador ==
+<!-- Substituído da Predefinição:Novo administrador -->
+[[Imagem:Wikipedia Administrator.svg|direita|150px]]
+Caro usuário, informo que lhe foi <span class="plainlinks">[{{fullurl:Especial:Registro|type=rights&user=%C3%89rico+J%C3%BAnior+Wouters&page=Usuário:PauloEduardo&year=2014&month=10&hide_patrol_log=1}} atribuído]</span> o estatuto de [[Wikipédia:Administradores|administrador]] de acordo com a decisão da comunidade em [[Wikipédia:Pedidos de administração/PauloEduardo|votação]]. Por favor, apenas tenha em mente que:
+
+* Este estatuto lhe possibilita, de modo geral, o [[Especial:Registro/rights|gerenciamento de privilégios]], [[Wikipédia:Página protegida|proteção]], [[Wikipédia:eliminadores|eliminação]] e [[Wikipédia:Restauro|restauro de páginas]], além de [[Wikipédia:Administradores#Ferramentas|outras ferramentas]].
+* O abuso destas ferramentas poderá ocasionar a abertura de um [[Wikipédia:Pedidos de administração#Desnomeações do estatuto de administrador|pedido de desnomeação]]. Verifique atentamente como utilizar as suas permissões e como [[Wikipédia:Regras de conduta para administradores|deve proceder]].
+* Não se deve esquecer do que [[Wikipédia:O que os administradores não são|os administradores não são]].
+* Caso tenha quaisquer dúvidas sobre as ferramentas poderá perguntar aos outros administradores no <span class="plainlinks">[irc://freenode/wikipedia-pt-admins canal do IRC]</span>.
+* Existe a possibilidade de incluir em sua página de usuário a caixa {{tlu|Wikipédia:Userbox/Administrador}}, para fins de identificação.
+* Se, por qualquer motivo, decidir que não deseja mais usufruir desta permissão, poderá fazer um pedido de remoção no [[:m:Steward requests/Permissions|Meta-Wiki]].
+: Bom trabalho! [[Usuário:Érico Júnior Wouters|<font color="gray">'''Érico Wouters'''</font>]] <sup>[[Usuário discussão:Érico Júnior Wouters|msg]]</sup> 14h40min de 30 de outubro de 2014 (UTC)
+
+== Agradecimento ==
+
+Olá Paulo Eduardo! Agradeço a confiança pela atribuição do status de autorevisor. Parabenizo-o pela unanimidade na eleição de administrador. (não vi seu pedido, se tivesse visto votaria a favor. Suas contribuições são admiráveis.). E informo que você ganhou mais um xereta nas suas discussões...{{piscada}} {{llp}} [[Usuário:Ixocactus|Ixocactus]] ([[Usuário Discussão:Ixocactus|discussão]]) 18h45min de 30 de outubro de 2014 (UTC)
+
+== Uma medalha! ==
+
+{| style="background-color: #fdffe7; border: 1px solid #fceb92;"
+|rowspan="2" style="vertical-align: middle; padding: 5px;" | [[File:Special Barnstar Hires.png|100px]]
+|style="font-size: x-large; padding: 3px 3px 0 3px; height: 1.5em;" | '''Medalha especial'''
+|-
+|style="vertical-align: middle; padding: 3px;" | Entrego-lhe esta medalha pelas suas ótimas contribuições, pelo seu estatuto, e por ter me ajudado bastante quando eu comecei com o estatuto de reversor!
+Certamente suas dicas foram valiosas, você merece tudo de bom {{8D}}
+
+Abraços, <span style="font-family: Segoe Print, sans-serif;">[[Usuário:Jackgba|<span style="color:green;">'''Jack<span style="color:#1E90FF;">gba'''</span>]]</span></span><sup>[[Usuário Discussão:Jackgba|'''Msg''']]</sup> 16h58min de 31 de outubro de 2014 (UTC)
+|}
+
+== Vou entrar no tunel ==
+
+Olá colega, eu estava esperando para ver se ele aparecia de novo mas .... você foi rápido kkkk. É bom ver que tem outro sysop de madrugada, eu costumo passar as madrugadas sozinho. Um abraço [[Usuário:DARIO SEVERI|DARIO SEVERI]] ([[Usuário Discussão:DARIO SEVERI|discussão]]) 11h04min de 1 de novembro de 2014 (UTC)
+:Nove horas no sábado é ainda de madrugada, aqui são quase as 7 da noite e estou me preparando para sair com a minha noiva asiática, para dizer a verdade já é minha esposa. Abraço(s) + de um ... não quero ser considerado egoísta também hahaha. [[Usuário:DARIO SEVERI|DARIO SEVERI]] ([[Usuário Discussão:DARIO SEVERI|discussão]]) 11h40min de 1 de novembro de 2014 (UTC)
+
+== Wikipédia Discussão:Página de testes ==
+
+Para info:
+
+'''Wikipédia Discussão:Página de testes'''
+
+A página esta protegida desde 16h47min de 7 de maio de 2011 por EuTuga [edit=sysop] (infinito) [move=sysop] (infinito)
+
+Nenhum robô pode editar esta página.
+
+Sds, [[Usuário:Kim richard|Kim ®ichard]] <sup>[[Usuário Discussão:Kim richard|oi]]</sup> 15h48min de 4 de novembro de 2014 (UTC)
+
+:Entendi. Sinto não poder ajudar. Abraços [[Usuário:Kim richard|Kim ®ichard]] <sup>[[Usuário Discussão:Kim richard|oi]]</sup> 19h48min de 4 de novembro de 2014 (UTC)
+
+== Re: Reversão ==
+
+Erro meu. Quis reverter várias edições (incluindo a do ip anterior ao que você já tinha revertido) e em vez de clicar em desfazer, fui por engano, em "reverter" (o que desfez só a sua edição). Obrigado por avisar. [[Usuário(a):Eamaral|Eamaral]] ([[Usuário(a) Discussão:Eamaral|discussão]]) 22h51min de 10 de novembro de 2014 (UTC)
+== Discussão de bloqueio ==
+{{ambox|tipo=notícia|texto=Caro administrador, foi iniciado um pedido de revisão de bloqueio do(a) usuário(a) [[Usuário:Iacobus Artifex|Iacobus Artifex]].<br />A discussão está ocorrendo na seguinte página: [[Wikipédia:Pedidos a administradores/Discussão de bloqueio/Iacobus Artifex]].<br />Lembre-se de que a sua <u>[[Wikipédia:Pedidos a administradores/Discussão de bloqueio/Iacobus Artifex#Avaliação dos administradores|análise]]</u> do bloqueio deve ocorrer, obrigatoriamente, ao abrigo das [[Wikipédia:Políticas e recomendações|políticas e recomendações do projeto]] e da [[Wikipédia:Política de bloqueio|política de bloqueio]], incluindo, na medida do possível, uma síntese cuidadosa dos argumentos expostos.<br />Sua participação é importante.
+<div style="font-size: smaller; text-align: center;">Mensagem enviada automáticamente por [[User:Aleth Bot|Aleth Bot]].<br />Caso pretenda deixar de receber as notificações, avise o [[Utilizador discussão:Alchimista|operador]][[Usuária:Aleth Bot|Aleth Bot]] ([[Usuária Discussão:Aleth Bot|discussão]]) 03h26min de 11 de novembro de 2014 (UTC)}}
+
+== Moção ==
+
+Por favor, pode mover [[Não Adianta Chorar (desambiguação)]] para [[Não Adianta Chorar]]?
+
+Aproveitando a ocasião, há alguns pedidos dessa natureza em [[WP:PA/Outros]], aguardando atendimento. Se puder dar uma olhada, agradeço.
+
+[[Image:Fuchs-Vulcan salute.svg|20px|Piscada]]<!--code style="background:yellow">;-)</code--> ''Vida longa e próspera!''
+
+[[Usuário:Yanguas|<span style="color:#8b0000;font-family:Viner Hand ITC;font-size:11pt">Yanguas</span>]] <sup>[[Usuário Discussão:Yanguas|diz!]]-[[Especial:Contribuições/Yanguas|fiz]]</sup> 14h20min de 11 de novembro de 2014 (UTC)
+
+== IP :199.255.210.169 ==
+
+Olá PauloEduardo, bloqueia [https://pt.wikipedia.org/wiki/Usu%C3%A1rio(a)_Discuss%C3%A3o:199.255.210.169|esse usuário IP], ele também é um proxy aberto, fiz o pedido de bloqueio dele na [[WP:P/B]], mas como você mesmo pode conferir, lá ele aparece como um usuário inexistente, por isso to fazendo o pedido de bloqueio na sua PDU. {{llp}}--[[Usuário:Leon saudanha|<span style="color: #0ff; background: #000;">Leon saudanha</span>]] 17h59min de 11 de novembro de 2014 (UTC)
+:{{U|Leon saudanha}}, aonde diz que esse IP é um proxy aberto? [[Usuário:PauloEduardo|<span style="font-size:13px; color:blue;font-family:Lucida Handwriting;text-shadow:aqua 5px 3px 12px;">Paulo Eduardo</span>]]'' <sup>[[User Talk:PauloEduardo|<font color="gold" face="Lucida Calligraphy">Discussão</font>]]</sup>'' 18h02min de 11 de novembro de 2014 (UTC)
+[https://pt.wikipedia.org/wiki/Wikip%C3%A9dia:Detec%C3%A7%C3%A3o_de_proxies_abertos aqui], ele é um proxy aberto tão poderoso que consegue até mesmo ocultar seu endereço https de usuário aqui, por isso não dá pra chegar a ele apenas apontando o link de sua PDU--[[Usuário:Leon saudanha|<span style="color: #0ff; background: #000;">Leon saudanha</span>]] 18h12min de 11 de novembro de 2014 (UTC)
+:OK {{U|Leon saudanha}}, a {{U|Belanidia}} já bloqueou. Mas não vá na hipótese que exista um proxy "tão poderoso" a ponto de não lhe permitir fazer [[User talk:199.255.210.169|isso]], ou [[Especial:Contribuições/199.255.210.169|isso]]. [[Usuário:PauloEduardo|<span style="font-size:13px; color:blue;font-family:Lucida Handwriting;text-shadow:aqua 5px 3px 12px;">Paulo Eduardo</span>]]'' <sup>[[User Talk:PauloEduardo|<font color="gold" face="Lucida Calligraphy">Discussão</font>]]</sup>'' 18h18min de 11 de novembro de 2014 (UTC)
+Foi um erro de escrita rs. Ele é um anonimizador, provavelmente é por isso que não adiantou pedir o bloqueio dele na [[WP:P/B]]--[[Usuário:Leon saudanha|<span style="color: #0ff; background: #000;">Leon saudanha</span>]] 18h23min de 11 de novembro de 2014 (UTC)
+:Certo {{U|Leon saudanha|Leon}}, sem problemas, hehehehe... Um abraço. [[Usuário:PauloEduardo|<span style="font-size:13px; color:blue;font-family:Lucida Handwriting;text-shadow:aqua 5px 3px 12px;">Paulo Eduardo</span>]]'' <sup>[[User Talk:PauloEduardo|<font color="gold" face="Lucida Calligraphy">Discussão</font>]]</sup>'' 18h25min de 11 de novembro de 2014 (UTC)
+
+==[[:TV Globo América do Sul]]==
+<!-- O aviso a seguir foi substituído da Predefinição:Aviso-PE -->
+[[Imagem:Ambox warning yellow.svg|left|48px|]]
+
+O verbete [[:TV Globo América do Sul]], editado por você, foi marcado para [[Wikipédia:Eliminação por consenso|eliminação por consenso]], por ter sido considerado, por algum editor, não condizente com a Wikipédia; isso significa que o verbete talvez não satisfaça os [[Wikipédia:Critérios de notoriedade|critérios de notoriedade]] estabelecidos pela comunidade ou se encaixe no descrito em {{nowrap|[[Wikipédia:O que a Wikipédia não é|O que a Wikipédia não é]].}}
+
+Você poderá <u>'''[[Wikipédia:Páginas para eliminar/TV Globo América do Sul|expor seus argumentos na discussão]]'''</u> para manter ou eliminar, porém '''jamais''' remova o aviso de eliminação que está no verbete, pois seria considerado [[WP:vandalismo|vandalismo]].
+
+Boas contribuições! [[Usuário:GRS73|Fabiano]] <sup> [[Usuário Discussão:GRS73|'''msg''']]</sup> 22h28min de 11 de novembro de 2014 (UTC)
+
+== Usuário Atlanticidades IESF ==
+
+Olá Paulo, o usuário {{u|Atlanticidades IESF}} é provavelmente um [[WP:SOCK|fantoche]] do usuário {{u|Jorgesandramanuel}} usado para tentar recriar o artigo [[IESF]] após eu ter avisado na PDU dele que se insistisse com essa atitude, seria bloqueado--[[Usuário:Leon saudanha|<span style="color: #0ff; background: #000;">Leon saudanha</span>]] 22h58min de 12 de novembro de 2014 (UTC)
+
+== Patrulhamento ==
+
+Poderia tentar [[Ajuda:Edição patrulhada|patrulhar]] as edições que reverte? Isso evitaria que elas aparecessem na lista de revisões que outros editores precisam conferir posteriormente... Aparentemente [[bugzilla:72433|o Huggle não faz isso automaticamente]] quando o utiliza em vez do sistema de ''rollback'' do próprio MediaWiki. [[Usuário(a):He7d3r|Helder]] 12h59min de 13 de novembro de 2014 (UTC)
+:Ah sim. E diferente do que disse, não sou reversor, sou administrador. E marquei a opção ''Use software rollback''. Vou tentar fazer um teste com essa opção marcada e desmarcada. Att, [[Usuário:PauloEduardo|<span style="font-size:13px; color:blue;font-family:Lucida Handwriting;text-shadow:aqua 5px 3px 12px;">Paulo Eduardo</span>]]'' <sup>[[User Talk:PauloEduardo|<font color="gold" face="Lucida Calligraphy">Discussão</font>]]</sup>'' 13h19min de 13 de novembro de 2014 (UTC)
+::Estranho. Nenhuma das duas edições revertidas ([[Special:Diff/40601214|40601214]] e [[Special:Diff/40601225|40601225]]) foi [https://pt.wikipedia.org/w/index.php?title=Especial:Registo&dir=prev&offset=20141113000000&limit=10&type=patrol&user=&page=Usu%C3%A1rio%3APauloEduardo%2FTestes&tagfilter=&hide_patrol_log=1&hide_review_log=1&hide_thanks_log=1 registrada como patrulhada] (só as reversões propriamente ditas, [[Special:Diff/40601219|40601219]] e [[Special:Diff/40601231|40601231]]).
+::Sobre o que eu disse no bug, eu tinha informado ele antes de você ter adquirido as permissões administrativas. Atualizei lá com informações sobre os seus testes recentes. [[Usuário(a):He7d3r|Helder]] 13h31min de 13 de novembro de 2014 (UTC)
+:::{{Ping|He7d3r}} Entendi. Pensei que tinha feito o pedido recentemente. Estranho mesmo acontecer nas duas situações. [[Usuário:PauloEduardo|<span style="font-size:13px; color:blue;font-family:Lucida Handwriting;text-shadow:aqua 5px 3px 12px;">Paulo Eduardo</span>]]'' <sup>[[User Talk:PauloEduardo|<font color="gold" face="Lucida Calligraphy">Discussão</font>]]</sup>'' 13h35min de 13 de novembro de 2014 (UTC)
+::::Pois é... Isso é muito inconveniente. [[Usuário(a):He7d3r|Helder]] 13h40min de 13 de novembro de 2014 (UTC)
+::::Também está acontecendo nas edições que o [[User:Vitor Mazuco|Vitor Mazuco]] reverte (por exemplo, eu tive que [https://pt.wikipedia.org/wiki/Especial:Registo/patrol?page=Coenzimas&uselang=en patrulhar] uma [[Special:Diff/40601249|edição]] que ele já havia revertido). [[Usuário(a):He7d3r|Helder]] 13h45min de 13 de novembro de 2014 (UTC)
+Hmmm, estranho, então não é só comigo. Chato é ter que marcar todas as edições que forem revertidas pelo Huggle como patrulhadas manualmente. [[Usuário(a):PauloEduardo|<span style="font-size:13px; color:blue;font-family:Lucida Handwriting;text-shadow:aqua 5px 3px 12px;">Paulo Eduardo</span>]]'' <sup>[[User Talk:PauloEduardo|<font color="gold" face="Lucida Calligraphy">Discussão</font>]]</sup>'' 13h48min de 13 de novembro de 2014 (UTC)
+
+== Notificações ==
+Por algum motivo não fui notificado quando [[Special:Diff/40601300|mencionou meu nome de usuário]]. Poderia fazer um teste? Troque "Usuário" por "Usuário(a)" na sua assinatura e mencione meu nome de usuário novamente para conferirmos se funciona? [[Usuário(a):He7d3r|Helder]] 13h40min de 13 de novembro de 2014 (UTC)
+:{{Ping|He7d3r}} Com a assinatura normal foi feita em minha página de testes. Agora com Usuário(a) foi feito aqui. [[Usuário(a):PauloEduardo|<span style="font-size:13px; color:blue;font-family:Lucida Handwriting;text-shadow:aqua 5px 3px 12px;">Paulo Eduardo</span>]]'' <sup>[[User Talk:PauloEduardo|<font color="gold" face="Lucida Calligraphy">Discussão</font>]]</sup>'' 13h45min de 13 de novembro de 2014 (UTC)
+::<del>Não funcionou. Estamos com azar hoje... [[Image:Sad.png]].</del> [[Usuário(a):He7d3r|Helder]] 13h49min de 13 de novembro de 2014 (UTC) <ins>Isso foi culpa do [[bugzilla:54639]]</ins>
+:::Não sei se lembra, mas não é a primeira vez que isso acontece comigo. Ora o usuário citado [https://pt.wikipedia.org/w/index.php?title=Especial:Restaurar&target=Usu%C3%A1rio%3APauloEduardo%2FTestes&timestamp=20141106213328&diff=prev recebe notificação], [[Wikipédia:Pedidos/Bloqueio#Albergue.alb|ora não]]. [[Usuário(a):PauloEduardo|<span style="font-size:13px; color:blue;font-family:Lucida Handwriting;text-shadow:aqua 5px 3px 12px;">Paulo Eduardo</span>]]'' <sup>[[User Talk:PauloEduardo|<font color="gold" face="Lucida Calligraphy">Discussão</font>]]</sup>'' 13h52min de 13 de novembro de 2014 (UTC)
+::Eu informei no [[bugzilla:73366]] mas seria interessante fazermos mais alguns testes para descobrir exatamente em que situações esse problema ocorre. Poderia tentar me notificar mais uma vez, com a assinatura padrão (isto é, esvaziando o campo de assinatura personalizada e sem "Tratar assinatura como texto wiki")? [[Usuário(a):He7d3r|Helder]] 13h57min de 13 de novembro de 2014 (UTC)
+:::{{Ping|He7d3r}} em minha página de testes e aqui. Alguma coisa? [[Usuário:PauloEduardo|PauloEduardo]] ([[Usuário Discussão:PauloEduardo|discussão]]) 14h02min de 13 de novembro de 2014 (UTC)
+::::As edições [[Special:Diff/40601500|40601500]], [[Special:Diff/40601506|40601506]] e [[Special:Diff/40601521|40601521]] geraram uma notificação. Por outro lado, só agora notei que a [[Special:Diff/40601378|40601378]] do seu teste anterior não deveria ser considerada, pois pode ter sido afetada por [[bugzilla:54639|outro bug igualmente chato]], que ocorre quando alguém substitui um conteúdo que já existia na página. [[Usuário(a):He7d3r|Helder]] 14h07min de 13 de novembro de 2014 (UTC)
+:[[bugzilla:73366#c1|Resumo]]: parece que no momento só o que funciona é "User" e "Usuário" (antes, pelo que me recordo, só funcionavam "Usuário" e "Usuário(a)"). [[Usuário(a):He7d3r|Helder]] 14h42min de 13 de novembro de 2014 (UTC)
+::Entendi {{U|He7d3r}}, acho que é esse bug mesmo. {{=)}} [[Usuário(a):PauloEduardo|<span style="font-size:13px; color:blue;font-family:Lucida Handwriting;text-shadow:aqua 5px 3px 12px;">Paulo Eduardo</span>]]'' <sup>[[User Talk:PauloEduardo|<font color="gold" face="Lucida Calligraphy">Discussão</font>]]</sup>'' 15h05min de 13 de novembro de 2014 (UTC)
+:::Com sorte será só [https://gerrit.wikimedia.org/r/#/c/173077/1/includes/DiscussionParser.php,unified este problema com os parêntesis] que acabaram de corrigir (mas que demorará uns dias para ficar online, eu acho). [[Usuário(a):He7d3r|Helder]] 22h25min de 13 de novembro de 2014 (UTC)
+::::Fiz alguns testes e agora todas as opções estão funcionando: "User", "Usuário", "Usuário(a)", "Usuária", "User talk", "Usuário Discussão", "Usuário(a) Discussão" e "Usuária Discussão". [[Usuário(a):He7d3r|Helder]] 11h31min de 14 de novembro de 2014 (UTC)
+{{U|He7d3r}}, o bug da autorrevisão do Huggle foi corrigido? [[User:PauloEduardo|<span style="font-size:13px; color:blue;font-family:Lucida Handwriting;text-shadow:aqua 5px 3px 12px;">Paulo Eduardo</span>]]'' <sup>[[User Talk:PauloEduardo|<font color="gold" face="Lucida Calligraphy">Discussão</font>]]</sup>'' 15h44min de 14 de novembro de 2014 (UTC)
+
+== Uma medalha! ==
+
+{| style="background-color: #fdffe7; border: 1px solid #fceb92;"
+|rowspan="2" style="vertical-align: middle; padding: 5px;" | [[File:Barnstar of Reversion Hires.png|100px]]
+|style="font-size: x-large; padding: 3px 3px 0 3px; height: 1.5em;" | '''Medalha pelo combate ao vandalismo'''
+|-
+|style="vertical-align: middle; padding: 3px;" | Muito obrigado pelo bloqueio temporário da página, pois considero ato de reverter o trabalho de meses de um usuário, de má fé. Em breve entraremos em um consenso. [[Usuário(a):JoseAlfedo|JoseAlfedo]] ([[Usuário(a) Discussão:JoseAlfedo|discussão]]) 16h01min de 13 de novembro de 2014 (UTC)
+|}
diff --git a/Echo/tests/phpunit/includes/revision_txt/637637213.txt b/Echo/tests/phpunit/includes/revision_txt/637637213.txt
new file mode 100644
index 00000000..12092f17
--- /dev/null
+++ b/Echo/tests/phpunit/includes/revision_txt/637637213.txt
@@ -0,0 +1,824 @@
+{{Skip to talk}}
+{{Talk header|search=yes}}
+{{Not a forum}}
+{{WikiProjectBannerShell|blpo=yes|collapsed=yes|banner collapsed=no|1=
+{{WikiProject Law Enforcement |class=C}}
+{{WikiProject Missouri |class=C |importance=Mid}}
+{{WikiProject Death |class=C |importance=Low}}
+{{WikiProject Discrimination |class=C |importance=Mid}}
+{{WikiProject Politics |class=C |importance=Low}}
+{{WikiProject St. Louis |class=C}}
+}}
+{{User:MiszaBot/config
+|archiveheader = {{talkarchivenav|noredlinks=y}}
+|maxarchivesize = 150K
+|counter = 19
+|minthreadsleft = 4
+|minthreadstoarchive = 1
+|algo = old(5d)
+|archive = Talk:Shooting of Michael Brown/Archive %(counter)d
+}}
+{{Calm}}
+{{Autoarchivingnotice|bot=MiszaBot|age=5|units=days}}
+{{article discretionary sanctions|topic=blp|style=long}}
+
+==RFC: ''Alleged'' theft of cigars from convenience store?==
+{{archivetop|result=Consensus is fairly clearly against using "alleged". [[User:Number 57|<font color="orange">Number</font>]] [[User talk:Number 57|<font color="green">5</font>]][[Special:Contributions/Number 57|<font color="blue">7</font>]] 12:36, 10 December 2014 (UTC)}}
+In references here to the theft and/or strong-arm robbery of cigars from a convenience store prior to the shooting of the decedent, should this article use the term ''alleged'' or ''allegedly'' before any such claims since the decedent was never and will never be charged or convicted of theft or robbery? <span style="font-family: Gill Sans MT, Arial, Helvetica; font-weight:100;">[[User:Dwpaul|<font color="#006633">Dwpaul</font>]]</span> <sup>''[[User talk:Dwpaul|<font color="#000666">Talk </font>]] ''</sup> 02:52, 29 November 2014 (UTC)
+===survey===
+*(As nom) '''Yes''', as that is Wikipedia's standard practice when a criminal act is alleged but will never be prosecuted. <span style="font-family: Gill Sans MT, Arial, Helvetica; font-weight:100;">[[User:Dwpaul|<font color="#006633">Dwpaul</font>]]</span> <sup>''[[User talk:Dwpaul|<font color="#000666">Talk </font>]] ''</sup> 02:54, 29 November 2014 (UTC)
+* '''no''' There is video of the event. An admission from his friend who was present, and admission from the Brown family. We actually have numerous opposite examples of non-convicted persons who are described as having done certain illegal actions, and we have hundreds of reliable sources saying without qualification that brown took the Cigars without paying. However, describing that theft in a specific legal crime term should not be done as we do not have sufficient proof that all elements of a crime were done, it is enough to say "stole cigars" or "took cigars without paying" but not "committed robbery" etc. [[User:Gaijin42|Gaijin42]] ([[User talk:Gaijin42|talk]]) 03:00, 29 November 2014 (UTC)
+:: In regard to the question whether there is "sufficient proof that all elements of a crime were done", we just need to follow the MO law. It says, "[http://law.justia.com/codes/missouri/2013/title-xxxviii/chapter-569/section-569.030/ A person commits the crime of robbery in the second degree when he forcibly steals property.]" Did he steal the items? Did he use force when confronted by the clerk? If you say yes to both questions, then all elements of the crime were done and the act is called robbery in the second degree. [[User:Z22|Z22]] ([[User talk:Z22|talk]]) 01:08, 30 November 2014 (UTC)
+
+*'''No''' per Gaijin42 above and also see Columbine Shooting, Sandy Hook Elementary Shooting,, Isla Vista Killings and numerous other articles here on WP where a crime has been committed with the individual being killed and/or suicide with no prosecution and/or conviction and the word alleged is not used in those articles. I would also note that the police have classified this case as being "exceptionally cleared", a stringent standard to meet in a case when there will be no prosecution or conviction.[[User:Isaidnoway|<font face="Times New Roman" color="blue"> '''''Isaidnoway''''' </font>]][[User talk:Isaidnoway|<font face="Times New Roman" color="blue">'''''(talk)'''''</font>]] 03:04, 29 November 2014 (UTC)
+*'''No''' - Alleged refers to something that is said, without proof, to have taken place or done. Also, by the same logic of Dwpaul, you cannot identify someone for a criminal act if they are incapable of being tried. Glad to know that despite the Columbine Shooting evidence that you are content to put "alleged", again a reference to "unproven", in front of any act or attribution of the killers. [[User:ChrisGualtieri|ChrisGualtieri]] ([[User talk:ChrisGualtieri|talk]]) 05:52, 29 November 2014 (UTC)
+:::Didn't say you "cannot identify someone for a criminal act"; simply said you should make clear you are not claiming they have been ''convicted'' of it, if only for your own protection (in this case, for the protection of the project). That is all ''allegedly'' does. <span style="font-family: Gill Sans MT, Arial, Helvetica; font-weight:100;">[[User:Dwpaul|<font color="#006633">Dwpaul</font>]]</span> <sup>''[[User talk:Dwpaul|<font color="#000666">Talk </font>]] ''</sup> 06:05, 29 November 2014 (UTC)
+:::: We are not "convicting" anyone. Your understanding of "alleged"'s use is wrong according to the dictionary. Allegations in a legal sense are no different, but you should be aware of that process. Since this is not a pending court matter so kindly take your armchair lawyering off this page. [[User:ChrisGualtieri|ChrisGualtieri]] ([[User talk:ChrisGualtieri|talk]]) 06:31, 29 November 2014 (UTC)
+
+*'''No.''' According to [[WP:ALLEGED]], alleged is ''"appropriate when wrongdoing is asserted but undetermined, such as with people awaiting or undergoing a criminal trial."'' In this case, Brown will never go to trial so the issue won't be determined that way. However, we are not entirely without the ability to make an editorial determination here. We have a published security video showing what certainly appears to be a theft (or more accurately strong arm robbery) and there is the published testimony of Brown's friend Johnson describing the events in the store. That description supports that it was in fact a strong arm robbery. In addition, many (though not all) sources refer to the event as a theft and do not use the term "alleged". Taking all this into consideration, I think it's perfectly reasonable, neutral and accurate to treat it as an actual crime and leave out he word "alleged".
+
+:There have been theories suggesting that maybe Brown did pay for the cigars and the clerk just wanted an ID. This is an interesting theory, but entirely unsupported by ''anything''. Others note that no store employee contacted the police (a customer did). In no way does this cause other evidence to vanish. Again, taking ALL things into consideration from what is available to us, it is reasonable to say that a crime was committed and there is nothing "alleged" about it. &ndash;&nbsp;[[User:Jbarta|JBarta]] ([[User talk:Jbarta#top|talk]]) 22:11, 29 November 2014 (UTC)
+
+::That actually brings up an interesting question. Let's suppose Brown (who is of age) wants to buy cigars and the clerk wants to see an ID. Let's further suppose Brown throws down the money and says "screw the ID, here's the money" then grabs the cigars and leaves. The clerk tries to stop him still wanting to see the ID. Brown pushes past and exits the store (we'll forget about the hard shoving). Has a crime been committed? Or more specifically, is it theft? &ndash;&nbsp;[[User:Jbarta|JBarta]] ([[User talk:Jbarta#top|talk]]) 22:36, 29 November 2014 (UTC)
+
+:::If for some reasons you put a million dollars cash on the counter but the clerk refuses to "sell" an inexpensive product (no matter what it is) and you take that product anyway, then you use force to clear your way out of the store, you will still be charged with robbery in the second degree as per [http://m.willworshamlaw.com/Criminal-Defense-Home/Robbery.aspx MO law]. Even when give a correct amount of money to the clerk for the cigar, but the clerk refuses to sell that to you. The transaction does not take place. When you take valuable propety from that store when you have not been the owner of that property yet, it is stealing. To add to that, you use force, it's a robbery of the second degree. [[User:Z22|Z22]] ([[User talk:Z22|talk]]) 00:48, 30 November 2014 (UTC)
+:::: What a poor example - the discussion below shows it is closed and why. Original research or other accusations carry no real weight because the official report ''is'' our proper source. As a result, no matter what excuses or theoretical case you come up with, it does not apply to this case. [[User:ChrisGualtieri|ChrisGualtieri]] ([[User talk:ChrisGualtieri|talk]]) 05:06, 30 November 2014 (UTC)
+
+*'''No''' – In prior weeks there was some question from news sources whether Brown might have actually paid for the cigarillos, that analysis seems to have disappeared even in Brown-friendly news outlets as more information has come out. Also, [[John Wilkes Booth]] did not "allegedly" assassinate Abraham Lincoln, even though he was never convicted of it. —[[User:Megiddo1013|Megiddo1013]] 01:49, 30 November 2014 (UTC)
+
+* '''No''' - In the absence of any other reasonable explanations for what can be seen in the footage and testimonies, it seems safe to go with what the recently written RSs say on this one. [[User:AdventurousSquirrel|AdventurousSquirrel]] ([[User talk:AdventurousSquirrel|talk]]) 12:56, 30 November 2014 (UTC)
+
+* '''No''' - There's really no question at this point of what happened, and Brown is very much dead and thus we have no reason to worry about prejudicing a jury against him. It is safe to not use "alleged" here as we have video, testimony from his friend, RSs which don't use "alleged", and standard Wiki policy that in cases like this that we don't use it ([[John Wilkes Booth]], [[Columbine shooting]], ect.). [[User:Titanium Dragon|Titanium Dragon]] ([[User talk:Titanium Dragon|talk]]) 15:18, 30 November 2014 (UTC)
+
+*'''COMMENT''' Due to the apparent [[WP:SNOW]] above, I am going to remove the "allege"s that are referring to the robbery. However, the RFC remains open, and consensus could certainly swing the other way over the next days/weeks. [[User:Gaijin42|Gaijin42]] ([[User talk:Gaijin42|talk]]) 15:25, 30 November 2014 (UTC)
+
+*'''No''' - Per the users above. There is no question as to the factual nature of the crime.--<span style="text-shadow:grey 0.125em 0.138em 0.118em; class=texhtml">[[User:TMDrew|<font color="black">'''TMD'''</font>]] [[User_talk:TMDrew|<small>Talk Page.</small>]]</span> 16:06, 30 November 2014 (UTC)
+
+*'''No''' Per [[User:AdventurousSquirrel|AdventurousSquirrel]]. We should be going with what the recent [[WP:RS]] are saying. [[User:rmosler2100|<span style="color:green">'''R'''</span><span style="color:black; font-variant:small-caps">'''mosler'''</span>]]&nbsp;|[[User_talk:Rmosler2100| <span style="color:black; font-variant:small-caps">●</span>]] 16:18, 1 December 2014 (UTC)
+
+===Threaded discussion===
+Can you include a source for the "exceptionally cleared" classification being applied to this case and its <s>meaning</s>significance, since this information (not there now) would be useful to include in the article? I can find references to the police report including this notation, but none that say it gives it some special degree of "truthiness".<span style="font-family: Gill Sans MT, Arial, Helvetica; font-weight:100;">[[User:Dwpaul|<font color="#006633">Dwpaul</font>]]</span> <sup>''[[User talk:Dwpaul|<font color="#000666">Talk </font>]] ''</sup> 03:29, 29 November 2014 (UTC)
+:Exceptionally cleared is a [[Uniform Crime Reports]] term. It means "solved" by "exception" not the "awesome" meaning of exceptional http://www.fbi.gov/about-us/cjis/ucr/crime-in-the-u.s/2010/crime-in-the-u.s.-2010/clearances NPR is one of many many sources saying that the case was closed with this status, but they appear to be doing so based on just viewing the police report. http://www.npr.org/blogs/thetwo-way/2014/08/15/340594634/ferguson-police-release-name-of-officer-who-shot-michael-brown [[User:Gaijin42|Gaijin42]] ([[User talk:Gaijin42|talk]]) 03:38, 29 November 2014 (UTC)
+::Thank you. I was about to point out the same finding to {{U|Isaidnoway}}, with a caution against using it to suggest some special quality of the investigation. <span style="font-family: Gill Sans MT, Arial, Helvetica; font-weight:100;">[[User:Dwpaul|<font color="#006633">Dwpaul</font>]]</span> <sup>''[[User talk:Dwpaul|<font color="#000666">Talk </font>]] ''</sup> 03:45, 29 November 2014 (UTC)
+:::Its not some special quality, but it does indicate that the case was formally solved including identifying the perp sufficient for FBI reporting purposes. [[User:Gaijin42|Gaijin42]] ([[User talk:Gaijin42|talk]]) 03:49, 29 November 2014 (UTC)
+::::Well, that is one interpretation; I would tend to go with your suggestion above that the case was said to have been resolved "by exception", in this case by the death of the only suspect at the time rather than by diligent and detailed police work that would have achieved a conviction. <span style="font-family: Gill Sans MT, Arial, Helvetica; font-weight:100;">[[User:Dwpaul|<font color="#006633">Dwpaul</font>]]</span> <sup>''[[User talk:Dwpaul|<font color="#000666">Talk </font>]] ''</sup> 03:52, 29 November 2014 (UTC)
+:::::From the Missouri Uniform Crime Reporting Program (Missouri State Highway Patrol):
+:::::Exceptional Clearance - If <u>all</u> four of the following questions can be answered 'Yes' the offense can be cleared “exceptionally”.
+
+:::::# Do you know who the offender is?
+:::::# Has the investigation determined there is enough information to support an arrest/charge of a specific individual?
+:::::# Is the location of this individual known so the subject could by taken into custody now?
+:::::# Is there some reason outside law enforcement‟s control that precludes arresting, charging, and prosecuting the offender?
+
+:::::Examples of exceptional clearances include: death (suicide or justifiable homicide where the offender is killed by a police officers or citizen). This case meets all the above criteria for the case to be closed as "exceptionally cleared".[[User:Isaidnoway|<font face="Times New Roman" color="blue"> '''''Isaidnoway''''' </font>]][[User talk:Isaidnoway|<font face="Times New Roman" color="blue">'''''(talk)'''''</font>]] 07:04, 29 November 2014 (UTC)
+:The police report (external links) says that it has been exceptionally cleared and if you search the archives of this talk page, you will see that this very same discussion has been had before about using the word alleged in relation to this strong-arm robbery committed by Brown.[[User:Isaidnoway|<font face="Times New Roman" color="blue"> '''''Isaidnoway''''' </font>]][[User talk:Isaidnoway|<font face="Times New Roman" color="blue">'''''(talk)'''''</font>]] 03:43, 29 November 2014 (UTC)
+::Yes, I see [https://en.wikipedia.org/wiki/Talk:Shooting_of_Michael_Brown/Archive_7#Robbery_or_alleged_robbery this previous discussion from August], and I see you making the same arguments you're making now, but I don't see that any consensus evolved in support of them. In fact, I see quite a lot of dissent on the question. <span style="font-family: Gill Sans MT, Arial, Helvetica; font-weight:100;">[[User:Dwpaul|<font color="#006633">Dwpaul</font>]]</span> <sup>''[[User talk:Dwpaul|<font color="#000666">Talk </font>]] ''</sup> 04:00, 29 November 2014 (UTC)
+:::Thanks for the RfC, maybe we can put these unsourced conspiracy theories to rest once and for all.
+:::*[http://www.ibtimes.com/michael-brown-robbed-convenience-store-stole-cigarillos-darren-wilson-shooting-dorian-1729359 Michael Brown Robbed Convenience Store, Stole Cigarillos Before Darren Wilson Shooting, Dorian Johnson Says]
+:::*[http://abcnews.go.com/US/wireStory/highlights-testimony-michael-brown-shooting-27157610 Dorian Johnson told the grand jury he was stunned when Brown stole cigarillos from the convenience store]
+:::*[http://www.nationalreview.com/corner/385499/attorney-brown-acquaintance-confirms-michael-brown-stole-cigars-greg-pollowitz The attorney for Dorian Johnson, the man who was with Michael Brown when he was shot, says it was Brown who stole the cigars from the store where police say the two were filmed before Brown’s death, and that the FBI is aware of it.][[User:Isaidnoway|<font face="Times New Roman" color="blue"> '''''Isaidnoway''''' </font>]][[User talk:Isaidnoway|<font face="Times New Roman" color="blue">'''''(talk)'''''</font>]] 06:33, 29 November 2014 (UTC)
+::::* Also... "Brown was a suspect in an alleged robbery" is horrendous writing because you cannot "allege a robbery" and the nature of the matter requires "alleged" be dropped. Either a robbery took place or it didn't; it is mutually exclusive here, just as you cannot be an "alleged suspect" in the case. One alleged needs to remain in the article: "Brown then allegedly attempted to seize Wilson's gun..." which has not been conclusively proven. [[User:ChrisGualtieri|ChrisGualtieri]] ([[User talk:ChrisGualtieri|talk]]) 06:40, 29 November 2014 (UTC)
+:::[[User:Dwpaul|Dwpaul]], I ended up as a main dissenter in that August discussion, based on the use of reliable sources available at that time. However, more information has been published since then, notably Dorian Johnson's testimony under oath, and I have more carefully reviewed the video, and I don't think that using allege is appropriate. It gives the impression that there is a reasonable doubt that Brown stole the cigars, which isn't the case. --[[User:Bob K31416|Bob K31416]] ([[User talk:Bob K31416|talk]]) 16:39, 29 November 2014 (UTC)
+:: Whether to use the word "alleged" or not, one thing clear is that we should not misrepresent the act as a theft or stealing. It should either be called "forcibly steal" or "robbery". Apparently, the force was involved. The first mentioning of the act as just stealing in the lead is actually misleading. See definitions here: [http://www.ksdk.com/story/news/local/2014/08/15/strong-arm-robbery-definition-st-louis-county/14122545/] [http://m.willworshamlaw.com/Criminal-Defense-Home/Robbery.aspx]. [[User:Z22|Z22]] ([[User talk:Z22|talk]]) 18:58, 29 November 2014 (UTC)
+{{archivebottom}}
+== Offensive Phrasing -- Style Question ==
+
+Under the section Grand Jury Hearing (which should be capitalized, but I don't have editing privileges), it refers to the grand jury's makeup as "three blacks". This usage of black as a noun is not considered acceptable any longer in American English and is specifically prohibited in most style guides (I don't know if this is covered in wikipedia's). <small class="autosigned">—&nbsp;Preceding [[Wikipedia:Signatures|unsigned]] comment added by [[Special:Contributions/38.108.125.200|38.108.125.200]] ([[User talk:38.108.125.200|talk]]) 19:01, 1 December 2014 (UTC)</small><!-- Template:Unsigned IP --> <!--Autosigned by SineBot-->
+:It isn't offensive and is frequently used in American English. [https://www.google.com/search?q=blacks&es_sm=122&source=univ&tbm=nws&tbo=u&sa=X&ei=L758VJ3yMMP1oATQk4HQCQ&ved=0CFAQsQQ Google shows how many people use it to this very day], including places like the Huffington Post. [[User:Titanium Dragon|Titanium Dragon]] ([[User talk:Titanium Dragon|talk]]) 19:16, 1 December 2014 (UTC)
+:I checked the source used for that sentence, and the source uses the terms "blacks" and "whites" in relation to the race of the grand jury members. Based on that source, I don't see a problem.[[User:Isaidnoway|<font face="Times New Roman" color="blue"> '''''Isaidnoway''''' </font>]][[User talk:Isaidnoway|<font face="Times New Roman" color="blue">'''''(talk)'''''</font>]] 19:50, 1 December 2014 (UTC)
+
+:Isaidnoway is correct, but there is no requirement to match the specific source on something like this, which is not within a quotation. We paraphrase all the time, and what matters is that the world of reliable sources frequently uses "blacks" as a noun. Here's [http://www.nytimes.com/2014/11/26/us/after-ferguson-announcement-a-racial-divide-remains-over-views-of-justice.html an example from the New York Times], who are known for close attention to such details. Incidentally, the "Grand jury hearing" is correct; Wikipedia uses "sentence case" in section titles. &#8209;&#8209;[[User:Mandruss|<span style="color:#8E8278;">'''''Mandruss'''''</span>]]&nbsp;[[User talk:Mandruss|<span style="color:#AAA;">&#9742;</span>]] 20:07, 1 December 2014 (UTC)
+
+:This black/African-American question is not going to be solved in general anytime soon around here. Sources generally use a mix of "black" and "African-American" and so should we. Sources however do NOT generally use the word "Caucasian" when describing Wilson, so that has little place in this article. We're not here to worry about what is offensive to this person or that... we're here to reflect the sources in a neutral and balanced manner. &ndash;&nbsp;[[User:Jbarta|JBarta]] ([[User talk:Jbarta#top|talk]]) 00:24, 2 December 2014 (UTC)
+
+:From a strict stylistic standpoint, it'd probably be good to use BOTH terms in the same passage, as [[elegant variation]] (while our article on [[elegant variation]] disparages the practice - contrary to what I and other students in my technical writing degree program were taught - in this case it wouldn't be unnecessary, but would serve the purpose of placating people on each side of the "black"/"African-American" controversy). [[User:Vfrickey|loupgarous]] ([[User talk:Vfrickey|talk]]) 15:49, 6 December 2014 (UTC)
+
+::It may seem unnecessarily contentious to some, but I'm not interested in placating editors who misinterpret Wikipedia's mission as moving social trends rather than documenting them. These editors are simply wrong, and we follow the collective sources. &#8209;&#8209;[[User:Mandruss|<span style="color:#8E8278;">'''''Mandruss'''''</span>]]&nbsp;[[User talk:Mandruss|<span style="color:#AAA;">&#9742;</span>]] 16:06, 6 December 2014 (UTC)
+
+== Why are you calling Michael Brown a man when being eighteen did not qualify Eric David Harris a man????? ==
+
+{{edit semi-protected|Shooting of Michael Brown|answered=y}}
+<!-- Begin request -->If Eric Harris can be called a boy when he was also 18 yrs old when the shootings took place a Columbine High School, I believe we can come to the conclusion that Michael Brown was just a boy also. Stop making him out to be something another was not.......
+I do not know him personally, but you are adding to a problem that will not cease because of status that is not really true. He was only a boy!
+
+<!-- End request -->
+[[User:Butterflygem|Butterflygem]] ([[User talk:Butterflygem|talk]]) 09:01, 2 December 2014 (UTC)
+
+:It's true that [[Eric Harris and Dylan Klebold]] and [[Columbine High School massacre]] use the term "boys" in a few instances. That may or may not reflect source's descriptions of them. You would have to bring that up on those article's respective talk pages. Regarding this article, can you point out the specific part of the article you wish to change and what you'd like to see it changed to? Be prepared (if challenged) to back up your suggested edit with sourcing and a rationale that supports it following Wikipedia policies of [[WP:VERIFY|verifiability]], [[WP:NPOV|neutral point of view]], and [[WP:UNDUE|due weight]]. I'm not trying to make it hard on you, I'm just trying to show you that editing this encyclopedia is more than simply inserting one's opinion. &ndash;&nbsp;[[User:Jbarta|JBarta]] ([[User talk:Jbarta#top|talk]]) 11:09, 2 December 2014 (UTC)
+::To be quite honest, I am starting to see some unconscious racism creep in this manner in articles on wikipedia. Two white guys who shot up a school are boys but an unarmed black guy is a man. Just like [[missing white girl syndrome]] -[[User:Myopia123|Myopia123]] ([[User talk:Myopia123|talk]]) 12:10, 2 December 2014 (UTC)
+:::I don't think this has anything to do with "unconscious racism". It's hard to visualize, much less describe, anyone who is 6 ft 4 in (1.93 m) tall, weighs 292 lb (132 kg) and smokes cigars as a "boy". In every one of these cases, if the subjects are over 18, they should probably be described as "young men", but I think it's easy to see why the term "man" was used here instead of "boy". It's a bit too convenient to invoke the racism card when a simpler explanation will suffice. <span style="font-family: Gill Sans MT, Arial, Helvetica; font-weight:100;">[[User:Dwpaul|<font color="#006633">Dwpaul</font>]]</span> <sup>''[[User talk:Dwpaul|<font color="#000666">Talk </font>]] ''</sup> 13:53, 2 December 2014 (UTC)
+:::I also don't think the "unconscious racisim" comment is helpful, it could be seen as casting aspersions and is not [[WP:AGF]]. If you believe that an editor is not following policies or POV pushing, discuss it here or their talk page with diffs. Man, boy, teenager, the choice of nouns should be by consensus and backed by [[WP:RS]]. If you have sources that would back a change, then please share them, and the proposed change. [[User:rmosler2100|<span style="color:green">'''R'''</span><span style="color:black; font-variant:small-caps">'''mosler'''</span>]]&nbsp;|[[User_talk:Rmosler2100| <span style="color:black; font-variant:small-caps">●</span>]] 14:03, 2 December 2014 (UTC)
+::::I'm not accusing any individual editors. I'm saying that RS's and all the editors as a whole(including me) are giving in to a very human tendency to judge on a class basis. -[[User:Myopia123|Myopia123]] ([[User talk:Myopia123|talk]]) 14:48, 2 December 2014 (UTC)
+:::::I'd be willing to bet that, if not for the POV implications in this case and a desire for him to be perceived as the victim, we'd just as likely be criticized for calling Brown a "boy" because of the connotations that term has had when applied to young black men in the past. <span style="font-family: Gill Sans MT, Arial, Helvetica; font-weight:100;">[[User:Dwpaul|<font color="#006633">Dwpaul</font>]]</span> <sup>''[[User talk:Dwpaul|<font color="#000666">Talk </font>]] ''</sup> 14:53, 2 December 2014 (UTC)
+:[[File:Red information icon with gradient background.svg|20px|link=]] '''Not done:''' please establish a [[Wikipedia:Consensus|consensus]] for this alteration before using the {{tlx|edit semi-protected}} template.<!-- Template:ESp --> [[User:Anupmehra|<font size="3"><span style="font-family:Old English Text MT;color:black">Anupmehra</span></font>]] -[[User talk:Anupmehra|<font size="3"><span style="font-family:Monotype Corsiva;color:black">Let's talk!</span></font>]] 14:18, 2 December 2014 (UTC)
+:::Dear Myopia, I believe that your comments on "unconscious racism" amount to silly navel-gazing. Also a more fit subject for your talk page than here. [[User:Factchecker_atyourservice|Centrify <small>(f / k / a FCAYS)</small>]] [[User_talk:Factchecker_atyourservice|(talk)]] [[Special:Contributions/Factchecker_atyourservice|(contribs)]] 16:12, 2 December 2014 (UTC)
+::::I think it was a constructive contribution, if only because it allowed us to address this aspect of the question from a perspective others may have had or will have in mind, even if they didn't frame their arguments in those terms. <span style="font-family: Gill Sans MT, Arial, Helvetica; font-weight:100;">[[User:Dwpaul|<font color="#006633">Dwpaul</font>]]</span> <sup>''[[User talk:Dwpaul|<font color="#000666">Talk </font>]] ''</sup> 16:24, 2 December 2014 (UTC)
+:::::Empathize with stupidity and you're half way to thinking like an idiot. [[User:Factchecker_atyourservice|Centrify <small>(f / k / a FCAYS)</small>]] [[User_talk:Factchecker_atyourservice|(talk)]] [[Special:Contributions/Factchecker_atyourservice|(contribs)]] 16:28, 2 December 2014 (UTC)
+::::::Sometimes that's a creative and useful method of problem solving. Think we're done here. <span style="font-family: Gill Sans MT, Arial, Helvetica; font-weight:100;">[[User:Dwpaul|<font color="#006633">Dwpaul</font>]]</span> <sup>''[[User talk:Dwpaul|<font color="#000666">Talk </font>]] ''</sup> 16:36, 2 December 2014 (UTC)
+:::::::Dear @[[User:Factchecker_atyourservice|Centrify <small>(f / k / a FCAYS)</small>]], I don't know what navel gazing is but if you want to cuss me out you might as well accept that you're going to violate [[WP:CIVIL]] anyway and do it properly. I disagree with your suggestion that it's more fit for my talk page. Racism is a core element of this issue and the deaths of black men at the hands of police in general. As far as you calling me stupid, '''that''' was a comment for my talk page. -[[User:Myopia123|Myopia123]] ([[User talk:Myopia123|talk]]) 23:41, 4 December 2014 (UTC)
+{{out}} Navel gazing is where you are desperate to find some major significance in a hopelessly insignificant detail of life. Imagine staring intently into your navel, and then you find a piece of lint and want to show your special insight to the world. That was an apt metaphor for your silly comment, in which you made an observation about extremely reasonable & accurate use of language & wondered aloud whether it wasn't actually the reasonableness or accuracy, but NAY SIRS, HIDDEN RACISM, that made us decide to be reasonable and accurate. If you don't see how that is at once both unconstructive & essentially impossible to discuss in connection with this WP article & insulting to other editors, and thus that there was no good reason to put it on the talk page, then I'm not sure what else to say. Then again, judging by your username and userpage — and the comment "Racism is a core element of this issue" — it's pretty clear you are just trolling. So I guess the joke's on me.
+P.S. it appears you don't know what "cussing someone out" means. Probably because of your unconscious racism. [[User:Factchecker_atyourservice|Centrify <small>(f / k / a FCAYS)</small>]] [[User_talk:Factchecker_atyourservice|(talk)]] [[Special:Contributions/Factchecker_atyourservice|(contribs)]] 15:57, 5 December 2014 (UTC)
+:That someone failed to call an eighteen-year old man a "man" in Columbine, Colorado doesn't excuse repeating the error. We're not responsible for the press's errors nor obliged to repeat then in our articles. Eric Harris, Dylan Klebold, and Michael Brown were all eighteen years old at the time they become notable. That made them eligible for the military draft, capable of making valid legal contracts, and immune to curfews - in short, "men." "Young men," if you want to drive the point home that they couldn't legally buy alcohol in many jurisdictions. [[User:Vfrickey|loupgarous]] ([[User talk:Vfrickey|talk]]) 15:58, 6 December 2014 (UTC)
+::Minor correction... Dylan Klebold was 17. And if I recall, some of the instances of the word "boys" referred to events that happened before they turned 18. (Eric Harris turned 18 just before the shooting) &ndash;&nbsp;[[User:Jbarta|JBarta]] ([[User talk:Jbarta#top|talk]]) 16:19, 6 December 2014 (UTC)
+
+:The OP's opening strategy is not meaningful. For any question, you can find other articles to support either of two opposing answers. This is the spirit of the essay, [[WP:OSE|Other stuff exists]]. We should confine ourselves to what is appropriate for this article, without cherry-picking other articles that support our point of view. &#8209;&#8209;[[User:Mandruss|<span style="color:#8E8278;">'''''Mandruss'''''</span>]]&nbsp;[[User talk:Mandruss|<span style="color:#AAA;">&#9742;</span>]] 16:26, 6 December 2014 (UTC)
+::Agreed, but no article exists in a vacuum. To ''completely'' disregard similar articles is not wise approach either. A certain amount of consistency is a good thing. Even the essay you mention has a section [[Wikipedia:Other_stuff_exists#Precedent_in_usage|Precedent_in_usage]]. &ndash;&nbsp;[[User:Jbarta|JBarta]] ([[User talk:Jbarta#top|talk]]) 16:38, 6 December 2014 (UTC)
+
+[[User:Factchecker_atyourservice|Centrify <small>(f / k / a FCAYS)</small>]] has engaged in one too many personal attacks. Editors were trying to reason with him on his userpage and I was being discussed and attacked perosnally. I attempted to end the matter peacefully on his userpage but his repeated personal attacks resulted in me snapping and violating [[WP:CIVIL]]. Therefore, I will not be editing this page if this person is involved as well. I have had enough of his bullshit. -[[User:Myopia123|Myopia123]] ([[User talk:Myopia123|talk]]) 16:43, 6 December 2014 (UTC)
+:You have made a grand total of zero constructive contributions to this article or Talk page, again it seems like you're just trying to bait negative responses, AKA trolling. [[User:Factchecker_atyourservice|Centrify <small>(f / k / a FCAYS)</small>]] [[User_talk:Factchecker_atyourservice|(talk)]] [[Special:Contributions/Factchecker_atyourservice|(contribs)]] 19:37, 6 December 2014 (UTC)
+::At least one other editor disagrees with your premise, and Myopia123's constructive contributions to this page (including one section they started) are evident. In any case, it is not your place to determine the worthiness of other editors. Since the editor has drawn a line, kindly let them go on their way instead of goading them to cross it. <span style="font-family: Gill Sans MT, Arial, Helvetica; font-weight:100;">[[User:Dwpaul|<font color="#006633">Dwpaul</font>]]</span> <sup>''[[User talk:Dwpaul|<font color="#000666">Talk </font>]] ''</sup> 20:00, 6 December 2014 (UTC)
+:::Not sure why you find the suggestion that hidden racism could possibly explain the most innocuous and obviously correct editorial decisions, and yet you ''don't'' find helpful the suggestion that such an idea possibly reflects irrational hysteria. [[User:Factchecker_atyourservice|Centrify <small>(f / k / a FCAYS)</small>]] [[User_talk:Factchecker_atyourservice|(talk)]] [[Special:Contributions/Factchecker_atyourservice|(contribs)]] 15:12, 8 December 2014 (UTC)
+Back to the original question, while some of this can certainly be explained by the bias, or narrative the authors (of the RSs) wishes to tell, or political correctness, one must also remember that Columbine happened in school by and at attendees of that school, which makes the "boy" appellation a bit more contextual.[[User:Gaijin42|Gaijin42]] ([[User talk:Gaijin42|talk]]) 16:12, 7 December 2014 (UTC)
+
+== Shooting scene ==
+
+I made some edits to the shooting scene section. It's longer.
+
+I expanded the description of the street and indicated the directions in which the people involved were traveling. I added "left side" for those in right hand drive countries. I reorganized the evidence from three groups to two, anchoring the groups around the SUV and Brown's body, because the center group consists of one sandal.
+
+The contentious part of my edit is those ten shell casings. I didn't know they were ''there'' until I saw the diagram. At first I thought it had to be a mistake. I tried to be NPOV about it, but I don't have a good reference about those casings. It has to be mentioned, though.
+
+People (bystanders, parties involved, responders, investigators, etc.) move casings around crime scenes often, apparently. Sometimes it's inadvertent, or people take them as a souvenir, but sometimes people take them or move them simply to make things difficult for investigators, or in the worst case people might move them to make it look like a gun was fired in a different place. So, it's possible that the ten casings near Brown were put there to make it look like Wilson had shot Brown at close range.
+
+Please don't reply with wikilawyering, fellow editors. Change whatever you want, add references, but this is not original research or speculation or whatever. The article needs a diagram. The diagram shows 10 casings in an unusual place. Those 10 casings have to be explained, and the only way to explain them without invoking a conspiracy theory is that they were moved. We can't say how, we can't say when, we can't say by whom, but they must have been moved because all the other evidence points that way. Somewhere in the transcripts or in some article I haven't read there is a clear, solid explanation of how they got there. [[User:Roches|Roches]] ([[User talk:Roches|talk]]) 22:27, 4 December 2014 (UTC)
+
+:What are you talking about? They are there because they are near where wilson was standing at the time those shots were fired (plus random physics bounces and the like). There were other cops and media on the scene within seconds/minutes. When exactly do you think things were tampered with? What specifically do you think is proof that that cannot be the natural position of the casings? Where do you think those casings "really belong"?[[User:Gaijin42|Gaijin42]] ([[User talk:Gaijin42|talk]]) 22:32, 4 December 2014 (UTC)
+
+:Presumably from the blood stain at the far right, at some point Brown was standing near there during some of the shots. (with a fudge factor for how far blood may fly from being hit). Most of the witnesses, and Wilson say that they were about 20ft apart at that point. Wilson and some witnesses say that Brown moved forward, and Wilson says he was trying to backpedal to keep distance (while firing). . That explains the pattern of casings and blood fairly well to me, and more importantly, its all covered by reliable sources. [http://www.washingtonpost.com/politics/2014/11/29/b99ef7a8-75d3-11e4-a755-e32227229e7b_story.html] [http://listverse.com/2014/11/25/10-of-the-most-important-pieces-of-evidence-from-darren-wilson-testimony/][http://thehill.com/blogs/blog-briefing-room/news/225280-wilson-brown-looked-like-demon] [http://www.newyorker.com/news/john-cassidy/darren-wilson-testimony][http://abcnews.go.com/US/exclusive-police-officer-darren-wilson-discusses-moment-shot/story?id=27186946][http://edition.cnn.com/2014/11/25/justice/ferguson-grand-jury-documents/] Saying "speculation" and "original research" is not wikilawyering, its the foundation of the way the wiki works. Find a reliable source that discusses some alternative theory, and we can talk about adding it in. [[User:Gaijin42|Gaijin42]] ([[User talk:Gaijin42|talk]]) 22:45, 4 December 2014 (UTC)
+
+:Roches, unless you can find reliable sources supporting this speculation it cannot go into the article. &ndash;&nbsp;[[User:Jbarta|JBarta]] ([[User talk:Jbarta#top|talk]]) 22:50, 4 December 2014 (UTC)
+
+::I don't have an agenda where I want to introduce an alternative theory. I guess the talk page comment was forceful. What I wanted to happen in the article was for someone who had more knowledge about the location of the casings to add detail. As I say below, I didn't want to say "The placement of the casings is unexplained" because it's not unexplained. It's probably explained in detail in the grand jury evidence. I don't have to be the one to find the evidence; this being a collaborative effort, I wanted the statement that there was something unusual about the placement of the casings to be a call for collaboration. [[User:Roches|Roches]] ([[User talk:Roches|talk]]) 06:20, 5 December 2014 (UTC)
+
+Having spent quite a bit of time working on the diagram, I can say that I was confused by the casings as well. Nothing nefarious, there though. What struck me is that Wilson pursued Brown for more than 150 yards, before shooting 10 times toward him. - [[User:Cwobeel|<span style="color:#339966">Cwobeel</span>]] [[User_talk:Cwobeel|<span style="font-size:80%">(talk)</span>]] 03:56, 5 December 2014 (UTC)
+
+:He didn't shoot while running the distance. He pursued, then stopped. There was a burst of a few shots, then as he backed up, a burst of a few more shots. According to Wilson's testimony, the casings are exactly where one would expect. And if editors haven't heard it yet, here is apparent [https://www.youtube.com/watch?v=BiL-E5WAaUU audio] of the shots. &ndash;&nbsp;[[User:Jbarta|JBarta]] ([[User talk:Jbarta#top|talk]]) 04:03, 5 December 2014 (UTC)
+:: Yes, that is what I mean. Wilson pursued Brown for 150 yards before shooting, which begs many questions that I will keep to myself. - [[User:Cwobeel|<span style="color:#339966">Cwobeel</span>]] [[User_talk:Cwobeel|<span style="font-size:80%">(talk)</span>]] 04:12, 5 December 2014 (UTC)
+:::Some of those questions might be answered by reading Wilson's testimony to the grand jury (if you haven't already). And it was 150 feet, not yards. Big difference. 150 feet is not that far a distance at all. &ndash;&nbsp;[[User:Jbarta|JBarta]] ([[User talk:Jbarta#top|talk]]) 04:17, 5 December 2014 (UTC)
+::::I think what Cwobeel is saying is that Wilson didn't shoot until Brown turned around and became threatening. And now for your listening and viewing pleasure is a music video by Queen.[https://www.youtube.com/v/g2N0TkfrQhY] --[[User:Bob K31416|Bob K31416]] ([[User talk:Bob K31416|talk]]) 05:59, 5 December 2014 (UTC)
+:::::It's official... I'm completely confused. No worries though... isn't the first time and won't be the last. If anyone wants to explain the last few posts of this thread to me using small words and short clear sentences, you know where to find me. &ndash;&nbsp;[[User:Jbarta|JBarta]] ([[User talk:Jbarta#top|talk]]) 06:22, 5 December 2014 (UTC)
+
+Thanks for not just reverting the whole edit. I'll explain:
+
+''This placement of casings supports the claim that shots were fired in close proximity to Brown.''
+
+I wanted to remind the reader of the early accounts that have Wilson walking up to Brown as he's laying on the pavement and shooting him. I wanted to say that in a neutral way. It's not really disputed that shots were fired in fairly close proximity, so I worded it that way.
+
+''However, shell casings can be moved either inadvertently or in a deliberate attempt to confound or manipulate the investigation of a crime scene.''
+
+This does not require a reference, and it's naive to think the presence of police or media makes a difference, especially considering there were specific requests for assistance regarding the crowd of people who gathered at the scene.
+
+''The grand jury's interpretation cannot be known, but their decision not to indict Wilson suggests they concluded that the casings had been moved.''
+
+I didn't want to say that the position of the casings was "unexplained," because I know there's an explanation, and I was sort of hoping someone would find that explanation and put it in the article. What I meant to say is that their decision not to indict does mean that they were convinced that Wilson did not execute Brown at close range. (The "without invoking a conspiracy theory" above means that we assume the jury decided in accordance with the evidence.) "They concluded the casings had been moved" was a plainly a bad choice of wording on my part. It's totally impossible to be objective, neutral '''and concise''' if people assume content is politically charged, but what I meant is "the decision not to indict Wilson means that they did not think he shot Brown multiple times while he was lying on the ground."
+
+I should apologize for the above assertion that the casings must have been moved. However, the shell casings shouldn't be used to establish the locations where shots were fired.
+
+Some of the casings directly south of the body are where they should be, but the ones to the east are up to 20 feet from what I take to be Wilson's easternmost point. Casings from a .40 cal [[SIG Sauer P229]] are ejected to the right and go slightly forwards or backwards. There are no casings in the area the west of the body, and there probably should be.
+
+Last thing: My interpretation of "reliable source" forbids me from citing a politically biased journalist that interprets a primary source for me. Objective facts from a primary source are not original research, and synthesis of objective facts ''when only one conclusion is possible'' is not speculation. It's badly worded, but the decision not to indict means the jury believed that Wilson accurately described where he shot from. [[User:Roches|Roches]] ([[User talk:Roches|talk]]) 06:15, 5 December 2014 (UTC)
+
+{{od}}
+If you have a non-reliable source that discusses a theory, you can bring it up here. We can't use it in the article, but it can certainly be a launching point for finding better sources.
+
+Assuming any particular scenario, particularly one that involves tampering with the scene when there were dozens of eyewitnesses, media, and additional cops (not to mention Wilson himself) within seconds/minutes and nobody mentions anything close to that, on any side of the issue, is absolutely something that requires sourcing
+
+While your conjecture that ""the decision not to indict Wilson means that they did not think he shot Brown multiple times while he was lying on the ground." is true, it is absolutely the type of thing that requires sourcing. We do not put thoughts/words into living people's heads. Ever.
+
+* You say "where only one conclusion is possible" but there are MANY possible conclusions.Here are a few I can think of in just a few minutes. I'm sure they are many more others could come up with. None of them should be discussed or hinted at without reliable sourcing.
+** Wilson could have been that far and moved backwards. (Wilson and witnesses testify to this one)
+** Brown could have had significant forward momentum as he fell putting his body in front of the casings
+** Wilson could have been further to the right side of the road (down on the diagram) so was shooting at an angle and not parallel to the road. Therefore "ejection to the right" would be further down the road
+** MOST guns eject back and to the right, but 20-30% of bullet cases even from those guns go somewhere else, and in a particular gun if the ejector has been modified or bent or something could be consistently sending cases in a different direction
+** If Wilson was [[Limp wristing]], or shooting with the gun tilted (either gangsta style, or canted up or down), or one handed, or any one of infinite shooting positions, it could have significantly affected the trajectory
+[[User:Gaijin42|Gaijin42]] ([[User talk:Gaijin42|talk]]) 15:34, 5 December 2014 (UTC)
+:As an aside, if and when the graphic is updated, could the caption be corrected from "shell casings" to the correct terminology "shell cases"? The press pretty frequently misuses the term but Wikipedia has it right, here: [[Cartridge (firearms)#Materials]]. Here's another example [http://www.nist.gov/pml/div683/casing-080812.cfm (NIST)]. — [[User:Brianhe|Brianhe]] ([[User talk:Brianhe|talk]]) 19:34, 5 December 2014 (UTC)
+::Meh, I've known my way around guns for almost 30 years and I've never heard the term used that way. Our sources say "shell casings" and I imagine that is what just about everybody says. WP is not a source, and the source you did provide appears to be a deadlink. What is it? It won't load but I notice that the URL includes the word "casing", not "case" or "cases" [[User:Factchecker_atyourservice|Centrify <small>(f / k / a FCAYS)</small>]] [[User_talk:Factchecker_atyourservice|(talk)]] [[Special:Contributions/Factchecker_atyourservice|(contribs)]] 15:19, 6 December 2014 (UTC)
+:::It is an NIST report titled "Shelling Out Evidence: NIST Ballistic Standard Helps Tie Guns to Criminals". It provides this definition: "Cartridge cases—the empty shells left behind after a gun is fired...". At some point in my firearms instructor coursework, "case" had been promulgated as the right term to use, "casings are for sausage" being a common mnemonic which you can see in this comment on an urban shooting [http://www.esquire.com/blogs/politics/a-lesson-on-guns-041913]. But on further research the [http://www.nraila.org/glossary.aspx NRA glossary] says they are interchangeable. Perhaps a readjustment to the realities popular usage. Bottom line: request for change is withdrawn. — [[User:Brianhe|Brianhe]] ([[User talk:Brianhe|talk]]) 15:58, 6 December 2014 (UTC)
+
+== Shooting scene diagram ==
+
+Obvious OR diagram by Cwobeel removed. [[User:Factchecker_atyourservice|Centrify <small>(f / k / a FCAYS)</small>]] [[User_talk:Factchecker_atyourservice|(talk)]] [[Special:Contributions/Factchecker_atyourservice|(contribs)]] 16:02, 5 December 2014 (UTC)
+
+:It won't stay out long. Everything on it was taken directly (and accurately, as far as I can tell) from a grand jury exhibit diagram. No SYNTH occurred. For another example, see the map in [[Motor Torpedo Boat PT-109]], which I had another user create from an equivalent map produced by National Geographic. It has stood for close to a year I guess. &#8209;&#8209;[[User:Mandruss|<span style="color:#8E8278;">'''''Mandruss'''''</span>]]&nbsp;[[User talk:Mandruss|<span style="color:#AAA;">&#9742;</span>]] 16:07, 5 December 2014 (UTC)
+
+{{ec}}{{u|Factchecker_atyourservice}} The diagram is not OR. per [[WP:OI]] "Original images created by a Wikipedian are not considered original research, so long as they do not illustrate or introduce unpublished ideas or arguments" There are multiple RS that have produced virtually identical images, based directly off of the image used by the grand jury
+* http://graphics8.nytimes.com/newsgraphics/2014/11/24/ferguson-evidence/assets/ferguson/photos/2014-43984/photos-7/capture.png
+* http://graphics8.nytimes.com/newsgraphics/2014/08/13/ferguson-qa/2e754ae76c10ce9a0ea2e1dc9166a341312be797/testimony-Artboard_1.jpg
+* http://graphics.stltoday.com/img/grmp-brown_shooting_scene.png
+* http://news.bbcimg.co.uk/media/images/79290000/jpg/_79290150_ferguson_diagram_20142611_624_v3.jpg
+[[User:Gaijin42|Gaijin42]] ([[User talk:Gaijin42|talk]]) 16:07, 5 December 2014 (UTC)
+
+:I suppose it would be ''incredibly rude'' of me to ask about sourcing for the additional data points added to Cwobeel's diagram that do not appear to be in any of the other diagrams? [[User:Factchecker_atyourservice|Centrify <small>(f / k / a FCAYS)</small>]] [[User_talk:Factchecker_atyourservice|(talk)]] [[Special:Contributions/Factchecker_atyourservice|(contribs)]] 16:24, 5 December 2014 (UTC)
+::Which are? [[User:Gaijin42|Gaijin42]] ([[User talk:Gaijin42|talk]]) 16:25, 5 December 2014 (UTC)
+::: e.g. location of "interior side front door blood stains", 21'7" "distance from feet to farthest red stain". Just a suggestion — ''pick one of the published graphs and copy it exactly'', don't try to "amplify" or "improve upon" it with your own research. [[User:Factchecker_atyourservice|Centrify <small>(f / k / a FCAYS)</small>]] [[User_talk:Factchecker_atyourservice|(talk)]] [[Special:Contributions/Factchecker_atyourservice|(contribs)]] 16:30, 5 December 2014 (UTC)
+::::Distance to the furthest stain is covered by [[WP:CALC]] because the legend that goes with the original grand jury diagram explicitly includes locations with distances. [http://graphics8.nytimes.com/newsgraphics/2014/11/24/ferguson-evidence/assets/ferguson/photos/2014-43984/photos-7/picture2.png] The word "Interior" could possibly be removed, but since there are a bazzilion sources saying there were stains on the interior doors, its really not an issue IMO. [[User:Gaijin42|Gaijin42]] ([[User talk:Gaijin42|talk]]) 16:38, 5 December 2014 (UTC)
+:::::"provided there is consensus among editors that the result of the calculation is obvious, correct, and a meaningful reflection of the sources." Could anyone hazard an explanation of where that number comes from and why it is significant? Also I don't recall anything from any source giving us the location of interior bloodstains. [[User:Factchecker_atyourservice|Centrify <small>(f / k / a FCAYS)</small>]] [[User_talk:Factchecker_atyourservice|(talk)]] [[Special:Contributions/Factchecker_atyourservice|(contribs)]] 16:48, 5 December 2014 (UTC)
+:::::::The source for that number comes directly from the legend of the original grand jury diagram, as I said in my previous comment where I gave you a link directly to that legend. It was added by Cwobeel at my request. Since there are witnesses that state that brown moved forward or charged, and there is blood at the furthest most point, I thought it would be a useful addition to give an indication of how far Brown ''may'' have moved (although such must be an inference by the reader, since all we know for sure is the distance to the blood, and not how the blood actually got there). At a minimum even without the inerence, it gives the reader the ability to tell the total size of the scene. There are numerous sources describing blood on the "interior left front door handle" and other locations of the car [http://abcnews.go.com/US/crucial-pieces-evidence-ferguson-grand-jury/story?id=27163048] [http://www.msnbc.com/msnbc/prosecutors-make-trove-michael-brown-case-documents-public] For the scale of the diagram we are will within "accurate" imo. But if you insist on having the word "interior" removed you are free to argue that. BTW, all of this stuff was discussed in quite a bit of detail towards the top of this page, where your suggestions would have been more than welcome, and where you can see the consensus for the image, rather than just charging in blindly and accusing people of breaking policy and deleting the image without discussion. [[User:Gaijin42|Gaijin42]] ([[User talk:Gaijin42|talk]]) 16:55, 5 December 2014 (UTC)
+::::::::Since there is no 21 foot 7 inch figure in that jury page, it looks like you're still not done explaining the origin of the figure, and I confess I'm a bit hazy as to your rationale for having our WP article give an emphasis that the published sources didn't find necessary or relevant. Shall we also try to deduce how many feet or inches Brown would have had to walk to get off the street and onto the sidewalk in order to comply with Wilson's order? That would ''also'' help readers understand the total size of the scene. [[User:Factchecker_atyourservice|Centrify <small>(f / k / a FCAYS)</small>]] [[User_talk:Factchecker_atyourservice|(talk)]] [[Special:Contributions/Factchecker_atyourservice|(contribs)]] 17:03, 5 December 2014 (UTC)
+{{od}} The legend has the position of Browns feet. The legend has the position of the stain. [[WP:CALC]] certainly allows simple vector subtraction. If you think it should be removed, build consensus for it, but since we have been discussing the diagram for 2 days now, and nobody else complained I think you are in the minority so far. Cwobeel has been quite compliant so far with changes to the diagram. If you can build a consensus for a change, I'm sure he would be happy to assist. [[User:Gaijin42|Gaijin42]] ([[User talk:Gaijin42|talk]]) 17:14, 5 December 2014 (UTC)
+:I think that Centrify's concern about us picking that distance to highlight is a reasonable one, and can be addressed with a reliable source that specifically mentions that distance, or one similar. I seem to recall there is such a source, but offhand I don't have a link to it.
+
+:Re the 2 red dots next to the car and their identification, “Red stains driver’s side front door exterior and interior” — When I looked at the diagram for the first time, I thought the red dots indicated red stains on the ground, which they weren't. I would suggest removing the red dots and extending the blue arrow so that the arrowhead just touches the car. Also, I would suggest changing the identification to "Blood on the exterior and interior of the driver’s side front door", and we should include a reliable source for the blood on the car door. --[[User:Bob K31416|Bob K31416]] ([[User talk:Bob K31416|talk]]) 17:31, 5 December 2014 (UTC)
+
+:: The exhibits says "red stains", not blood stains, so I used the former. The exhibit also says interior and exterior. If you want to check the sources I used see the File page (also below for your convenience):
+::: * map : http://graphics8.nytimes.com/newsgraphics/2014/11/24/ferguson-evidence/assets/ferguson/photos/2014-43984/photos-7/capture.png
+::: * Legend : http://graphics8.nytimes.com/newsgraphics/2014/11/24/ferguson-evidence/assets/ferguson/photos/2014-43984/photos-7/picture2.png
+::: Other sources used: NYT [http://www.nytimes.com/interactive/2014/08/13/us/ferguson-missouri-town-under-siege-after-police-shooting.html], WaPo [http://www.washingtonpost.com/wp-srv/special/national/ferguson-diagram-of-the-scene/], and another one from St Louis Post Dispatch (which I can't locate now, but was very similar to the others. - [[User:Cwobeel|<span style="color:#339966">Cwobeel</span>]] [[User_talk:Cwobeel|<span style="font-size:80%">(talk)</span>]] 17:51, 5 December 2014 (UTC)
+
+::I also wanted "blood" but thought it got too deep into [[WP:SYNTH]]. There are numerous sources calling out the distance from the blood at marker 19/20 to browns body. The NYTimes in particular called it out, and since THAT ARTICLE is the source for one of the diagrams that completely takes care of SYNTH in my mind "''Mr. Brown’s body was about 153 feet east of Officer Wilson’s car. Mr. Brown’s blood was about 25 feet east of his body. This evidence supports statements that Mr. Brown continued to move closer to the officer after being hit by an initial string of bullets.''"[http://www.nytimes.com/interactive/2014/08/13/us/ferguson-missouri-town-under-siege-after-police-shooting.html?hp&action=click&pgtype=Homepage&module=b-lede-package-region&region=top-news&WT.nav=top-news&_r=3] However, there are more. [http://www.washingtonpost.com/news/volokh-conspiracy/wp/2014/12/02/why-michael-browns-best-friends-story-is-incredible/] [http://edition.cnn.com/TRANSCRIPTS/1411/25/ath.01.html] (convenience link to video of previous transcript [http://therightscoop.com/cnn-analyst-reads-crucial-evidence-that-destroys-the-lies-about-michael-brown-shooting/]) [http://www.dailymail.co.uk/news/article-2848749/Highlights-testimony-heard-grand-jury-declined-indict-Ferguson-cop-Darren-Wilson-Michael-Brown-shooting.html][http://online.wsj.com/articles/law-and-evidence-tilted-in-ferguson-polices-favor-1416950255][[User:Gaijin42|Gaijin42]] ([[User talk:Gaijin42|talk]]) 17:53, 5 December 2014 (UTC)
+
+If there are changes to be made, I will most certainly comply with requests that have consensus. - [[User:Cwobeel|<span style="color:#339966">Cwobeel</span>]] [[User_talk:Cwobeel|<span style="font-size:80%">(talk)</span>]] 17:55, 5 December 2014 (UTC)
+
+Also, to avoid re-litigating this issue in the future, we should add a commented section with the sources used to create the diagram. - [[User:Cwobeel|<span style="color:#339966">Cwobeel</span>]] [[User_talk:Cwobeel|<span style="font-size:80%">(talk)</span>]] 17:56, 5 December 2014 (UTC)
+:Or, even better, figure out a way to show normal citations there. &#8209;&#8209;[[User:Mandruss|<span style="color:#8E8278;">'''''Mandruss'''''</span>]]&nbsp;[[User talk:Mandruss|<span style="color:#AAA;">&#9742;</span>]] 18:12, 5 December 2014 (UTC)
+::We could add a caption to the image, and attach the refs to the caption. [[User:Gaijin42|Gaijin42]] ([[User talk:Gaijin42|talk]]) 18:17, 5 December 2014 (UTC)
+
+:::I took a first shot at it, which can be cleaned up considerably. &#8209;&#8209;[[User:Mandruss|<span style="color:#8E8278;">'''''Mandruss'''''</span>]]&nbsp;[[User talk:Mandruss|<span style="color:#AAA;">&#9742;</span>]] 18:24, 5 December 2014 (UTC)
+:::Are the two NYT images in a NYT article? It's much easier to cite an article than an image. &#8209;&#8209;[[User:Mandruss|<span style="color:#8E8278;">'''''Mandruss'''''</span>]]&nbsp;[[User talk:Mandruss|<span style="color:#AAA;">&#9742;</span>]] 18:35, 5 December 2014 (UTC)
+::::The image created BY the NYT is in my comment just above. The official GJ images just hosted by the times I cant find where the times used them, but other sources do have the same image embedded too [http://www.motherjones.com/politics/2014/11/photos-michael-brown-darren-wilson-grand-jury] [[User:Gaijin42|Gaijin42]] ([[User talk:Gaijin42|talk]]) 18:40, 5 December 2014 (UTC)
+:::::Yeah, it would be great if we could find them in sources we're already using. We're suffering from ref bloat with a ton of redundant source overlap. &#8209;&#8209;[[User:Mandruss|<span style="color:#8E8278;">'''''Mandruss'''''</span>]]&nbsp;[[User talk:Mandruss|<span style="color:#AAA;">&#9742;</span>]] 18:46, 5 December 2014 (UTC)
+{{od}} They are in both GJ evidence links in the external links section, but those may not count as "refs".[http://www.stltoday.com/news/multimedia/special/the-testimony-the-grand-jury-heard-in-the-michael-brown/html_47d95368-a8f2-5ae1-9173-6653c15d0f0e.html][http://edition.cnn.com/interactive/2014/11/us/ferguson-grand-jury-docs/index.html] [[User:Gaijin42|Gaijin42]] ([[User talk:Gaijin42|talk]]) 18:54, 5 December 2014 (UTC)
+:No I can't reuse those in a citation, and it would be too hard to find what's being cited in those anyway. I'll figure something out, adding new sources if necessary. &#8209;&#8209;[[User:Mandruss|<span style="color:#8E8278;">'''''Mandruss'''''</span>]]&nbsp;[[User talk:Mandruss|<span style="color:#AAA;">&#9742;</span>]] 19:03, 5 December 2014 (UTC)
+
+The "red stains" at the scene were confirmed to be blood by the crime lab. It's not original research to synthesize those pieces of information.
+Please do not refer to publicly available information that was presented to the grand jury as "grand jury evidence." Only the transcripts of the hearing have been released, and nothing else can be released. Much of the evidence, such as photographs and audio recordings, is not public. The original map, if I remember correctly, was part of the medical examiner's office report. [[User:Roches|Roches]] ([[User talk:Roches|talk]]) 19:40, 5 December 2014 (UTC)
+
+Thanks Cwobeel and Gaijin42 for the links, which were very helpful.
+
+*Regarding the distance discussed previously — Here’s a source and excerpts that refer to the grand jury proceedings, which I think would justify our highlighting the distance from the blood to the body by showing it in the diagram.
+::http://edition.cnn.com/TRANSCRIPTS/1411/25/ath.01.html :
+
+::"They asked in great detail about the blood spatter evidence, which indicated that Michael Brown walked -- or may have indicated -- that walked back or ran back. There was blood further on down the line. His body ended up being 20 feet closer to Officer Wilson.”
+
+::"But it was the questions on pages 87 and 88 -- and I'm sure you can find these on CNN.com if you want to pore through them yourselves -- the grand juror asks questions of the detective trying to nail down what Mark and Sunny and you guys were just talking about: This physical evidence of blood and the blood pattern and whether or not this blood pattern establishes the distance that Michael Brown traveled when he charged at the officer. And so the grand juror asked this, 'So as far as physical evidence, we have the blood on the ground. That was about 21 or 22 feet from where Michael ground ended up.’ “
+
+:So I think the diagram is OK indicating this distance because it’s a notable distance.
+
+*Regarding the red stains on the car I suggest,
+
+:1. moving the red dots that are for the red stains on the car, to halfway overlap the car boundary, so as not to appear that they are on the ground. (Note this is the style used in this source [http://www.nytimes.com/interactive/2014/08/13/us/ferguson-missouri-town-under-siege-after-police-shooting.html?hp&action=click&pgtype=Homepage&module=b-lede-package-region&region=top-news&WT.nav=top-news&_r=3].)
+
+:2. adding to the identification, the red stain on the exterior of the driver-side rear door[http://www.washingtonpost.com/wp-srv/special/national/ferguson-diagram-of-the-scene/]
+
+:3. adding the following sources for the red stains on the car [http://www.washingtonpost.com/wp-srv/special/national/ferguson-diagram-of-the-scene/] [http://www.nytimes.com/interactive/2014/08/13/us/ferguson-missouri-town-under-siege-after-police-shooting.html]
+
+--[[User:Bob K31416|Bob K31416]] ([[User talk:Bob K31416|talk]]) 20:13, 5 December 2014 (UTC)
+:: Updated the infographic as requested. Pls check and let me know if understood you correctly. - [[User:Cwobeel|<span style="color:#339966">Cwobeel</span>]] [[User_talk:Cwobeel|<span style="font-size:80%">(talk)</span>]] 22:58, 5 December 2014 (UTC)
+:::Looks good. There's a few things I'm thinking about but haven't decided whether to suggest anything, e.g. "red stains" vs "blood stains", interior and exterior of front door, and using the word "feet" in the phrase "distance from feet to farthest red stain" doesn't read well for me. In any case, I consider all your work on the diagram a good job with a good spirit of collaboration. --[[User:Bob K31416|Bob K31416]] ([[User talk:Bob K31416|talk]]) 00:40, 6 December 2014 (UTC)
+:::: Please propose alternative wording, as we can always improve. Your feedback is welcome. - [[User:Cwobeel|<span style="color:#339966">Cwobeel</span>]] [[User_talk:Cwobeel|<span style="font-size:80%">(talk)</span>]] 02:10, 6 December 2014 (UTC)
+
+== Grand jury hearing section ==
+
+The grand jury hearing section has, as far as I can tell, only one statement by a law professor in MO. To get an accurate idea of whether the hearing was out-of-the-ordinary, it's got to be compared to other police-involved-shooting cases in the same state.
+
+I made some changes to the table. I know this makes it different than the Times' table, and it incorporates facts about grand juries from [[Grand juries in the United States]]. According to [http://www.stlouiscopa.com/Divisions.aspx?ID=151 this page from the St. Louis County Prosecuting Attorney,] "a little less than half" of the felony cases in the county result in a grand jury hearing and the others go to a judge for a preliminary examination. So this is not a "typical" MO grand jury case.
+
+I also removed a statement about witnesses being repeatedly asked about whether Brown appeared to reached for a gun "despite the fact that it was known he was unarmed." The Times has legitimate concerns about the grand jury hearing which are in the article, but this claim is faulty. In the last seconds of Brown's life, he knew he didn't have a gun, but nobody else did. That emerged later.
+
+Disclaimer: I hope that Wilson went through essentially the same process as any other officer, and I hope he had faced the same likelihood of being prosecuted. I deplore abuse of power, whether it's a court making an example of a person or a police officer using excessive force. But if the people of MO feel there is a need for change, it's a matter for the legislature, not the criminal courts. [[User:Roches|Roches]] ([[User talk:Roches|talk]]) 17:12, 5 December 2014 (UTC)
+
+: Look I am trying to AGF here, but you can't just make changes to a table sourced to a an RS and add whatever you want from material from other sources that it is not related to this incident. That is a violation of [[WP:OR]]. As for the "faulty" claim of the NYT, that is none of your business to assess. We need to stay close to the sources, regardless if we believe the source is wrong. See [[WP:V]] 15:17, 6 December 2014 (UTC)
+
+: I also warn you again, that [[WP:NOTFORUM|this page is not a forum]], so please keep your opinions out of it. It does not help. - [[User:Cwobeel|<span style="color:#339966">Cwobeel</span>]] [[User_talk:Cwobeel|<span style="font-size:80%">(talk)</span>]] 15:27, 6 December 2014 (UTC)
+
+::No troubles whatsoever AGF'ing, his good faith seems pretty obvious to me. Also he is correctly pointing out source misrepresentation. The NYT article does not say "it was known he was unarmed" and neither should. '''Of course, I am shocked, shocked, shocked that it was Cwobeel who edit warred to defend the source misrepresentation which was intended to wrongly defame a living person, because that's not like his MO or anything.''' [[User:Factchecker_atyourservice|Centrify <small>(f / k / a FCAYS)</small>]] [[User_talk:Factchecker_atyourservice|(talk)]] [[Special:Contributions/Factchecker_atyourservice|(contribs)]] 15:33, 6 December 2014 (UTC)
+::: Can you stop characterizations? It is becoming insufferable. If you wanted to restore that portion you could have done it. But instead you reverted everything back to OR. Stop the nonsense!!!! - [[User:Cwobeel|<span style="color:#339966">Cwobeel</span>]] [[User_talk:Cwobeel|<span style="font-size:80%">(talk)</span>]] 21:56, 6 December 2014 (UTC)
+::::Try making objectionable edits all by themselves so that your other work won't be touched when the objectionable edits are reverted. [[User:Factchecker_atyourservice|Centrify <small>(f / k / a FCAYS)</small>]] [[User_talk:Factchecker_atyourservice|(talk)]] [[Special:Contributions/Factchecker_atyourservice|(contribs)]] 15:44, 7 December 2014 (UTC)
+
+:This is what the source says {{talkquote|Over the months, the jurors seemed to focus intently on the final movement that Mr. Brown may have made toward Officer Wilson, after a brief chase. The prosecutor asked witness after witness if it seemed as if Mr. Brown were reaching for a weapon, though few said they saw anything like that. Mr. Brown was found to be unarmed.}} I am restorring the material with some tweaks. Next time, please read the source. - [[User:Cwobeel|<span style="color:#339966">Cwobeel</span>]] [[User_talk:Cwobeel|<span style="font-size:80%">(talk)</span>]] 22:05, 6 December 2014 (UTC)
+::''''Yes, that is precisely the source text which failed to substantiate your WP prose claim that "prosecutors ask[ed] witness after witness if Brown was appearing to be reaching for a weapon when confronting Wilson, while it was known that Brown was unarmed". You ought to be thanking me for removing that fact-falsifying, source-misrepresenting prose, and yup you do this all the time, it's super annoying. Now you have gotten all mad & chided me angrily for reading correctly & reverting you correctly.
+
+::In response, you've changed it to "prosecutors ask[ed] witness after witness if Brown was appearing to be reaching for a weapon when confronting Wilson, while none of the witnesses said anything about Brown being armed." '''Yet another editorial spin that is not found in the cited source.''' Reverted. You misrepresent sourced facts, you misrepresent sourced opinions, you do it over and over and you do it to further your own hyper-partisan anger and desire to defame people whom you despise. [[User:Factchecker_atyourservice|Centrify <small>(f / k / a FCAYS)</small>]] [[User_talk:Factchecker_atyourservice|(talk)]] [[Special:Contributions/Factchecker_atyourservice|(contribs)]] 15:20, 7 December 2014 (UTC)
+::: I think ,y last edit is accurate, so instead of endlessly complaining, do the [[WP:EDITING|the hard work]] and make it better. - [[User:Cwobeel|<span style="color:#339966">Cwobeel</span>]] [[User_talk:Cwobeel|<span style="font-size:80%">(talk)</span>]] 15:32, 7 December 2014 (UTC)
+::::Please explain, as clearly as possible, how you think your last edit was accurate. Or any of them, for that matter. "despite the fact that it was known he was unarmed" wasn't right, "while it was known he was unarmed" wasn't right, and "while none of the witnesses said anything about Brown being armed" is not right. [[User:Factchecker_atyourservice|Centrify <small>(f / k / a FCAYS)</small>]] [[User_talk:Factchecker_atyourservice|(talk)]] [[Special:Contributions/Factchecker_atyourservice|(contribs)]] 15:36, 7 December 2014 (UTC)
+
+{{od}} ''despite the fact that it was known he was unarmed" - refers to the prosecutors, not the witnesses. That is the point the source is making, at least that was what I understood. ''while none of the witnesses said anything about Brown being armed'', was my attempts to unpack the statement "The prosecutor asked witness after witness if it seemed as if Mr. Brown were reaching for a weapon, '''though few said they saw anything like that'''". I accept that it was not perfect, but still valid. Now, please propose how to include in your own word that last sentence, because you have deleted it and it is a crucial point in that reporting. - [[User:Cwobeel|<span style="color:#339966">Cwobeel</span>]] [[User_talk:Cwobeel|<span style="font-size:80%">(talk)</span>]] 16:33, 7 December 2014 (UTC)
+
+:Since the source didn't use those words — and since prosecutors, like Wilson, did not know at the time of the incident that Brown was unarmed — this sounds like obvious BS. Also, "few witnesses said they saw him reaching for a weapon" is not even remotely equivalent to "none of the witnesses said he was armed". So once again it looks like you're adding your own spin, and there is no "validity" to it. Could you please propose content here before adding it to the article so that others can remove the errors and policy violations first? [[User:Factchecker_atyourservice|Centrify <small>(f / k / a FCAYS)</small>]] [[User_talk:Factchecker_atyourservice|(talk)]] [[Special:Contributions/Factchecker_atyourservice|(contribs)]] 16:44, 7 December 2014 (UTC)
+:: . My read is this: The critique is that prosecutors were acting as defense attorneys trying to validate Wilson's testimony regarding his perception that Brown was reaching for a weapon, when actually no witness other than Wilson made that case, and the prosecutors were asking again and again about that, which was very unusual. That is my reading of the source. Please re-read the source in its entirety and propose how to best reflect it. BTW, I intend to add more from that source, currently working on it. - [[User:Cwobeel|<span style="color:#339966">Cwobeel</span>]] [[User_talk:Cwobeel|<span style="font-size:80%">(talk)</span>]] 17:14, 7 December 2014 (UTC)
+:::Thank you for spelling out your uninformed opinion which does not belong anywhere on Wikipedia. I decline the invitation to grind your axe for you. I have already read and re-read the source. You are now on triple-explicit notice that the source does not say ''any'' of the things you previously wrote into the article, and thus I humbly request you bring any further material from this source HERE, to the talk page, so it may be vetted by editors who aren't quite so prone to ''accidentally'' misrepresenting a source to defame a living person. [[User:Factchecker_atyourservice|Centrify <small>(f / k / a FCAYS)</small>]] [[User_talk:Factchecker_atyourservice|(talk)]] [[Special:Contributions/Factchecker_atyourservice|(contribs)]] 18:47, 7 December 2014 (UTC)
+:::: Thank you for you suggestion, but I have no intentions to refrain from editing. I am working an additional material that I would add in due course. Thankfully, the collaborative process of Wikipedia will, as always, catch any mistake you or I make in our editing. - [[User:Cwobeel|<span style="color:#339966">Cwobeel</span>]] [[User_talk:Cwobeel|<span style="font-size:80%">(talk)</span>]] 22:44, 7 December 2014 (UTC)
+:::::"Mistakes", mmm, yes, it's quite amazing how your "mistakes" always result in WP prose that misrepresents a source to trash a living person, and it's further amazing how it's invariably, always and without exception, the targets of progressive wrath that get this treatment. What I find remarkable is that you do this deliberately, and repeatedly, and without the slightest hint of remorse '''and without the slightest hint of apology''' for those whom you dumbly snark at, threaten and insult, in the process of trying to defend an indefensible anti-policy edit. [[User:Factchecker_atyourservice|Centrify <small>(f / k / a FCAYS)</small>]] [[User_talk:Factchecker_atyourservice|(talk)]] [[Special:Contributions/Factchecker_atyourservice|(contribs)]] 14:41, 8 December 2014 (UTC)
+::::::^When I posted the above, I hadn't see that you went ahead and added more source misrepresentation. Please be advised that all opinion commentary is supposed to be well-sourced to notable commentators, not Wikipedia editors. [[User:Factchecker_atyourservice|Centrify <small>(f / k / a FCAYS)</small>]] [[User_talk:Factchecker_atyourservice|(talk)]] [[Special:Contributions/Factchecker_atyourservice|(contribs)]] 14:55, 8 December 2014 (UTC)
+
+{{od}} I guess we're fortunate in this case that the WP prose in question doesn't trash anyone. At any rate, I think it's worth mentioning that [[WP:LIMITED|paraphrasing]] "Mr Brown was found to be unarmed" is hardly an unsourced opinion, considering it's a [http://www.nytimes.com/2014/11/26/us/ferguson-grand-jury-weighed-mass-of-evidence-much-of-it-conflicting.html?_r=0 New York Times report]. If you were to provide a better paraphrase than any in the list that you've accumulated on Cwobeel's attempts, it would resolve this issue fairly easily. Explaining why the information shouldn't be included would also be informative. As an aside, the NYT article was corrected today as it misattributed questions asked of Wilson to the prosecutors. The questions were actually posed by one of the grand jurors. --[[User:RAN1|RAN1]] ([[User talk:RAN1|talk]]) 02:32, 9 December 2014 (UTC)
+:It has gradually evolved from something that misrepresented the source to defame McCullogh, into something that merely reports what the source says without WP-editor embellishment intended to defame McCullogh. And as an aside, Cwobeel's level of activity and "accidental source misrepresentation" is far too intense for me to go around actually ghostwriting his prose for him. Fortunately, BLP explicitly provides that I needn't do that. [[User:Factchecker_atyourservice|Centrify <small>(f / k / a FCAYS)</small>]] [[User_talk:Factchecker_atyourservice|(talk)]] [[Special:Contributions/Factchecker_atyourservice|(contribs)]] 16:12, 9 December 2014 (UTC)
+::Except, again, nothing you edited out seems to show any hint of defaming McCulloch. The only thing that comes remotely close is this [https://en.wikipedia.org/w/index.php?title=Shooting_of_Michael_Brown&diff=637172329&oldid=637172234 edit], which was neither libelous nor non-notable as it is a [[WP:WELLKNOWN|well-documented controversy about McCulloch]] by [http://www.nytimes.com/interactive/2014/08/13/us/ferguson-missouri-town-under-siege-after-police-shooting.html?_r=1 at] [http://www.latimes.com/changebrowser#url=/#section/-1/article/p2p-82099652/ least] [http://www.huffingtonpost.com/mark-weisbrot/in-ferguson-a-prosecutor_b_6269872.html two] sources (the last link was to the source cited in the edit). The Huffington Post source brings a different perspective to the controversy, which merits it being referenced in the article in a neutral tone. Btw, perhaps it would be in everyone's best interests if you were to be [[WP:BOLD|bold]] and give insight into how to rewrite the prose in an acceptable way, or to provide justifications on why the information shouldn't be included. As far as I can tell, BLP doesn't provide defenses for not contributing rationale. --[[User:RAN1|RAN1]] ([[User talk:RAN1|talk]]) 19:26, 9 December 2014 (UTC)
+: Thanks for pointing out the correcting by the NYT. I have deleted the miss-attributed sentence. - [[User:Cwobeel|<span style="color:#339966">Cwobeel</span>]] [[User_talk:Cwobeel|<span style="font-size:80%">(talk)</span>]] 03:22, 9 December 2014 (UTC)
+
+== additional sources discussing eyewitness testimony discrepancies from evidence (from a scientific point of view) ==
+
+* http://www.forbes.com/sites/fayeflam/2014/12/01/what-science-says-about-the-ferguson-case-memory-can-be-hacked/
+* http://web.randi.org/swift/eyewitnesses-and-emotion-a-reminder-to-engage-critical-thinking
+[[User:Gaijin42|Gaijin42]] ([[User talk:Gaijin42|talk]]) 21:03, 5 December 2014 (UTC)
+
+I'm a scientist. I like the idea of critical thinking. I like the idea of testing a hypothesis with evidence before making a conclusion, rather than making the evidence fit the conclusion. The Swift article reminds me that the public doesn't have all the evidence (nor should they), that details were presented to the grand jury that we are not privy to. I'm also reminded of "extraordinary claims require extraordinary evidence."
+
+Gaijin42, can you help me avoid attempting to write things I don't need to write, by just saying why you posted this? Do you think Wilson was justified in killing Brown? (I do.) [[User:Roches|Roches]] ([[User talk:Roches|talk]]) 23:29, 5 December 2014 (UTC)
+: May I remind you of [[WP:NOTFORUM]]? - [[User:Cwobeel|<span style="color:#339966">Cwobeel</span>]] [[User_talk:Cwobeel|<span style="font-size:80%">(talk)</span>]] 00:00, 6 December 2014 (UTC)
+
+{{ec}} The answer to your larger question I will reply to on your talk to avoid [[WP:FORUM]] (as Cwobeel is quite correct to point out). I posted these particular links because they can help to flesh out the "Accounts" section similarly to the existing Rashomon effect paragraph. [[User:Gaijin42|Gaijin42]] ([[User talk:Gaijin42|talk]]) 00:02, 6 December 2014 (UTC)
+
+{{ec}} {{yo|Roches}} As fascinating as these articles may be, they have no place in this article. Of course, if this is an area of interest you are welcome to edit [[Eyewitness testimony]], [[Credible witness]], and [[Eyewitness identification]]- [[User:Cwobeel|<span style="color:#339966">Cwobeel</span>]] [[User_talk:Cwobeel|<span style="font-size:80%">(talk)</span>]] 00:03, 6 December 2014 (UTC)
+
+::Cwobeel, the articles were posted by me (gaijin), not Roches. Why do you think they have no place in this article? They are directly discussing the general testimony issues in the context of this case and the specific witness statements we have in this case. [[User:Gaijin42|Gaijin42]] ([[User talk:Gaijin42|talk]]) 00:13, 6 December 2014 (UTC)
+
+: Oh, sorry. The only thing I see useful in the Forbes article is this passage
+:{{talkquote|Our instincts tell us that honest people remember events correctly and others are lying. Loftus, on reading the AP report, suggested that what witnesses remember is heavily influenced by the way they interpret what they are seeing. Different people heard shots and saw some kind of commotion. Was the victim charging, wobbling, or surrendering? People may have unconsciously filled in gaps in their perception with information based on their past experiences.}}
+: ... which could be added as the fully attributed opinion of Elizabeth Loftus, and the writer of the piece. - [[User:Cwobeel|<span style="color:#339966">Cwobeel</span>]] [[User_talk:Cwobeel|<span style="font-size:80%">(talk)</span>]] 00:32, 6 December 2014 (UTC)
+::I think that would be a fine quote to include since we already mention the AP report in question, that serves as a nice commentary about it. [[User:Gaijin42|Gaijin42]] ([[User talk:Gaijin42|talk]]) 00:54, 6 December 2014 (UTC)
+:::Could probably also find sources talking about how the typical unreliability of witness testimony leads prosecutors to rely more heavily on physical evidence, which is what they did in this case. [[User:Factchecker_atyourservice|Centrify <small>(f / k / a FCAYS)</small>]] [[User_talk:Factchecker_atyourservice|(talk)]] [[Special:Contributions/Factchecker_atyourservice|(contribs)]] 15:12, 6 December 2014 (UTC)
+:::: OK, go ahead, Gaijin. FCAYS: Just find a source that describes that opinion in the context of this incident and it can be included as well. - [[User:Cwobeel|<span style="color:#339966">Cwobeel</span>]] [[User_talk:Cwobeel|<span style="font-size:80%">(talk)</span>]] 15:15, 6 December 2014 (UTC)
+:::::Lazy Saturday, usually when I post about the possible existence of a source it's because I am hoping someone ''else'' will go find it. ;) [[User:Factchecker_atyourservice|Centrify <small>(f / k / a FCAYS)</small>]] [[User_talk:Factchecker_atyourservice|(talk)]] [[Special:Contributions/Factchecker_atyourservice|(contribs)]] 15:24, 6 December 2014 (UTC)
+
+== Release of video in lead & dispatch ==
+
+It seems to me that the fourth paragraph in the lead may be a little incomplete. At some point a dispatch went out mentioning the theft and Wilson claims this dispatch was something he considered before and during the altercation. Yet the only thing mentioned in the fourth paragraph is that some were pissed off about the release of the video and that it may shed light on Brown's state of mind at the time. I think this is an imbalance and should be briefly addressed, though I'm not entirely sure how. Thoughts? &ndash;&nbsp;[[User:Jbarta|JBarta]] ([[User talk:Jbarta#top|talk]]) 01:17, 6 December 2014 (UTC)
+
+:I [[Special:Diff/636975119|added]] a little to that paragraph. &ndash;&nbsp;[[User:Jbarta|JBarta]] ([[User talk:Jbarta#top|talk]]) 03:45, 7 December 2014 (UTC)
+
+== publisher= ==
+
+When standardizing refs in this article, I have dropped any {{para|publisher}} and replaced it with {{para|website}}. While many editors use {{para|publisher}}, they generally use it incorrectly per the documentation, which states: ''The [[publisher]] is the company that publishes the work being cited. Do not use the publisher parameter for the name of a work (e.g., a book, encyclopedia, newspaper, magazine, journal, website).''
+
+While you can code both {{para|website}} and {{para|publisher}}, I haven't felt that the latter is of enough use to the readers of this type of article to be worth the trouble and space. In many cases it would be a non-trivial task to determine the name of the publisher.
+
+I just noticed that the copy-and-paste "template" we have in the comments at the top of the References section includes {{para|publisher}}, and I'm writing this as the explanation for my removal of that. &#8209;&#8209;[[User:Mandruss|<span style="color:#8E8278;">'''''Mandruss'''''</span>]]&nbsp;[[User talk:Mandruss|<span style="color:#AAA;">&#9742;</span>]] 02:00, 6 December 2014 (UTC)
+
+:So if a ref is from www.cnn.com/blah/blah/blah/ you would prefer <tt>website=cnn.com</tt> rather than <tt>publisher=CNN</tt> ? &ndash;&nbsp;[[User:Jbarta|JBarta]] ([[User talk:Jbarta#top|talk]]) 02:13, 6 December 2014 (UTC)
+
+::No, the convention here is to use the website's branding, as {{para|website|CNN}} or {{para|website|The New York Times}}. In some cases the website seems to be branded in multiple alternative ways, so we are forced to choose one, but we are consistent with that choice. For local TV and radio stations we ignore branding such as "Fox2Now" and use the call letters, as {{para|website|KTVI}}. &#8209;&#8209;[[User:Mandruss|<span style="color:#8E8278;">'''''Mandruss'''''</span>]]&nbsp;[[User talk:Mandruss|<span style="color:#AAA;">&#9742;</span>]] 02:18, 6 December 2014 (UTC)
+
+:::So if a ref is from www.cnn.com/blah/blah/blah/ you would prefer <tt>website=CNN</tt> rather than <tt>publisher=CNN</tt>. Correct? &ndash;&nbsp;[[User:Jbarta|JBarta]] ([[User talk:Jbarta#top|talk]]) 02:26, 6 December 2014 (UTC)
+
+::::Yes. Or you can code it however you want and I'll convert it as part of standardization, which would probably be needed anyway. I rebuild every ref from scratch, unless it's already perfect per the local convention (hasn't happened yet). &#8209;&#8209;[[User:Mandruss|<span style="color:#8E8278;">'''''Mandruss'''''</span>]]&nbsp;[[User talk:Mandruss|<span style="color:#AAA;">&#9742;</span>]] 02:31, 6 December 2014 (UTC)
+
+:::::I'm reminded of a line from Godfather III.... ''"Our ships must all sail in the same direction"''. Forming the refs as you suggest is no problem at all as far as I'm concerned. And I'll assume you are correct in your rationale for doing it that way. &ndash;&nbsp;[[User:Jbarta|JBarta]] ([[User talk:Jbarta#top|talk]]) 02:40, 6 December 2014 (UTC)
+
+::::::Ok. I copy-and-paste an abbreviated "template" from a Notepad document, to save myself the trouble of removing multiple rarely-needed parameters. Then I can insert {{para|location}} for local TV and radio, add parameters for additional authors, and/or remove the archive parameters if the source won't archive. This abbreviated "template" is: <code><nowiki><ref name= >{{cite web |first= |last= |title= |date= |accessdate= |website= |url= |archiveurl= |archivedate= |deadurl=no}}</ref></nowiki></code>. &#8209;&#8209;[[User:Mandruss|<span style="color:#8E8278;">'''''Mandruss'''''</span>]]&nbsp;[[User talk:Mandruss|<span style="color:#AAA;">&#9742;</span>]] 02:47, 6 December 2014 (UTC)
+
+{{reflist-talk}}
+== "Crime scene" ==
+
+We refer to "crime scene" five times. I just wanted to confirm that this is deliberate and that the rationale is that some crime was committed there, the crime and perpetrator undetermined. &#8209;&#8209;[[User:Mandruss|<span style="color:#8E8278;">'''''Mandruss'''''</span>]]&nbsp;[[User talk:Mandruss|<span style="color:#AAA;">&#9742;</span>]] 06:02, 6 December 2014 (UTC)
+:While I think I understand your concern, I think this may be a situation in which the correct term just has unfortunate implications. In any trial in which the defendant is ultimately acquired (or not charged as in this case) those bits of evidence are still from the "crime scene" in general parlance. Charitably one could also interpret these scene as a crime as either Wilson or Browns take your pick depending on POV. But I would also not object to "incident scene" or "shooting scene" or something. [[User:Gaijin42|Gaijin42]] ([[User talk:Gaijin42|talk]]) 15:24, 6 December 2014 (UTC)
+::"Incident scene" sounds like a form that HR has to fill out after a fight in the break room. "Shooting scene" is not as awkward, but I think we should just track the terminology used by sources and trust that our readers will be discerning. [[User:Factchecker_atyourservice|Centrify <small>(f / k / a FCAYS)</small>]] [[User_talk:Factchecker_atyourservice|(talk)]] [[Special:Contributions/Factchecker_atyourservice|(contribs)]] 15:42, 6 December 2014 (UTC)
+:::If it's a crime scene, then what was the crime and who committed it? That's a pretty sticky question. Shooting scene seems most accurate to me, is well represented in sources and has zero stickiness. &ndash;&nbsp;[[User:Jbarta|JBarta]] ([[User talk:Jbarta#top|talk]]) 16:08, 6 December 2014 (UTC)
+::::Actually, since crime scene investigators (CSIs) work all homicides, justifiable or not, I'd support the use of the term "crime scene." Apart from that, the testimony of Officer Darren Wilson was that Michael Brown was guilty of initiating an assault on Darren Wilson at that location. At the time that data are recorded from the scene of any homicide, the possibility of a crime having been committed is assumed by first responders and crime scene investigators. Both Darren Wilson and Michael Brown were regarded by press accounts as criminal suspects when that crime was investigated. [[User:Vfrickey|loupgarous]] ([[User talk:Vfrickey|talk]]) 16:16, 6 December 2014 (UTC)
+:::::Would it be correct to say that a "crime scene" can also refer to an area of investigation where a crime ''may'' have been committed? &ndash;&nbsp;[[User:Jbarta|JBarta]] ([[User talk:Jbarta#top|talk]]) 16:22, 6 December 2014 (UTC)
+
+::::::That appears to be common usage, whether or not it's literally correct. Common usage is good enough for me. In any case, I think it's clear enough that at least one crime was committed there, assault on a police officer (aside from conspiracy theory, is there any other plausible explanation for the facial discoloration that persisted for hours?). There may or may not be mitigating circumstances, but it's still a crime AFAIK. &#8209;&#8209;[[User:Mandruss|<span style="color:#8E8278;">'''''Mandruss'''''</span>]]&nbsp;[[User talk:Mandruss|<span style="color:#AAA;">&#9742;</span>]] 16:47, 6 December 2014 (UTC)
+
+:::::::That seems a little loose. We've exposed criticism of the term "crime scene". Is there any direct criticism of the term "shooting scene"? Not asking if you prefer something else, but looking for direct criticism of the term itself such as being inaccurate or problematic in any way. <small><span class="autosigned">—&nbsp;Preceding [[Wikipedia:Signatures|unsigned]] comment added by [[User:Jbarta|Jbarta]] ([[User talk:Jbarta|talk]] • [[Special:Contributions/Jbarta|contribs]]) 17:11, 6 December 2014 (UTC)</span></small><!-- Template:Unsigned -->
+
+::::::::I wasn't advocating "crime scene" over "shooting scene", but merely saying I'm not opposed to "crime scene". I don't see "shooting scene" as being inaccurate or problematic in any way. &#8209;&#8209;[[User:Mandruss|<span style="color:#8E8278;">'''''Mandruss'''''</span>]]&nbsp;[[User talk:Mandruss|<span style="color:#AAA;">&#9742;</span>]] 17:18, 6 December 2014 (UTC)
+
+It's not called a "shooting scene," it's called a "crime scene." Call it what it's called, not what you think it should be called. [[User:Roches|Roches]] ([[User talk:Roches|talk]]) 17:57, 6 December 2014 (UTC)
+:How do you know it's called a "crime scene"? To you it seems crystal clear. To me it's not. What is it that you know that I don't? &ndash;&nbsp;[[User:Jbarta|JBarta]] ([[User talk:Jbarta#top|talk]]) 18:14, 6 December 2014 (UTC)
+::[[Crime scene]] says it's called a crime scene. Vfrickey gave a clear explanation of why it's called a crime scene. [[User:Roches|Roches]] ([[User talk:Roches|talk]]) 19:17, 6 December 2014 (UTC)
+:::[[Crime scene]] says ''"Crime scenes may or may not be where the crime was committed"'' which I admit I missed. However, despite explanations, I still find the rationale for calling it a crime scene a little shaky, and as discussed earlier, "shooting scene" isn't shaky at all. My preference (slight as it is) is still for "shooting scene", but it's arguably a minor matter and if a consensus of editors prefer "crime scene", then so be it. At least it was examined and discussed. &ndash;&nbsp;[[User:Jbarta|JBarta]] ([[User talk:Jbarta#top|talk]]) 02:17, 7 December 2014 (UTC)
+::::I think it is common knowledge what a ''crime scene'' is. We all understand that it is a place where police are investigating a possible crime. It does not mean that just because we have labelled it such that we have bypassed judge and jury and want to throw the suspect in prison because, oh yea, we called it a ''crime'' scene. I've never heard the terms "shooting scene", "robbery scene", "assault scene", "arson scene", "shoplifting scene", etc. in my entire life. —[[User:Megiddo1013|Megiddo1013]] 05:54, 7 December 2014 (UTC)
+:::::At the risk of beating an unconscious horse and just for the sake of argument, I'm really not moved by what you think everybody knows or what you think everybody understands or what you've never heard in your entire life. I was looking for some definitive evidence as to whether a scene that may or may not have been the scene of an actual crime (depending on who you ask) is still called a crime scene. The rest of my comments are above (I hate repeating myself). One more thought that I don't think was brought up... is the Ferguson Police (or State Police or FBI or whoever is investigating there) calling it a "crime scene"? If not, how do ''they'' refer to the site? Just a thought. &ndash;&nbsp;[[User:Jbarta|JBarta]] ([[User talk:Jbarta#top|talk]]) 16:22, 7 December 2014 (UTC)
+::::::I see [https://web.archive.org/web/20141207162706/http://graphics8.nytimes.com/newsgraphics/2014/11/24/ferguson-evidence/assets/gj-testimony/grand-jury-volume-02.pdf here] the grand jury is hearing testimony from a "crime scene investigator" and they do mention the words "crime scene" several times. Other than simply "the scene", they don't really call it anything else. So I suppose if you walked up to the investigator while he was measuring and examining and asked him "Whatcha doin?", he would most likely reply with "Investigatin this here crime scene. Now get back behind that yellow line or someone's gonna shoot you too!" &ndash;&nbsp;[[User:Jbarta|JBarta]] ([[User talk:Jbarta#top|talk]]) 16:41, 7 December 2014 (UTC)
+
+Micheal Brown attacked Officer Wilson there, as well as resisted arrest, so there's really no question that it is the scene of at least ''some'' crime committed, regardless of whether or not Wilson committed any crime. Crime scene, scene of the incident, scene of the shooting all seem to be pretty commonly used. I don't think it is unnecessarily POV; we should use whatever the sources use. [[User:Titanium Dragon|Titanium Dragon]] ([[User talk:Titanium Dragon|talk]]) 02:21, 11 December 2014 (UTC)
+
+== Incident reports ==
+
+I changed the incident report section. The complaints are really examples of journalists writing about how they think people should do their jobs; if this incident report isn't different than a normal one ''about the same thing'', then it's not lacking in information.
+
+The reason why the incident reports have very few details is that they are admissible in court. Filling in only basic information is a normal thing to do in a case like this, because the incident report is just the beginning of an investigation. In most cases, such as a collision involving a police vehicle, the incident report is a full description of the event because nothing more ever needs to be said about it. These incident reports are not the official story of the police department, they're the individual account of the person who might have to go to trial. Journalists should have known better than to speculate that details were being omitted improperly.
+
+Something was made of the date of the report (ten days after the shooting); this is the time the report was ''entered.'' The date it was ''submitted'' isn't there. The times of day must also not mean what they appear to mean, since other accounts have police arriving at the scene in much less than 40 minutes.
+
+[[User:Roches|Roches]] ([[User talk:Roches|talk]]) 18:12, 6 December 2014 (UTC)
+
+: No, no, and no. You are not here to decide what journalists should do or not do, or what they should report or not report. If you find a source that describes your opinion, by all means add it. But '''do not delete material just because you think the journalists are doing a poor job.''' Who cares what you (or I) think? We report what sources say. - [[User:Cwobeel|<span style="color:#339966">Cwobeel</span>]] [[User_talk:Cwobeel|<span style="font-size:80%">(talk)</span>]] 22:19, 6 December 2014 (UTC)
+::According to a spokesman for the St. Louis County police department, it's normal practice not to give out the details and that under the Missouri State “Sunshine” Law, the department was not required to release the information during a pending investigation.[http://time.com/3159680/ferguson-michael-brown-shooting-police-report/] --[[User:Bob K31416|Bob K31416]] ([[User talk:Bob K31416|talk]]) 00:31, 7 December 2014 (UTC)
+::: Then report that, alongside the critique from other media sources, even if unfounded. - [[User:Cwobeel|<span style="color:#339966">Cwobeel</span>]] [[User_talk:Cwobeel|<span style="font-size:80%">(talk)</span>]] 01:03, 7 December 2014 (UTC)
+
+Please don't tell me how Wikipedia works, even if it's using WP:article links to things that are not policy. I changed the section to describe the level of detail on the forms, and mentioned that Wilson sought legal advice about completing them. I kept the ACLU statement, because it is important to convey that people objected to the way the forms were completed, but I didn't keep the paraphrased list of things the HuffPo author thought were missing.
+
+Reporting the Huffington Post author's opinion of how police departments should fill out incident reporting forms is not NPOV. That's an opinion of one journalist at one source; the ACLU's public statement is a much better, and entirely sufficient, way to report objections to the way the forms were completed.. See [[WP:ONUS]]. [[User:Roches|Roches]] ([[User talk:Roches|talk]]) 04:37, 7 December 2014 (UTC) (Added policy link to post at 4:30.)
+
+:: we report opinions and attribute opinions to those that hold them. That is our work as editors, and not pass judgement. I will remove these edits and expect you to follow [[WP:BRD]], as there is an implicit consensus on material that has been in the article for a while. - [[User:Cwobeel|<span style="color:#339966">Cwobeel</span>]] [[User_talk:Cwobeel|<span style="font-size:80%">(talk)</span>]] 05:18, 7 December 2014 (UTC)
+:::If the opinion isn't found anywhere other than HuffPo, it's probably not notable. Notice also this was published in August and never followed up on. Not exactly quality sourcing. [[User:Factchecker_atyourservice|Centrify <small>(f / k / a FCAYS)</small>]] [[User_talk:Factchecker_atyourservice|(talk)]] [[Special:Contributions/Factchecker_atyourservice|(contribs)]] 15:51, 7 December 2014 (UTC)
+
+I started looking over the current version of the section [https://en.wikipedia.org/w/index.php?title=Shooting_of_Michael_Brown&oldid=637070981#Incident_reporting_forms Incident reporting forms] and there was a problem with verifying the first two sentences.
+:"[[MSNBC]]'s [[Lawrence O'Donnell]] reported on {{nowrap|August 21}} that Wilson did not complete an incident report about the shooting, after being advised by a union lawyer not to do so.<sup>[68]</sup> According to O'Donnell, Wilson did file a report, but not until ten days after the shooting, and the report contained no information other than his name and the date.<sup>[68]</sup>
+
+:<small>68. {{cite episode |first=Lawrence |last=O'Donnell |title=Ferguson PD didn't file report after shooting |date=August 21, 2014 |accessdate=August 26, 2014 |series=The Last Word |network=MSNBC |url=http://www.msnbc.com/the-last-word}}</small>
+
+The link for the source doesn't go to the page where the info is, so I wasn’t able to verify the material using the citation. --[[User:Bob K31416|Bob K31416]] ([[User talk:Bob K31416|talk]]) 23:01, 7 December 2014 (UTC)
+:: Searching for the title of the source in the ref, yields this: http://www.msnbc.com/the-last-word-with-lawrence-odonnell/watch/ferguson-pd-didnt-file-report-after-shooting-320755267999 - [[User:Cwobeel|<span style="color:#339966">Cwobeel</span>]] [[User_talk:Cwobeel|<span style="font-size:80%">(talk)</span>]] 23:07, 7 December 2014 (UTC)
+:::{{fixed}} &#8209;&#8209;[[User:Mandruss|<span style="color:#8E8278;">'''''Mandruss'''''</span>]]&nbsp;[[User talk:Mandruss|<span style="color:#AAA;">&#9742;</span>]] 23:18, 7 December 2014 (UTC)
+:::On the other hand, that link is to a 1:16 clip, apparently the intro to the episode. I can't figure out how to get the whole thing. &#8209;&#8209;[[User:Mandruss|<span style="color:#8E8278;">'''''Mandruss'''''</span>]]&nbsp;[[User talk:Mandruss|<span style="color:#AAA;">&#9742;</span>]] 23:31, 7 December 2014 (UTC)
+
+So who is correct, the prosecutor's office, O'Donnel, the ACLU? Was or was not an incident report filed? Because they did release the reports when pressed to do so. - [[User:Cwobeel|<span style="color:#339966">Cwobeel</span>]] [[User_talk:Cwobeel|<span style="font-size:80%">(talk)</span>]] 23:51, 7 December 2014 (UTC)
+:Cwobeel, The current issue is verifying those two sentences. The link you just gave is insufficient. --[[User:Bob K31416|Bob K31416]] ([[User talk:Bob K31416|talk]]) 00:01, 8 December 2014 (UTC)
+:: Well, it was the when I sourced it, but it seems that it is gone. I will see if I can find it in the wayback machine. - [[User:Cwobeel|<span style="color:#339966">Cwobeel</span>]] [[User_talk:Cwobeel|<span style="font-size:80%">(talk)</span>]] 00:05, 8 December 2014 (UTC)
+
+The full episode may be on this page, but I am not 100% sure: [http://www.msnbc.com/msnbc/aclu-michael-brown-incident-report-lacks-key-details], OTOH, this is a good source that could be used: [http://www.thewire.com/national/2014/08/ferguson-police-waited-10-days-to-review-michael-brown-incidents-report/378972/] - [[User:Cwobeel|<span style="color:#339966">Cwobeel</span>]] [[User_talk:Cwobeel|<span style="font-size:80%">(talk)</span>]] 00:12, 8 December 2014 (UTC)
+
+Here's a relevant excerpt from a Nov 24 Newsweek source.[http://www.newsweek.com/no-charges-ferguson-michael-brown-shooting-case-285976 ]
+:"The official incident report filed by St. Louis county police 10 days after the shooting contains few hard details about the encounter, other than the fact that Brown was unarmed."
+--[[User:Bob K31416|Bob K31416]] ([[User talk:Bob K31416|talk]]) 00:24, 8 December 2014 (UTC)
+
+I made some edits involving the second and third sentences of the first paragraph, which currently is:[https://en.wikipedia.org/w/index.php?title=Shooting_of_Michael_Brown&oldid=637098637#Incident_reporting_forms]
+
+:"[[MSNBC]]'s [[Lawrence O'Donnell]] reported on {{nowrap|August 21}} that Wilson did not complete an incident report about the shooting, after being advised by a union lawyer not to do so.<ref name=MSNBC.File/> According to the {{nowrap|St. Louis}} County Prosecutor's Office, the Ferguson police didn’t file an incident report on the shooting because the case was turned over to the county police almost immediately.<ref name=NBC.Why/><ref name=MSNBC.Details/><ref name=ACLU.FPDReport/> The St. Louis county police filed an incident report 10 days after the shooting with little information about what happened.<ref name=Newsweek.After/>"
+
+{{reflist-talk}}
+
+The first sentence is not supported by its source. The only thing it adds is the part about the lawyer. The rest is covered in the second sentence. I think we should delete it for now and consider restoring the lawyer info when there is a suitable source for it. --[[User:Bob K31416|Bob K31416]] ([[User talk:Bob K31416|talk]]) 01:23, 8 December 2014 (UTC) Deleted. [https://en.wikipedia.org/w/index.php?title=Shooting_of_Michael_Brown&diff=637128797&oldid=637122667] --[[User:Bob K31416|Bob K31416]] ([[User talk:Bob K31416|talk]]) 14:44, 8 December 2014 (UTC)
+
+: Unfortunately the source is no longer online. In any case I think what we have there is covers this quote well. I have re-ordered the sentences for a narrative that makes sense. - [[User:Cwobeel|<span style="color:#339966">Cwobeel</span>]] [[User_talk:Cwobeel|<span style="font-size:80%">(talk)</span>]] 14:50, 8 December 2014 (UTC)
+::I don't think that was an improvement. I noticed that another editor reverted the re-ordering. [https://en.wikipedia.org/w/index.php?title=Shooting_of_Michael_Brown&diff=637174390&oldid=637172965] --[[User:Bob K31416|Bob K31416]] ([[User talk:Bob K31416|talk]]) 16:40, 8 December 2014 (UTC)
+
+::: The version reverted to does not make sense. It starts by describing the reasons why a report was not filed, only to say in the following paragraphs that reports were indeed filed. when you removed the O'Donnell reference, the section came out of whack. I am still trying to find the original source from O'Donnell. - [[User:Cwobeel|<span style="color:#339966">Cwobeel</span>]] [[User_talk:Cwobeel|<span style="font-size:80%">(talk)</span>]] 17:07, 8 December 2014 (UTC)
+::::I think the lead paragraph is OK and shouldn't be touched for now. I've been working on the rest of the section to get it into better shape. After I complete that, I'll revisit the lead paragraph. --[[User:Bob K31416|Bob K31416]] ([[User talk:Bob K31416|talk]]) 18:25, 8 December 2014 (UTC)
+
+OK Found it. - [[User:Cwobeel|<span style="color:#339966">Cwobeel</span>]] [[User_talk:Cwobeel|<span style="font-size:80%">(talk)</span>]] 17:16, 8 December 2014 (UTC)
+
+{{talkquote|We have breaking news tonight in the killing of Michael Brown. St. Louis County prosecutors told NBC News today that the Ferguson Police Department has no incident report of the shooting of Michael Brown. Darren Wilson, the officer who shot and killed Michael Brown, did not write an incident report contrary to standard police procedure. […] Yesterday, in response to a lawsuit from the ACLU, the St. Louis County police released an incident report that says, in effect, nothing other than the time and proximate location of a homicide and the victim`s name, Michael Brown. That incident report indicates that it was not filed until possibly 10 days after the killing of Michael Brown. […] In the decades I`ve been studying these cases, most of them involve incident reports written by the officers involved with the shooting. In recent years, it has become customary for the police lawyer to run in, police union lawyer usually, and prevent the shooter from giving any kind of comment or writing any sort of incident report whatsoever. <ref>{{cite web |url=http://www.nbcnews.com/id/55915749/ns/msnbc/t/last-word-lawrence-odonnell-thursday-august-st/#.VIXbR6YqjoA|title= The Last word with Lawrence O'Donnell August 21, 2014|publisher=NBC News|accessdate=8 December 2014}}</ref> }}
+{{reflist-talk}}
+
+:The excerpt you gave doesn't say that Wilson was advised by a union lawyer not to complete an incident report. --[[User:Bob K31416|Bob K31416]] ([[User talk:Bob K31416|talk]]) 17:31, 8 December 2014 (UTC)
+:: See my edit, which attributes that opinion to O'Donnell. - [[User:Cwobeel|<span style="color:#339966">Cwobeel</span>]] [[User_talk:Cwobeel|<span style="font-size:80%">(talk)</span>]] 17:45, 8 December 2014 (UTC)
+:::I moved it from the article to here for discussion.
+
+::::"[[MSNBC]]'s [[Lawrence O'Donnell]] reported on {{nowrap|August 21}} that St. Louis County prosecutors told NBC News that they do not have an incident report from the shooting, contrary to standard police procedure, and described a pattern in which police union lawyers prevent shooters from commenting to filing incident reports.<ref>{{cite web |url=http://www.nbcnews.com/id/55915749/ns/msnbc/t/last-word-lawrence-odonnell-thursday-august-st/#.VIXbR6YqjoA|title= The Last Word with Laurence O'Donnell - August 21, 2014|publisher=NBC News|accessdate=8 December 2014}}</ref>"
+{{reflist-talk}}
+
+:::This Aug 21 item became obsolete when the police interview of Wilson, the day after the shooting, was released to the public. --[[User:Bob K31416|Bob K31416]] ([[User talk:Bob K31416|talk]]) 18:15, 8 December 2014 (UTC)
+::::: Really? Can you provide a source that describes the police interview that was released? - [[User:Cwobeel|<span style="color:#339966">Cwobeel</span>]] [[User_talk:Cwobeel|<span style="font-size:80%">(talk)</span>]] 18:25, 8 December 2014 (UTC)
+::::::Here's a link from a [http://edition.cnn.com/interactive/2014/11/us/ferguson-grand-jury-docs/index.html CNN webpage] to the interview. [https://www.documentcloud.org/documents/1370928-interview-po-darren-wilson.html] --[[User:Bob K31416|Bob K31416]] ([[User talk:Bob K31416|talk]]) 18:55, 8 December 2014 (UTC)
+::::: {{yo|Bob K31416}}I see what you mean. But you are confusing two things. What O'Donnell is referring to is an incident report. What you are refrring to is an interview with Wilson. These are two different things. Please restore that edit, as this section is all about incident reports and not interviews. - - [[User:Cwobeel|<span style="color:#339966">Cwobeel</span>]] [[User_talk:Cwobeel|<span style="font-size:80%">(talk)</span>]] 18:31, 8 December 2014 (UTC)
+:::::<small>{{yo|Cwobeel}} - You have to add the ping (yo) and your sig in the same edit, or there is no notification. I learned that the hard way. {{yo|Bob K31416}} &#8209;&#8209;[[User:Mandruss|<span style="color:#8E8278;">'''''Mandruss'''''</span>]]&nbsp;[[User talk:Mandruss|<span style="color:#AAA;">&#9742;</span>]] 18:50, 8 December 2014 (UTC) </small>
+::::::O'Donnell said, "any kind of comment or writing any sort of incident report whatsoever.” --[[User:Bob K31416|Bob K31416]] ([[User talk:Bob K31416|talk]]) 18:55, 8 December 2014 (UTC)
+::::::: So what? The fact is that Wilson did not file an incident report. That is undisputed. - [[User:Cwobeel|<span style="color:#339966">Cwobeel</span>]] [[User_talk:Cwobeel|<span style="font-size:80%">(talk)</span>]] 19:39, 8 December 2014 (UTC)
+
+=== Break1 Incident reports ===
+{{yo|Bob K31416}} I added additional commentary from legal and law enforcement analysts. I also re-ordered the sentences to follow the chronology. I think I got it right, but please change it if it is not correct. - [[User:Cwobeel|<span style="color:#339966">Cwobeel</span>]] [[User_talk:Cwobeel|<span style="font-size:80%">(talk)</span>]] 19:58, 8 December 2014 (UTC)
+
+:(Here’s a link to the version after Cwobeel's recent edits [https://en.wikipedia.org/w/index.php?title=Shooting_of_Michael_Brown&oldid=637213737#Incident_reporting_forms] and a link to the version before [https://en.wikipedia.org/w/index.php?title=Shooting_of_Michael_Brown&oldid=637210952#Incident_reporting_forms] .)
+
+:[[User:Cwobeel|Cwobeel]], Here’s some comments on your recent edits of the section.
+
+::1) The first sentence of your version misstated the source. O'Donnell was referring to only the Ferguson incident report. The info was already in the first sentence that you moved.
+
+::2) The second sentence of your version about Lisa Bloom’s opinion misstates the source. Lisa Bloom didn’t say that Wilson refused to file a report.
+
+::3) Re the 3rd sentence of your version about Jim Cavanaugh’s comment — The info was already covered in the first and second sentences of the original version.
+
+::4) The 4th sentence of your version about the Ferguson police not filing an incident report was the original 1st sentence.
+
+::5) The 5th and last sentence of the lead paragraph of your version was about a use-of-force report and was formerly the last sentence of the section. I hadn’t worked on the placement or content of this sentence yet.
+
+::6) The 2nd and 3rd paragraphs of your version were obtained by switching the 2nd and 3rd paragraphs of the original version. I hadn’t worked on the content or placement of the material in these paragraphs yet.
+
+::7) The 4th and last paragraph of your version was the second sentence of the lead paragraph of the original version.
+
+:Before I try to edit the section again, could you list here in our discussion, in chronological order, the events that you are trying to portray in chronological order? --[[User:Bob K31416|Bob K31416]] ([[User talk:Bob K31416|talk]]) 01:33, 9 December 2014 (UTC)
+
+:: I cheeked again this evening and this is the correct chronology, my last edit was not correct:
+::* August 19 - (10 days after shooting) incident report filed by St. Louis county police
+::* August 21 - O'Donnel's reporting, commentary from Lisa Bloom and Jim Cavanaugh
+::* August 22 - St. Louis County Prosecutor's Office says that Ferguson police did not file a report because the case was assigned to county police
+::* August 26 - ACLU releases the report they received after their FOIA request
+::* August 26 - HuffPo reports on commentary by ACLU's Gupta
+::* Sept 25 - Yahoo News reports that key report does not exist
+:: Regarding Bloom and Cavanaugh:
+::* Lisa Bloom: ''And if he refuses to follow standard operating procedure in preparing a report about the taking of the human life, he should be fired."
+::* Jim Cavanaugh: That is an expert opinion that should be presented.
+:: I <s>will attempt again to correct</s> corrected the chronology. - [[User:Cwobeel|<span style="color:#339966">Cwobeel</span>]] [[User_talk:Cwobeel|<span style="font-size:80%">(talk)</span>]] 03:37, 9 December 2014 (UTC)
+
+:: {{yo|:Bob K31416}} feel free to copyedit my rendition of Bloom and Cavanugh's comments, if you can make it better and closer to the source. - [[User:Cwobeel|<span style="color:#339966">Cwobeel</span>]] [[User_talk:Cwobeel|<span style="font-size:80%">(talk)</span>]] 03:42, 9 December 2014 (UTC)
+:::[[User:Cwobeel|Cwobeel]], On giving the section another look, I noticed that it is about not releasing information that has now been released. It’s obsolete and a digression from the topic of the article, the shooting of Michael Brown. We could summarize the incident report issue in a couple of sentences and merge it with the Police section. Thoughts? --[[User:Bob K31416|Bob K31416]] ([[User talk:Bob K31416|talk]]) 00:48, 10 December 2014 (UTC)
+
+== Wholesale deletion of relevant material ==
+
+{{yo|Roches}} Why are you deleting perfectly good material without any discussion[https://en.wikipedia.org/w/index.php?title=Shooting_of_Michael_Brown&diff=636909177&oldid=636903538]. I welcome your contributions, but you need to show some respect to the hard work from others. Deleting material that has been in the article for quite a while, and which represents an existing consensus is not acceptable - [[User:Cwobeel|<span style="color:#339966">Cwobeel</span>]] [[User_talk:Cwobeel|<span style="font-size:80%">(talk)</span>]] 22:15, 6 December 2014 (UTC)
+
+And when you are it, explain this edit [https://en.wikipedia.org/w/index.php?title=Shooting_of_Michael_Brown&diff=636903538&oldid=636894100] in which you removed several key pieces of reporting. - [[User:Cwobeel|<span style="color:#339966">Cwobeel</span>]] [[User_talk:Cwobeel|<span style="font-size:80%">(talk)</span>]] 22:21, 6 December 2014 (UTC)
+
+I mean, how blatant can you be? You removed a key piece: {{talkquote|. Brown stumbled, stopped, put his hands up and said "OK, OK, OK, OK, OK." The worker believed Brown had been wounded. With his hands up, Brown began walking toward the officer, at which point Wilson began firing at Brown and backing away.}} - [[User:Cwobeel|<span style="color:#339966">Cwobeel</span>]] [[User_talk:Cwobeel|<span style="font-size:80%">(talk)</span>]] 22:23, 6 December 2014 (UTC)
+
+:It's difficult to contribute anything at all if every aspect of every edit has to be justified. The fact that somebody said that something happened is not necessarily worth reporting here, and it does not remain worth reporting here. Editing material that was written some time ago is not destructive, it's just changing the article to represent the importance of that particular account ''as of right now.''
+
+:The construction worker's account describes Brown being hit from behind after being shot by one of three police officers. I thought it was acceptable to keep the broader details of the account. I did not remove all of the details in the "key piece" above. I only removed what the otherwise-unreliable account said Brown was saying. There's a reason for that. If someone reported that Brown said "I'm gonna kill you," then that conveys to readers the idea that Brown may have said that. Similarly, including a quotation from a possibly unreliable account, a quotation that other accounts don't include, can alter the opinions of readers in a different way than a retelling of what the worker said the people did. The edited account still conveys the worker's contention that Brown was trying to surrender, it just doesn't quote Brown in the retelling.
+
+:If that content represented an existing consensus between, say, ten editors, it no longer represents a consensus. I'm strongly opposed to it, I think it should be removed, so there isn't a consensus anymore. [[User:Roches|Roches]] ([[User talk:Roches|talk]]) 04:09, 7 December 2014 (UTC)
+
+::No comment on the rest, but I'll go out on a limb and challenge your last sentence based on the second sentence of [[WP:CONSENSUS]]: ''Consensus on Wikipedia does not mean unanimity (which, although an ideal result, is not always achievable)...''. In other words, consensus doesn't vanish the moment someone comes along and disagrees with it. It was rarely unanimous to begin with, as indicated in the quoted passage. &#8209;&#8209;[[User:Mandruss|<span style="color:#8E8278;">'''''Mandruss'''''</span>]]&nbsp;[[User talk:Mandruss|<span style="color:#AAA;">&#9742;</span>]] 04:39, 7 December 2014 (UTC)
+:::The part about hands up was removed. It was significant because it was supported by the following, which was also removed, "In a cellphone video obtained by CNN on {{nowrap|September 11}}, which captured the reaction of the construction worker and a colleague, one of them can be heard saying, "He had his fuckin' hands up." Does anyone know where the corresponding grand jury testimony is, volume, page number? --[[User:Bob K31416|Bob K31416]] ([[User talk:Bob K31416|talk]]) 05:04, 7 December 2014 (UTC)
+:::: I have restored the material that was deleted. - [[User:Cwobeel|<span style="color:#339966">Cwobeel</span>]] [[User_talk:Cwobeel|<span style="font-size:80%">(talk)</span>]] 05:28, 7 December 2014 (UTC)
+
+{{yo|Roches}}: ''It's difficult to contribute anything at all if every aspect of every edit has to be justified.'' Welcome to editing contentious articles in Wikipedia. - [[User:Cwobeel|<span style="color:#339966">Cwobeel</span>]] [[User_talk:Cwobeel|<span style="font-size:80%">(talk)</span>]] 05:30, 7 December 2014 (UTC)
+
+And a good reminder [[WP:NOTTRUTH]] - [[User:Cwobeel|<span style="color:#339966">Cwobeel</span>]] [[User_talk:Cwobeel|<span style="font-size:80%">(talk)</span>]] 05:32, 7 December 2014 (UTC)
+:Cwobeel, From the essay [[WP:NOTTRUTH]] that you referred to is the following, "The phrase 'the threshold for inclusion is verifiability, not truth' meant that verifiability is a necessary condition (a minimum requirement) for the inclusion of material, though it is not a sufficient condition (it may not be enough)." --[[User:Bob K31416|Bob K31416]] ([[User talk:Bob K31416|talk]]) 05:45, 7 December 2014 (UTC)
+:: I agree with you in that context. I was referring to this section: [[WP:!TRUTHFINDERS]] - [[User:Cwobeel|<span style="color:#339966">Cwobeel</span>]] [[User_talk:Cwobeel|<span style="font-size:80%">(talk)</span>]] 05:50, 7 December 2014 (UTC)
+:::::[[User:Cwobeel|Cwobeel]], I don't think that part of the essay means that verifiability guarantees the inclusion of questionable material. Also, please note the statement at the top of that essay's page, "Essays are ''not'' [[Wikipedia:Policies and guidelines|Wikipedia policies or guidelines]]." Wikipedia policy says that [https://en.wikipedia.org/w/index.php?title=Wikipedia:Verifiability&oldid=634377638#Verifiability_does_not_guarantee_inclusion verifiability does not guarantee inclusion]. --[[User:Bob K31416|Bob K31416]] ([[User talk:Bob K31416|talk]]) 06:50, 7 December 2014 (UTC)
+:::::: I am fully aware that an essay is not policy. But the point made in that essay is a good one. - [[User:Cwobeel|<span style="color:#339966">Cwobeel</span>]] [[User_talk:Cwobeel|<span style="font-size:80%">(talk)</span>]] 15:24, 7 December 2014 (UTC)
+:::::::And what point is that? --[[User:Bob K31416|Bob K31416]] ([[User talk:Bob K31416|talk]]) 16:42, 7 December 2014 (UTC)
+
+::::From the St. Louis Post-Dispatch, talking about the construction worker's testimony to the grand jury - [http://www.stltoday.com/news/local/crime-and-courts/in-grand-jury-testimony-passion-but-little-agreement-from-witnesses/article_f2fc0e21-dc59-59bf-82bc-c0f35fd40572.html A landscape worker who lives in Jefferson County gave grand jurors one of the oddest accounts of the moments leading up to Brown's death. The man said he encountered Brown that morning. He was trying to cut through some tree roots and cursing at the difficulties of the job. Brown told him that Jesus would help him with his anger problem. A few minutes later, the man said, he heard gunshots. He looked up and saw Brown running. '''He said three officers were chasing Brown''', but only one of them was shooting. Brown appeared to have been shot as he fled, the worker said. Then Brown turned around, put his hands up and started yelling “OK.” "And within a couple of seconds the '''three officers came up''', and one just pulled up and shot him," the worker said.]--[[User:Isaidnoway|<font face="Times New Roman" color="blue"> '''''Isaidnoway''''' </font>]][[User talk:Isaidnoway|<font face="Times New Roman" color="blue">'''''(talk)'''''</font>]] 05:36, 7 December 2014 (UTC)
+::::: Sure, but this article is not just about the testimony to the grand jury. This and other witnesses provided their accounts before that, such as in here [http://www.stltoday.com/news/local/crime-and-courts/workers-who-were-witnesses-provide-new-perspective-on-michael-brown/article_14a3e5f8-6c6a-5deb-92fe-87fcee622c29.html], the source used in that section. You are welcome to add his testimony to the grand jury for completeness. - [[User:Cwobeel|<span style="color:#339966">Cwobeel</span>]] [[User_talk:Cwobeel|<span style="font-size:80%">(talk)</span>]] 05:44, 7 December 2014 (UTC)
+
+::Restoring the original version reminded me of why I edited it. I'm not going to dissect the content line by line, feign outrage, or welcome you to Wikipedia. I especially do not like the last of these things, and I don't like when you tell me or other editors that we are free to add content to some section of the article, but not to another.
+
+::What I tried to do wasn't perfect, but if that content represents the hard work of many individuals working towards a consensus, the result was surprisingly awkward and difficult to read. [[User:Roches|Roches]] ([[User talk:Roches|talk]]) 06:22, 7 December 2014 (UTC)
+::: Fair enough. If you can improve content by copy editing, that would be most welcome. But there is a difference in making something more readable, and deleting content wholesale as you did. - [[User:Cwobeel|<span style="color:#339966">Cwobeel</span>]] [[User_talk:Cwobeel|<span style="font-size:80%">(talk)</span>]] 06:30, 7 December 2014 (UTC)
+
+== Fair use photos of Michael Brown and Darren Wilson ==
+
+I'm wondering about grabbing some photos of Brown and Wilson and uploading them as fair use. I have in mind these... [http://media4.s-nbcnews.com/i/newscms/2014_33/614086/140812-michael-brown-1338_8c5ad41dd423c28ed02e37e39222844e.jpg Brown],[http://i97.photobucket.com/albums/l217/Shockwave_73/Album%202/Darren-Wilson_zps70a1888c.jpg Wilson], and using them in a manner similar to the ones in [[Shooting of Trayvon Martin]]. Brown is dead so "historic portrait" applies, unless someone wants to argue that anyone who owns a photo of Brown ''could'' conceivably upload it here under some sort of free license. Wilson is still around, but I think the chances someone will upload a free picture of him anytime soon is pretty slim. And even if 30 years from now someone finally does, it won't do us much good in the meantime plus he won't look anything like he did during the event... which sort of kills the encyclopedic value. I think that since this a historic event (historic meaning this particular event happened at only one time in history), contemporary photos of the main participants are fair use. Thoughts on the validity of "fair-use" here? Thoughts on using the images in general? &ndash;&nbsp;[[User:Jbarta|JBarta]] ([[User talk:Jbarta#top|talk]]) 16:44, 8 December 2014 (UTC)
+:For Brown, we get one (and and only one) "fair use" photo under the "dead, no future free photos available" bits of [[WP:NFCC]]. So if consensus can be built on which photo to use, then we can go with it.
+:For Wilson, as he is living, we do not get such exceptions. I already uploaded a pic of Wilson's face injury under the NFCC for a non-reproduceable historical photo that is discussed in the article (the degree of injury or not). Having just an "What does Wilson look like" photo is not going to survive the fair use discussion tho.
+:The Trayvon Martin article is working under slightly different rules, because Florida does not allow state agencies to keep copyrights and so all of the evidence stuff is in the public domain. Missouri specifically does allow state agencies to keep copyright. [[User:Gaijin42|Gaijin42]] ([[User talk:Gaijin42|talk]]) 16:52, 8 December 2014 (UTC)
+::That fair use can indeed encompass "what does a main participant look like?" in a very notable "moment in time" event is an incorrect belief? &ndash;&nbsp;[[User:Jbarta|JBarta]] ([[User talk:Jbarta#top|talk]]) 17:30, 8 December 2014 (UTC)
+:::Generally only if there is some specific thing that is being commented on significantly in the article that the "moment in time" captures. For example injuries, or "iconic" status. "Here is a random snapshot of Wilson" won't qualify. You can always try of course, but I've seen hundreds of photos trying that argument get deleted. The relevant criteria are [[Wikipedia:Non-free_content#UULP]]. In our case a hypothetical free replacement would let us see the general ID of Wilson just fine (As opposed to the injury photos, which cannot be replaced ever in the future). More detail can be found at [[Wikipedia:Replaceability_of_fair-use_images#Living_people]] [[User:Gaijin42|Gaijin42]] ([[User talk:Gaijin42|talk]]) 17:58, 8 December 2014 (UTC)
+::::I'm familiar with the guidelines, just wondering how far they can be stretched in this context. We could argue that not only is this hypothetical future free image of Wilson unlikely to materialize, but it may very well not capture him as he looked during the event. No doubt he'll probably lay low for the forseeable future, he may grow a beard, etc. So one way to look at it is that Wilson, as he was during the event, is in fact a not reasonably replacable historic image. Compare this context with say a movie star with a career that spans many years. If we don't get a picture of him today, he's likely to be out and about still making movies and appearing at events in the future, not to mention his notability is not tied to one particular moment in time. Very different context than Wilson here. I'm not looking for a "you can always try it and see how it goes". I'm looking for a consensus that a "what he looks like" image of Wilson is a valid application of fair-use and while stretching WP guidelines, doesn't necessarily run afoul of them.&ndash;&nbsp;[[User:Jbarta|JBarta]] ([[User talk:Jbarta#top|talk]]) 18:55, 8 December 2014 (UTC)
+:::::Actually, a re-read of [[Wikipedia:Replaceability_of_fair-use_images#Living_people]] (thank-you Gaijin42) makes me think a photo of Wilson is well within the guidelines simply as a "not reasonably replaceable image of a living person". Add to that the idea of his notability being tied to one moment in time, and it's starting to look like a pretty solid case. No? Again, I'm looking for a consensus on that point rather than a "try it and see how it goes". &ndash;&nbsp;[[User:Jbarta|JBarta]] ([[User talk:Jbarta#top|talk]]) 19:25, 8 December 2014 (UTC)
+
+: I disagree with that choice of Michael Brown's photo, for several reasons. One reason is that is only shows his face. In the context of this article, I believe it is important to see his physical size (i.e., his body/frame/physique). Thanks. [[User:Joseph A. Spadaro|Joseph A. Spadaro]] ([[User talk:Joseph A. Spadaro|talk]]) 19:22, 8 December 2014 (UTC)
+::Can you point to any images you would prefer? &ndash;&nbsp;[[User:Jbarta|JBarta]] ([[User talk:Jbarta#top|talk]]) 19:28, 8 December 2014 (UTC)
+
+::: No, I don't have any access to such photos. And I don't particularly understand (or follow) all of the intricacies of the copyright/fair use rules, etc., as discussed above. Nonetheless, I disagree with this particular proposed photo. For the reason stated above, and for other reasons as well. I am sure that I have seen many photos of Brown in the news and on the internet, etc., over the past few months. I will see if I can point one out in particular. Thanks. [[User:Joseph A. Spadaro|Joseph A. Spadaro]] ([[User talk:Joseph A. Spadaro|talk]]) 19:32, 8 December 2014 (UTC)
+
+:::: Here is one photo: [http://www.bing.com/images/search?q=michael%20brown%20missouri%20&qs=n&form=QBIR&pq=michael%20brown%20missouri%20&sc=8-23&sp=-1&sk=#view=detail&id=70EF2F07F28C8C3A728820D8683ACDAB3256EB25&selectedIndex=3]. And I thought that I had seen this photo in a not-cropped version, showing his full-length body shot. [[User:Joseph A. Spadaro|Joseph A. Spadaro]] ([[User talk:Joseph A. Spadaro|talk]]) 19:37, 8 December 2014 (UTC)
+:::::Even if you have a full body shot, unless he's standing next to someone much smaller, you probably won't get a true sense of his size. And even if you did get such a photo, people will come out of the woodwork screaming that we're trying to portray him as a "big black monster". I'm thinking maybe it should be a neutral sort of image that no one has much of a problem with. Then again, he was a big dude and that certainly plays a part in the narrative. &ndash;&nbsp;[[User:Jbarta|JBarta]] ([[User talk:Jbarta#top|talk]]) 19:55, 8 December 2014 (UTC)
+::::::People can visualize 6'4" 300 lbs. without a photo. Unless we feel it useful to show that his build was more that of a lineman than a linebacker (I don't, particularly). &#8209;&#8209;[[User:Mandruss|<span style="color:#8E8278;">'''''Mandruss'''''</span>]]&nbsp;[[User talk:Mandruss|<span style="color:#AAA;">&#9742;</span>]] 20:02, 8 December 2014 (UTC)
+:::::: I think the proposed photo by JBarta is just fine, as it is the one that was used by most sources. Go head and add it. - [[User:Cwobeel|<span style="color:#339966">Cwobeel</span>]] [[User_talk:Cwobeel|<span style="font-size:80%">(talk)</span>]] 20:36, 8 December 2014 (UTC)
+:::::: To counteract Spadaro's comment, we are not showing a full body shot of Wilson who is 6' 4" either. - [[User:Cwobeel|<span style="color:#339966">Cwobeel</span>]] [[User_talk:Cwobeel|<span style="font-size:80%">(talk)</span>]] 20:38, 8 December 2014 (UTC)
+
+{{u|JBarta}} Regarding your question above about Wilson and replacability, I do not think the photo serves any purpose in the article that qualifies under NFCC. What he looked like in general is not a subject that is discussed in this article. Relative sizes between Brown and Wilson may be relevant, but the photos in question do not show that. Your proposed justification would basically apply to any photo of any person for almost any article, it renders the restriction meaningless. If NFCC had an exception for "this photo has been widely used by news media for this story" I would support that, and would perhaps support a change to NFCC to create such an exception, but as the policy currently stands, I think its pretty clear generic photos of Wilson do not make the cut. [[User:Gaijin42|Gaijin42]] ([[User talk:Gaijin42|talk]]) 20:45, 8 December 2014 (UTC)
+: Agree. The photo showing the redness on the face, relates specifically to the investigation and thus it can squeeze through (hardly,IMO) under NFCC. A generic photo of Wilson would not. - [[User:Cwobeel|<span style="color:#339966">Cwobeel</span>]] [[User_talk:Cwobeel|<span style="font-size:80%">(talk)</span>]] 20:48, 8 December 2014 (UTC)
+::"What he looked like in general isn't important" could be similarly argued for ''any'' person who is dead, yet has a fair use photo in their article. By my reading of the guidelines, it's not the importance that is important, but whether the photo is reasonably replaceable. If one agrees that a photo of Darren Wilson (especially capturing him at this moment in time) is not reasonably replaceable to an extent similar to a person who has died, then I would think the guideline would apply to Wilson as well as a person who has died. It's not like Wilson is going to be out posing for photos at the next Fergson Community Days or anything. &ndash;&nbsp;[[User:Jbarta|JBarta]] ([[User talk:Jbarta#top|talk]]) 21:00, 8 December 2014 (UTC)
+:::Wikipedia works in hypotheticals quite often. [[WP:V]] has [[WP:V#Access_to_sources]] for example. (Its in a physical library in Peru in a village only accessible by foot. Doesn't mean it isn't verifiable. ) There is a zero percent chance of free photos of Brown being taken in the future. I can come up with many ways we could have photos of Wilson in the future. (someone catches him in public, federal evidence released, federal charges, cspan testimony) etc. The main point that its tripping you up on replacability is that you have not stated how a photograph of him at the time is of particular encyclopedic value to justify the copyright issues vs a hypothetical image of him from the future. What does his "look" at that moment in time illustrate for the article? His skin tone? his physical fitness? We discuss none of this in the article, therefore illustrating it is not adding anything. In any case, the general policy won't get changed here. As I said feel free to try, but I have seen literally hundreds of photos go down in flames on the same type of reasoning. And fair warning I would !vote as I have indicated here (although I certainly don't make the consensus alone). [[User:Gaijin42|Gaijin42]] ([[User talk:Gaijin42|talk]]) 21:09, 8 December 2014 (UTC)
+
+::::On the issue of having a photo of him at this time and its replacabiliy. Imagine for a minute an article about a famous fight between two boxers back in the 1970's. You show each boxer... one a contemporaneous photo, the other forty years later all crippled up hunched over a cane because we can't find a free image of that boxer from back in the 1970s. The article is about the fight in the 1970's. The recent image of the one fighter arguably has little to do with the fight. It's not the same person that was in the fight. The same replacabilty concern exists with Darren Wilson, only the circumstances are less extreme and we're at the beginning of not having an image of him rather than far down the road. &ndash;&nbsp;[[User:Jbarta|JBarta]] ([[User talk:Jbarta#top|talk]]) 21:33, 8 December 2014 (UTC)
+
+:::Per NPOV I don't see how we could justify a photo of one without a photo of the other. A photo would serve no purpose other than to personalize the subject for the reader. If you think we've seen battles here to date, just make the popcorn and add Brown without Wilson. We have the shot of Wilson's cheek, but that's not equivalent to a full face shot, with eye contact, in the subject's bio section (which I presume is where Brown's photo would go). &#8209;&#8209;[[User:Mandruss|<span style="color:#8E8278;">'''''Mandruss'''''</span>]]&nbsp;[[User talk:Mandruss|<span style="color:#AAA;">&#9742;</span>]] 21:19, 8 December 2014 (UTC)
+
+* [[User:Jbarta]] asked me to comment here.
+: Wilson: This person is still alive. Jbarta seems to be concerned that Wilson may look very different when a free image is created. However, I note that the event took place only four months ago. It is therefore obvious that the person ''currently'' looks more or less the same as he did when this event took place. There is a potential that someone might take a photo of him tomorrow, next week or in January, and that photograph would then serve as a free replacement. It is important to note that [[WP:NFCC#1]] disallows non-free content if free content ''can be created'', and it is perfectly possible to take photos of him for the moment. The image is therefore replaceable, at least for the moment. If, after 40 years, it turns out that there is still no one who has taken a free photo of him, things may be different and he may look a lot different. [[WP:NFCC#1]] allows non-free images in some situations if the person has changed a lot from the time when he became famous, but non-free images are not allowed in all such situations. It may be useful to point out that a similar situation (a child actor active in the 1990s) currently is being discussed at [[Wikipedia:Deletion review/Log/2014 December 3|deletion review]].
+: Brown: This person is dead, so non-free images of him are not replaceable. The image proposed by Jbarta, [http://media4.s-nbcnews.com/i/newscms/2014_33/614086/140812-michael-brown-1338_8c5ad41dd423c28ed02e37e39222844e.jpg], looks like an image of children at an amusement park or some similar kind of place. It looks as if Brown could easily be at about the same age as the children in the background. However, it says that he was 18 at the time of his death. Is this a 10-year-old photo or something? If Jbarta is concerned that the photo of Wilson must be contemporary, then why does {{gender:Jbarta|he|she}} think that the photo of Brown doesn't need to be contemporary? I suspect that this photograph isn't suitable for the article. However, I don't know what other photographs, if any, would be suitable. I am also not sure if it is necessary to include a photograph of him in this article per [[WP:NFCC#8]]. I believe that there have been other discussions about murdered people at FFD, but I don't remember the outcome.
+: [[Shooting of Trayvon Martin]]: Jbarta mentioned this article because this article also contains non-free pictures. This article seems to have problems, see [[Wikipedia:Files for deletion/{{#time:Y F j|00:19, 10 December 2014 (UTC)}}#Pictures of Trayvon Martin]]. --[[User:Stefan2|Stefan2]] ([[User talk:Stefan2|talk]]) 00:19, 10 December 2014 (UTC)
+::On the topic of Brown's age in [http://media4.s-nbcnews.com/i/newscms/2014_33/614086/140812-michael-brown-1338_8c5ad41dd423c28ed02e37e39222844e.jpg this] photo you'll notice the bit of beard on his chin. It's the same as [http://www.google.com/imgres?imgurl=http%3A%2F%2Fbloximages.newyork1.vip.townnews.com%2Fstltoday.com%2Fcontent%2Ftncms%2Fassets%2Fv3%2Feditorial%2Ff%2Fed%2Ffed5e621-f0a8-5baa-a11a-c748e5dc65cd%2F5407e41926d2b.preview-620.jpg&imgrefurl=http%3A%2F%2Fwww.stltoday.com%2Fnews%2Flocal%2Fcrime-and-courts%2Fofficial-autopsy-shows-michael-brown-had-close-range-wound-to%2Farticle_e98a4ce0-c284-57c9-9882-3fb7df75fef6.html&h=501&w=620&tbnid=-nkr8uIvwcLzZM%3A&zoom=1&docid=HhK_zehdqKbgJM&ei=2JWHVJWjKYKqgwTdwIGACA&tbm=isch&ved=0CDUQMygCMAI&iact=rc&uact=3&dur=3358&page=1&start=0&ndsp=14 this] photo where I assume he's graduating high school. I think the photo I chose isn't more than a year or so old. At any rate, I'm not firmly fixed on any photo. It doesn't entirely matter to me. No matter what photo is chosen there will be those who see some sort of suspicious reason for the choice.
+::And while it's "possible" someone could snap an image of Wilson in the near future and upload free it here, I'd say it's highly unlikely. I'd also like to point out again that Wilson fits ''precisely'' the criteria set out in the 'May not be reasonably replaceable' section of [[Wikipedia:Replaceability_of_fair-use_images#Living_people]]. He's the poster boy for not likely to get a free picture of him anytime soon. The ''only'' thing he's likely to show himself for is a possible lawsuit from Brown's family... but I suspect he won' be out front signing autographs. &ndash;&nbsp;[[User:Jbarta|JBarta]] ([[User talk:Jbarta#top|talk]]) 00:51, 10 December 2014 (UTC)
+:::I just noticed [[Wikipedia:Replaceability_of_fair-use_images]] is a failed proposal. It carries zero weight. My argument just took a shit. &ndash;&nbsp;[[User:Jbarta|JBarta]] ([[User talk:Jbarta#top|talk]]) 01:17, 10 December 2014 (UTC)
+::::Yes, [[WP:REFU]] appears to be a failed proposal. I obviously overlooked the beard on the photograph. --[[User:Stefan2|Stefan2]] ([[User talk:Stefan2|talk]]) 23:06, 10 December 2014 (UTC)
+::{{re|Stefan2}} You probably missed the goatee, Brown doesn't look 8 years old in that photo. Judging by the [http://documents.latimes.com/federal-autopsy-michael-brown/ federal autopsy report's description], the photo is probably recent, although it could use a bit of cropping. Trayvon Martin's photos aren't relevant to the discussion; as of when I wrote this there hasn't been any consensus regarding those images. That leaves Wilson's images. It's possible that a photo of Wilson might be released publicly, so NFCC#1 probably doesn't work here. The only nonfree image that's irreplaceable is that of Wilson's injuries, except they're probably not appropriate for the short biography. Those are better suited for descriptions of the shooting. I think that posting only an image of Brown with the biographies would violate [[WP:IMPARTIAL|impartiality]], so I don't think their photos should be posted in the article. --[[User:RAN1|RAN1]] ([[User talk:RAN1|talk]]) 02:00, 10 December 2014 (UTC)
+
+== "baseline position" on diagram ==
+
+{{u|Cwobeel}} I think it may be helpful to include a spot on the diagram for the "baseline" position where all the measurements are from. Note that this point is not a [[WP:SYNTH]] issue derived by us from the witness testimony/sources, this is the "zero" point for the diagram measurements, per the crime scene photographers/investigators, and that point is explicitly marked on the original diagram.
+
+As an aside, the quotes below has bearing on the "Crime Scene" discussion above, as we have the police specifically referring to this location as a crime scene.
+
+* [http://www.washingtonpost.com/news/volokh-conspiracy/wp/2014/12/08/the-overlooked-audiotape-of-the-michael-brown-shooting/] (See figure 2 cone photo)
+
+* https://s3.amazonaws.com/s3.documentcloud.org/documents/1370513/grand-jury-volume-24.txt
+**And why is it that this cone was placed at that location on Canfield Drive? A As best we could tell based off of witness accounts, that would have been the furthest point east that Michael Brown would have went to. So that intersection of roughly Coppercreek Court and Canfield Drive. or Canfield Road? [...]That was the point that they had made reference to and so we used that as the furthest eastern point to go to.
+**In terms of on August 9th, one of our crime scene detective's jobs was to '''take various measurements of items of evidence at the scene. And he used what starts as a baseline at Coppercreek Court and Canfield Court, and used this baseline here and measured items during the entire, I should say, within the entire crime scene and those items were documented in a diagram that he completed with specific measurements, feet down to inches.''' So when we went back out there to take those 360 degree panoramic shots, we based, obviously, Coppercreek Court and Canfield Drive is subjective in the sense that we are basing that off of where, again, witnesses were telling us is the furthest point east that Michael Brown would have went So that is a subjective point that we use that intersection, northwest corner of that intersection right there.
+* Witness 14 http://graphics8.nytimes.com/newsgraphics/2014/11/24/ferguson-evidence/assets/interviews/interview-witness-14-01.pdf
+** "the boy was still standing on the, on the, on the partially on the parking lot and on the grass. 'Cause he had ran that way. The officer came out came around got into his stance. And he said ?stop.? Because the boy looked up at him and he took two steps, about two or three steps.
+** When [Brown] turned around he had about one foot on the grass and one on the driveway.
+* Dorian
+** [Brown] was barely on the sidewalk, he was barely on the sidewalk to the parking lot. He was going towards this building. I presume that’s the way he was running. He wasn’t really all the way on the driveway when the . . . shot went off, and he turned around, and he was in the street
+[[User:Gaijin42|Gaijin42]] ([[User talk:Gaijin42|talk]]) 16:48, 8 December 2014 (UTC)
+
+Do we have the exact position of the baseline cone? I don't see it on the police report diagram. Is it on the legend list? - [[User:Cwobeel|<span style="color:#339966">Cwobeel</span>]] [[User_talk:Cwobeel|<span style="font-size:80%">(talk)</span>]] 20:40, 8 December 2014 (UTC)
+::{{u|Cwobeel}} It is at 0 feet 0 inches for both directions. on the diagram (text at bottom right corner saying "Baseline starting at 0'0" ) with a line pointing to the corner. On the legend the very bottom says "baseline runs east to west on north side of canfield with 0'0" starting at copper creek ct." The testimony indicates why they chose that spot as the baseline, and that the cone in the photograph is that point. [[User:Gaijin42|Gaijin42]] ([[User talk:Gaijin42|talk]]) 20:58, 8 December 2014 (UTC)
+::: Added baseline as suggested. Also added the cross street Copper Creek Ct. - [[User:Cwobeel|<span style="color:#339966">Cwobeel</span>]] [[User_talk:Cwobeel|<span style="font-size:80%">(talk)</span>]] 21:45, 8 December 2014 (UTC)
+::::Nice. Suggestions: 1. Extend the bottom curb to the right edge of the image, to show that Copper Creek does not cross Canfield. 2. Is there a little too much space between the C and T in CT., or is that just more flaky rendering? 3. If there is any way to establish the distance between the left edge and the baseline, I can use that to fine-tune our coordinates, using the distance measuring tool in Google Maps. &#8209;&#8209;[[User:Mandruss|<span style="color:#8E8278;">'''''Mandruss'''''</span>]]&nbsp;[[User talk:Mandruss|<span style="color:#AAA;">&#9742;</span>]] 21:55, 8 December 2014 (UTC)
+::::: {{Done}} . Thanks for the feedback. - [[User:Cwobeel|<span style="color:#339966">Cwobeel</span>]] [[User_talk:Cwobeel|<span style="font-size:80%">(talk)</span>]] 22:36, 8 December 2014 (UTC)
+
+:::::{{u|Mandruss}} The legend of the original diagram includes the exact distance in feet and inches to every other item from the baseline, so just pick the furthest left item? (looks like its one of the casings by the car) [[User:Gaijin42|Gaijin42]] ([[User talk:Gaijin42|talk]]) 22:15, 8 December 2014 (UTC)
+::::::Ok, I tweaked the coords to a position halfway between items 4 and 20, or about 105 ft NW of the baseline (they moved about 20 ft SE). &#8209;&#8209;[[User:Mandruss|<span style="color:#8E8278;">'''''Mandruss'''''</span>]]&nbsp;[[User talk:Mandruss|<span style="color:#AAA;">&#9742;</span>]] 22:28, 8 December 2014 (UTC)
+::::::Obsessively checking my work, I came up with 118 ft NW of the baseline, and the coords were already correct. I could be taking this accuracy thing too far, or perhaps someone as anal as I am would care to check my work. Item 4: 210' from baseline. Item 20: 26'7" from baseline. 26'7" = roughly 26.6 ft. ((210 - 26.6) / 2)) + 26.6 = 118.3. &#8209;&#8209;[[User:Mandruss|<span style="color:#8E8278;">'''''Mandruss'''''</span>]]&nbsp;[[User talk:Mandruss|<span style="color:#AAA;">&#9742;</span>]] 22:56, 8 December 2014 (UTC)
+::::::I vote accuracy too far. A few feet certainly won't matter for the purposes of the infobox. [[User:Gaijin42|Gaijin42]] ([[User talk:Gaijin42|talk]]) 22:59, 8 December 2014 (UTC)
+:::::::Thought so. &#8209;&#8209;[[User:Mandruss|<span style="color:#8E8278;">'''''Mandruss'''''</span>]]&nbsp;[[User talk:Mandruss|<span style="color:#AAA;">&#9742;</span>]] 23:01, 8 December 2014 (UTC)
+
+As for the other witnesses narratives, that would be a good addition, as it explains the position of the casings and other evidence when the final shots were fired. - [[User:Cwobeel|<span style="color:#339966">Cwobeel</span>]] [[User_talk:Cwobeel|<span style="font-size:80%">(talk)</span>]] 21:46, 8 December 2014 (UTC)
+
+{{u|Cwobeel}} How are you making the SVG? Are you just eyeballing positions, or do you have it gridded out so you can convert from the actual feet/inches to the right pixels in some deterministic way? [[User:Gaijin42|Gaijin42]] ([[User talk:Gaijin42|talk]]) 22:10, 8 December 2014 (UTC)
+: Neither. I used the diagram of one of the media sources as an underlay, and positioned the evidence items accordingly. As the media sources did not have the baseline cone, that one I added by eyeballing. If we want to be scientific about it, I will have to re-do the position of each item using the measurements and converting the positions to the XY grid in Omnigraffle. Pretty laborious I'd say. - [[User:Cwobeel|<span style="color:#339966">Cwobeel</span>]] [[User_talk:Cwobeel|<span style="font-size:80%">(talk)</span>]] 22:29, 8 December 2014 (UTC)
+
+Can you explain how this is not original research or synthesis? You're converting a not-to-scale diagram to a scale diagram using information from two different primary sources. The article is in poor condition, with many outdated sections, far too many references, and duplicate information in several places. There are also far, far too many statements of the type "A B of XYZ News stated on August 21 that..."
+
+For comparison, [[2014 Grozny clashes]] has a better balance of opinion and fact, and an appropriate use of citations. That's just a random news article that I like the style of.
+
+Does this article require mediation? I haven't done that before, but I think there are issues that need to be addressed. I mean ownership, if it's not clear. [[User:Roches|Roches]] ([[User talk:Roches|talk]]) 05:06, 9 December 2014 (UTC)
+
+:From [[WP:Citing sources]]: ''Wikipedia's Verifiability policy requires inline citations for any material challenged or likely to be challenged, and for all quotations, anywhere in article space. However, editors are advised to provide citations for all material added to Wikipedia; any unsourced material risks being unexpectedly challenged or eventually removed.''
+
+:Based on the above, your concerns about too many references are unfounded and clearly unsupported by WP content guidelines.
+
+:I honestly don't see where you're getting the ownership claim, but please be specific and back it up.
+
+:I'll let others respond to your concerns about the diagram. &#8209;&#8209;[[User:Mandruss|<span style="color:#8E8278;">'''''Mandruss'''''</span>]]&nbsp;[[User talk:Mandruss|<span style="color:#AAA;">&#9742;</span>]] 05:14, 9 December 2014 (UTC)
+::I don't think Roches was referring to there being too many citations, but rather too many in-text attributions.
+::Regarding ownership, I think it's more a matter of there being some very active editors. This can result in there being misinformation and bias that would take more time than most have to correct it, but I don't see how that can be avoided, considering there is open editing. All I can say is to hang in there and do what you can.
+::Regarding the scale of the diagram, it looks like the same scale as the diagram in this source [http://www.stltoday.com/map-the-michael-brown-shooting-scene/html_0c861d0f-9a56-5769-8c16-d4b137af96e1.html]. In fact, the identifications and placement of the individual pieces of evidence look about the same too. If something is added to the diagram that is not supported by a reliable source, or it highlights something that is not specifically mentioned in a reliable source, then that might be a problem. So far I don't know of that happening here. Items that are the result of calculations can be questioned, but then there is the policy [[WP:CALC]] that allows some, and whether or not it is suitable for an article can be determined by consensus. --[[User:Bob K31416|Bob K31416]] ([[User talk:Bob K31416|talk]]) 13:01, 9 December 2014 (UTC)
+::On second thought it doesn't look like the same scale. [https://en.wikipedia.org/w/index.php?title=Shooting_of_Michael_Brown&oldid=637281752#Shooting_scene_evidence our article] [http://www.stltoday.com/map-the-michael-brown-shooting-scene/html_0c861d0f-9a56-5769-8c16-d4b137af96e1.html source] Maybe we need take out a ruler and check it and then add a note to the diagram, "not to scale", or redraw the diagram, using the source's diagram as a model for the scale. I notice that the source's diagram uses an actual picture of the street and surroundings on which it overlays the items in the crime scene. --[[User:Bob K31416|Bob K31416]] ([[User talk:Bob K31416|talk]]) 13:57, 9 December 2014 (UTC)
+::Update: I just now added the above source to the diagram. --[[User:Bob K31416|Bob K31416]] ([[User talk:Bob K31416|talk]]) 14:10, 9 December 2014 (UTC)
+:::My understanding is that the plotting of all points in the diagram used in the article was down to the inches from the baseline point based on the data published in that measurement table. If the scale in the diagram is questionable, it may be good for us to add a scale bar with 10-foot increment along the bottom part of the diagram. [[User:Z22|Z22]] ([[User talk:Z22|talk]]) 14:23, 9 December 2014 (UTC)
+
+:::Bob, I disagree that we need to inform the reader that the scale of our diagram is a little different from that of the source, for the sake of improved readability. All that matters is that the distance ''proportions'' are the same, and a "not to scale" statement could easily be interpreted as meaning that they are not. I think we're better off without it. &#8209;&#8209;[[User:Mandruss|<span style="color:#8E8278;">'''''Mandruss'''''</span>]]&nbsp;[[User talk:Mandruss|<span style="color:#AAA;">&#9742;</span>]] 02:51, 10 December 2014 (UTC)
+
+:About the diagram, as per [[WP:OI]], "Original images created by a Wikipedian are not considered original research, so long as they do not illustrate or introduce unpublished ideas or arguments, the core reason behind the NOR policy." This diagram was created from published data [http://graphics8.nytimes.com/newsgraphics/2014/11/24/ferguson-evidence/assets/ferguson/photos/2014-43984/photos-7/picture2.png here] and [http://graphics8.nytimes.com/newsgraphics/2014/11/24/ferguson-evidence/assets/ferguson/photos/2014-43984/photos-7/capture.png here], same document. There is no unpublished ideas or arguments included in the diagram, so it is not an original research, but it is just an original image. Also it is not synthesis because it is largely based on that same source. Other references listed next to the diagram were to show that same idea/argument has been published by multiple reliable sources. [[User:Z22|Z22]] ([[User talk:Z22|talk]]) 13:32, 9 December 2014 (UTC)
+
+Per the arguments above by Z22 and others, the diagram is not OR. Can it be improved? Sure, there is always that possibility. As for the state of the article referred to by Roches, same applies. It can always be improved, but generalizations don't help here. If there are specific things that you want addressed, join in and do the [[WP:EDITING|hard work]]. You may get reverted and challenged, but that is the way of this land. Collaborative editing is hard work and requires patience. - [[User:Cwobeel|<span style="color:#339966">Cwobeel</span>]] [[User_talk:Cwobeel|<span style="font-size:80%">(talk)</span>]] 8:39 am, Today (UTC−6)
+
+== Collaborating, OR, and inline attributions==
+Cwobeel, you have mentioned [[WP:OR]] three times since the talk page was last archived, and none of those instances were legitimately original research. I don't think the diagram is OR, actually, but it seemed inconsistent, for example, that you'd estimate the position of the baseline.
+
+I'd like to contribute in a collaborative and positive way, but that will require the active editors to assume competency on my part. I would use fewer in-line citations, I would use primary sources to some extent, and I would have to remove existing content in the process of editing it. I can't justify every change I make, but all the changes I make are justifiable. So, if I remove content, replace it, and if I make a change that needs justification, please ask for justification. [[User:Roches|Roches]] ([[User talk:Roches|talk]]) 15:46, 9 December 2014 (UTC)
+
+:Again, you call for fewer inline citations, but this time you're doing it without responding to the guideline excerpt that clearly says you're wrong on that. If you're in fact referring only to in-text attributions, as Bob said, then please use the correct term and say so.
+
+:If you want to work collaboratively on this article like the rest of us, I don't think anyone here will oppose that. We can use all the collaborative help we can get. Doing things like asserting, quite incorrectly, that your disagreement voids a consensus is not collaborative. &#8209;&#8209;[[User:Mandruss|<span style="color:#8E8278;">'''''Mandruss'''''</span>]]&nbsp;[[User talk:Mandruss|<span style="color:#AAA;">&#9742;</span>]] 17:26, 9 December 2014 (UTC)
+
+:: I second Mandruss comments about consensus. {{yo|Roches}} What I am puzzled about is your assertion that you want to {{tq|use primary sources to some extent}}. Can you clarify what do you mean by that? As discussed in [[Wikipedia_talk:Identifying_reliable_sources#Source_bombing]], while primary sources are not forbidden, most materials in articles are expected to be drawn from secondary sources. - [[User:Cwobeel|<span style="color:#339966">Cwobeel</span>]] [[User_talk:Cwobeel|<span style="font-size:80%">(talk)</span>]] 19:12, 9 December 2014 (UTC)
+
+:: A point about in-text attributions. These are needed in ''each and every case'' in which an opinion is expressed. - [[User:Cwobeel|<span style="color:#339966">Cwobeel</span>]] [[User_talk:Cwobeel|<span style="font-size:80%">(talk)</span>]] 19:15, 9 December 2014 (UTC)
+
+I'm referring to [[WP:BUNDLING]], not to any removal of inline citations or in-text attributions that are required. It didn't occur to me that there was even a possibility of someone thinking I meant removing references that needed to be there.
+
+About consensus: That was in reply to an assertion that I was deliberately removing content. The idea was that it had been there for a long time, and so it should stay. I thought that it needed to be updated, and that's all. If I was really trying to do something incorrect there, I would have undid the revert, and I didn't.
+
+About using primary sources to some extent: I really just meant what I said here (and everywhere else, for that matter). There are aspects of this case where primary sources are the best ones. An example would be the autopsy report, which is the work of a medical professional and makes all of the appropriate conclusions (and none of the inappropriate ones), as opposed to an article about the autopsy.
+
+In general: I don't have a lot of Wikipedia edits, but I've been using the site almost since the beginning. I've written and edited a substantial amount of scientific text, some of which is published. This does not mean I'm better than anyone else, but it's difficult for me to understand the hostility towards my comments here. (I don't mean replies to things that were already hostile.) It's even more difficult to understand the hostility I got when I tried to edit the article.
+
+I have posted to the admin noticeboards incident section. I tried to resolve this with the last post, but all that happened is that I got told I wasn't being collaborative. I can't see any reason why I was being uncollaborative that does not involve altering someone's content.
+
+[[User:Roches|Roches]] ([[User talk:Roches|talk]]) 20:35, 9 December 2014 (UTC)
+
+: I can understand your frustration. Expert editors sometimes have difficulties adapting to the realities of Wikipedia editing. A couple of good essay on the subject are [[WP:EXPERT]] and [[WP:EXR]] - [[User:Cwobeel|<span style="color:#339966">Cwobeel</span>]] [[User_talk:Cwobeel|<span style="font-size:80%">(talk)</span>]] 20:46, 9 December 2014 (UTC)
+
+The problem with [[WP:PRIMARY]] sources is that they can only be used for "straightforward, descriptive statements of facts that can be verified by any educated person with access to the primary source but without further, specialized knowledge" and "Any interpretation of primary source material requires a reliable secondary source for that interpretation". As can be seen in the "shell casing pattern" discussion above, deciding what is or isn't analysis vs objective fact is often itself controversial per your statement "''Objective facts from a primary source are not original research, and synthesis of objective facts when only one conclusion is possible is not speculation''". Clearly there is disagreement about how many conclusions are possible for almost all the facts of this case both on wiki and in the real world. Further, your specific example for wanting primary sources is itself problematic "''An example would be the autopsy report, which is the work of a medical professional and makes all of the appropriate conclusions (and none of the inappropriate ones), as opposed to an article about the autopsy''" By definition you are stating that your analysis of the primary source disagrees with the secondary source analysis of that same source. You may be right, you may be wrong, but policy prohibits any such analysis all together. There are plenty of places all of us disagree with various secondary sources, and think they got it wrong. The answer to that is to find an equally reliable secondary source that you think got it right and put it in, not just delete what we disagree with, or put in our own analysis. To some degree those restrictions are less ''on the talk page'' where we can briefly discuss why we think a particular fact or analsysis is relevant and worthy for inclusion in the article. [[User:Gaijin42|Gaijin42]] ([[User talk:Gaijin42|talk]]) 21:06, 9 December 2014 (UTC)
+: I couldn't have argued it better. - [[User:Cwobeel|<span style="color:#339966">Cwobeel</span>]] [[User_talk:Cwobeel|<span style="font-size:80%">(talk)</span>]] 21:29, 9 December 2014 (UTC)
+
+Please don't be offended by the admin noticeboard post, at least not to a great extent. Things were gradually building up, and I held back from resorting to the admins for a while.
+
+The autopsy report may not be the best example, because that section is okay. I wouldn't analyze a primary source; there is always a need and a place for secondary sources. I just don't think secondary sources are necessarily better. Maybe a witness account is a better example; it could be quoted directly ''and supported by secondary sources'' rather than using several sources to write the account. [[User:Roches|Roches]] ([[User talk:Roches|talk]]) 23:14, 9 December 2014 (UTC)
+
+== Two witnesses found dead? ==
+
+According to this source, two witnesses, Shawn Gray, and DeAndre Joshua were found dead under suspicious circumstance. No idea if the source is reliable, but I doubt this is a made up story. [http://www.telesurtv.net/english/news/Another-Witness-in-Michael-Brown-Shooting-Found-Dead-20141208-0044.html]. - [[User:Cwobeel|<span style="color:#339966">Cwobeel</span>]] [[User_talk:Cwobeel|<span style="font-size:80%">(talk)</span>]] 23:33, 8 December 2014 (UTC)
+: After digging in a bit, it seems that there is a conspiracy theory garnering steam on the interwebs, that witnesses are being targeted. But reports I am seeing about the death of Shawn Gray, do not say anything about him being an witness in Brown's case. [http://www.stltoday.com/news/local/crime-and-courts/death-of-man-found-in-river-des-peres-in-st/article_f2e9ab3d-a536-573a-b85f-9d7cac03ed17.html] - [[User:Cwobeel|<span style="color:#339966">Cwobeel</span>]] [[User_talk:Cwobeel|<span style="font-size:80%">(talk)</span>]] 23:38, 8 December 2014 (UTC)
+
+::Joshua was the one found in the burned car. We have him in the unrest article with no connection to this case other than location. I don't see any reason to include random Internet conspiracy theories. &#8209;&#8209;[[User:Mandruss|<span style="color:#8E8278;">'''''Mandruss'''''</span>]]&nbsp;[[User talk:Mandruss|<span style="color:#AAA;">&#9742;</span>]] 23:45, 8 December 2014 (UTC)
+::: Neither do I. - [[User:Cwobeel|<span style="color:#339966">Cwobeel</span>]] [[User_talk:Cwobeel|<span style="font-size:80%">(talk)</span>]] 23:49, 8 December 2014 (UTC)
+
+== Anonymous released wrong name ==
+
+All right, here's a tricky issue.
+
+I went and tracked down the purportedly-[[Anonymous (group)]]-affiliated Twitter account's release of a police officer's name [[Shooting_of_Michael_Brown#Third_parties|mentioned in the article]], no doubt getting myself on all kinds of governmental watchlists in the process. It's not easy to find, but the name they released was '''not''' that of Darren Wilson. (Nobody type it here!) This fact seems inclusion-worthy despite (or, per [[WP:Recent]], particularly because) being out of the headlines, but the only RS I can find who have reported on this error mention the released incorrect name themselves, and it would be unethical and probably prohibited by [[WP:BLP]] to link to them.
+
+Should we just let this info fade into the Net? People will want to check the record next time Anonymous [[doxing|doxes]] someone in a high-profile situation like this, but maybe that's not our problem.
+
+Apologies for not posting links to what I'm talking about, but I shouldn't for obvious reasons. [[User:FourViolas|FourViolas]] ([[User talk:FourViolas|talk]]) 01:14, 9 December 2014 (UTC)
+
+:Are you talking about [[Shooting_of_Michael_Brown#Third_parties|this (fifth bullet, next-to-last sentence)]]? &#8209;&#8209;[[User:Mandruss|<span style="color:#8E8278;">'''''Mandruss'''''</span>]]&nbsp;[[User talk:Mandruss|<span style="color:#AAA;">&#9742;</span>]] 01:17, 9 December 2014 (UTC)
+
+::That's the section I'm talking about, but not the citation. That one is from before Wilson's name was released, so all it says is that the police denied the allegation. It might be good enough for this article, though, as it allows readers to infer from the absence of an update saying "...but the police were lying, and it '''was''' Officer [redacted] after all." [[User:FourViolas|FourViolas]] ([[User talk:FourViolas|talk]]) 01:28, 9 December 2014 (UTC)
+
+:::I get you now. And you haven't found a source that says the Anonymous ID was wrong, without reporting the name of the innocent party. In that case, I agree with leaving it at is. &#8209;&#8209;[[User:Mandruss|<span style="color:#8E8278;">'''''Mandruss'''''</span>]]&nbsp;[[User talk:Mandruss|<span style="color:#AAA;">&#9742;</span>]] 01:34, 9 December 2014 (UTC)
+
+== New documents released ==
+
+New material has been released by the prosecutor's office. As I will not have much time today to work on this, maybe others can take a look. [http://www.latimes.com/nation/nationnow/la-na-nn-more-grand-jury-documents-michael-brown-shooting-20141208-story.html] - [[User:Cwobeel|<span style="color:#339966">Cwobeel</span>]] [[User_talk:Cwobeel|<span style="font-size:80%">(talk)</span>]] 20:18, 9 December 2014 (UTC)
+
+:So far the docs seem all over the place. A few supporting brown, a few supporting wilson, one completely off the wall "walk out" one that claimed to personally see Brown on his knees and Wilson shoot him in the head point blank, and then saw/heard 8 more shots into Brown while he was face down, who then stopped the interview when they were told what they were saying didn't match the evidence. Mostly they seem to be all followup interviews asking specific questions after the local interviews. On from the guy Brown was living with that week.[[User:Gaijin42|Gaijin42]] ([[User talk:Gaijin42|talk]]) 20:31, 9 December 2014 (UTC)
+
+:Added above source as LATimes.Documents. It includes a link to the federal autopsy report, and I added that report separately as LATimes.FederalAutopsy. Added mention of the release of the federal autopsy report. &#8209;&#8209;[[User:Mandruss|<span style="color:#8E8278;">'''''Mandruss'''''</span>]]&nbsp;[[User talk:Mandruss|<span style="color:#AAA;">&#9742;</span>]] 20:48, 9 December 2014 (UTC)
+
+== More terse summaries in the witness accounts ==
+
+As there are now a massive amount of witness statements available, I think we need to change how we are doing things in the accounts section. Obviously covering each account in the level of detail we currently have for dozens of additional accounts, and then criticisms of those accounts, would not be viable - it would be multiple standalone articles worth of content. Keeping things the way it is now represents an [[WP:NPOV]] issue as well. I suggest we move to a more [[WP:SUMMARY]] style overall bringing all of the media witnesses together under a [[WP:SUMMARY]] section (as they are mostly saying the same thing), and then a Grand Jury section that discusses the various testimonies again at a high level - Using sources such as the PBS comparison (even with its well known flaws) or the links that {{u|TParis}} pointed out in ANI.
+
+Perhaps the Police/Wilson and Johnson should keep standalone sections, as they are directly involved and therefore their statements have more importance, and have been scrutinized more carefully by the media and other analysts.
+[[User:Gaijin42|Gaijin42]] ([[User talk:Gaijin42|talk]]) 23:26, 9 December 2014 (UTC)
+
+I was saying this, thinking this, and in one case tried doing this, for several days before taking it to ANI. I don't like that I had to take it to ANI because of objections that it would destroy people's work or might constitute original research. There was no critical discussion of any witness that opposed Wilson, and much discussion of discrepancies and flaws in the few accounts that supported it.
+
+I've always thought there should be a section on Wilson's story and a section about the opposing views; I typed that a few days ago, though I'm not sure I posted it. I still think it's the best way to move forward. [[User:Roches|Roches]] ([[User talk:Roches|talk]]) 15:49, 10 December 2014 (UTC)
+
+==POV Issues Regarding Controversy Section==
+
+I pretty much agree with everything that TParis wrote at ani. This article has NPOV issues. The article relies too heavily on the opinions of non-notable commentators and their criticism. The article is also littered with weasel words and phrases like "some legal experts" and terms like "asserted" and "claimed", which are all discouraged by MOS. The controversy section for the grand jury hearing is a prime example of undue weight with the amount of criticism in that section. That table really needs to go too, what is the significance of having that, it's not even true. These jurors were a ''typical grand jury'' that were conducting ''typical'' grand jury business, doing exactly everything listed in the first column, before Wilson's case was given to them, there's no mention of that in the table. The criticism in Wilson's section has weasel phrases like "sources reported" and "other discrepancies" without defining who the sources are or what the other discrepancies are. It also provides no context at all either, like the fact that the grand jury was made aware of these inconsistencies before Wilson even testified. There just seems to be a lot of cherry-picking sources to negatively portray Wilson, law-enforcement officers, prosecutors and the grand jurors.[[User:Isaidnoway|<font face="Times New Roman" color="blue"> '''''Isaidnoway''''' </font>]][[User talk:Isaidnoway|<font face="Times New Roman" color="blue">'''''(talk)'''''</font>]] 02:10, 10 December 2014 (UTC)
+
+:I think the reason for at least one occurrence of "some legal experts" is that the source says "some legal experts". Obviously we can't say it in Wikipedia's voice, so are you suggesting it should be left out of the article because the source declined to identify the legal experts? I would disagree. As for "other discrepancies", if those were elaborated it would be attacked as undue weight, so it appears there's no way to include such material at all. It's either undue weight or weasel words. I'll abstain from discussion about the table for lack of competence in that area. &#8209;&#8209;[[User:Mandruss|<span style="color:#8E8278;">'''''Mandruss'''''</span>]]&nbsp;[[User talk:Mandruss|<span style="color:#AAA;">&#9742;</span>]] 02:28, 10 December 2014 (UTC)
+
+:First, this has almost nothing to do with {{u|Gaijin42}}'s post in [[#More terse summaries in the witness accounts]] and I've refactored it into a new section (if not, go ahead and undo it). I disagree that this article has NPOV issues. [[WP:NNC|Notability does not apply to content]], and we should instead be looking at due weight. In this case, it seems that the majority of opinions are biased against Wilson, the prosecution team and the grand jury, which is why it's reported so heavily in the article; unless it's out of proportion, there shouldn't be anything wrong with this. Sources that argue to the contrary are present; if there are others, they should be included to keep due weight. The "some legal experts" phrase is a leftover from the [http://www.latimes.com/nation/la-na-ferguson-da-analysis-20141126-story.html LA Times] article, which provided a number of legal opinions. While out of context it may seem like a weasel phrase, the rest of the section references by legal experts mentioned in the source by name, so it really isn't a weasel phrase. Assertions and claims are only weasel words when [[WP:ALLEGED|implying a point is inaccurate]], which is hardly the case here. The table is sourced to NYT, which is why we have it. I don't see what's the problem with having it here, maybe you could clarify? The other two instances are poorly paraphrased: the "sources reported" is actually the Huffington Post's analysis, but the analysis that went into their article was cut out of ours so that'll have to be reworked; there's only one discrepancy reported in the CNN article, so I went ahead and reworded that phrase. At any rate, there doesn't seem to be blatant cherry-picking of POVs as far as I can tell. --[[User:RAN1|RAN1]] ([[User talk:RAN1|talk]]) 03:01, 10 December 2014 (UTC)
+::Once you have summarized and presented information to the reader in an encyclopedic tone - following that up with an endless stream of cherry-picked opinions of non-notable commentators is undue piling on. I completely agree that the majority of the reporting is negative against Wilson and the other entities involved in this case, but that doesn't mean we pack as many negative opinions that we can into a section, or the article, and still claim it's NPOV, because that's not neutral. We should be summarizing and including the most notable opinions or academic opinions, instead of being a depository for negative opinions that don't really impart any encyclopedic information to the reader. The weasel phrases "some legal experts" and "sources reported" is exactly that - weasel phrasing - and should never be used in this article, especially when there are more than enough legal experts identified by name offering legal opinions.[[User:Isaidnoway|<font face="Times New Roman" color="blue"> '''''Isaidnoway''''' </font>]][[User talk:Isaidnoway|<font face="Times New Roman" color="blue">'''''(talk)'''''</font>]] 17:36, 10 December 2014 (UTC)
+:::I really don't think the opinions are cherry-picked unless we're missing pro-Wilson/prosecutor references, and notability really doesn't matter for sources. I took a closer look at the article though, and I noticed that we're quoting a lot of the opinions directly, which is probably compromising [[WP:IMPARTIAL|impartial tone]]. We should neutrally summarize the arguments instead of quoting them, and I think that should fix the POV problem. Btw, "some legal experts" isn't a [[WP:WEASEL|weasel phrase]] when used in the header or (especially) when the legal experts are clarified after the fact. Using that phrase should be ok. "Sources reported" is weasel phrasing, and I'll take the time to reword that sentence later today. --[[User:RAN1|RAN1]] ([[User talk:RAN1|talk]]) 19:33, 10 December 2014 (UTC)
+:::<s>P.S. And now my refactoring's a moot point. Whoops. --[[User:RAN1|RAN1]] ([[User talk:RAN1|talk]]) 19:37, 10 December 2014 (UTC)</s>
+I don't think there was blatant cherry-picking of POVs, but I think there was a desire to represent a greater variety of opinions than was necessary. There are so many opinions from so many sources that it would be much more helpful to avoid arguing why a given source is acceptable despite having issues like weasel words and unnamed sources. We could simply choose sources that don't do that.
+
+In general, I objected to the inclusion of journalists' opinions about the legal issues because there were also several published opinions from real lawyers about the legal issues. In the point where there was a formal statement from the ACLU and an analysis by the Huffington Post, the first source was a much better choice than the other. [[User:Roches|Roches]] ([[User talk:Roches|talk]]) 16:11, 10 December 2014 (UTC)
+
+== Differences between typical grand jury proceedings in Missouri and Wilson's case --should be removed or changed to reflect data and not opinion ==
+
+It should either compare this case with a low profile case or just give the facts of the case. It is copied almost word for word from the the NYT and is not fact but opinion. As there are no references to real data. <small><span class="autosigned">—&nbsp;Preceding [[Wikipedia:Signatures|unsigned]] comment added by [[User:Oceanisle2009|Oceanisle2009]] ([[User talk:Oceanisle2009|talk]] • [[Special:Contributions/Oceanisle2009|contribs]]) 03:12, 10 December 2014 (UTC)</span></small><!-- Template:Unsigned --> <!--Autosigned by SineBot-->
+:Which NYT source are you suggesting is an opinion piece? [[User:Dyrnych|Dyrnych]] ([[User talk:Dyrnych|talk]]) 03:17, 10 December 2014 (UTC)
+:In addition, if it reflects an analysis by (hence opinion of) a New York Times columnist or reporter, it should probably be adequate to simply make sure it is identified as such (inline attribution). Even opinion, when properly identified and attributed to a credible source, is fair content here. <span style="font-family: Gill Sans MT, Arial, Helvetica; font-weight:100;">[[User:Dwpaul|<font color="#006633">Dwpaul</font>]]</span> <sup>''[[User talk:Dwpaul|<font color="#000666">Talk </font>]] ''</sup> 04:20, 10 December 2014 (UTC)
+:: I have no problems with attributing the content to the NYT. - [[User:Cwobeel|<span style="color:#339966">Cwobeel</span>]] [[User_talk:Cwobeel|<span style="font-size:80%">(talk)</span>]] 05:12, 10 December 2014 (UTC)
+:::Well, that solves that. --[[User:RAN1|RAN1]] ([[User talk:RAN1|talk]]) 07:17, 10 December 2014 (UTC)
+::::If the text of the table was copied verbatim, is there a problem with copyright infringement? --[[User:Bob K31416|Bob K31416]] ([[User talk:Bob K31416|talk]]) 11:01, 10 December 2014 (UTC)
+:::::: It was not copied verbatim. You can check and compare. - [[User:Cwobeel|<span style="color:#339966">Cwobeel</span>]] [[User_talk:Cwobeel|<span style="font-size:80%">(talk)</span>]] 17:08, 10 December 2014 (UTC)
+BTW, the [https://en.wikipedia.org/w/index.php?title=Shooting_of_Michael_Brown&oldid=637461101#Controversy Controversy section] that has the table is bloated and could use some summarizing. --[[User:Bob K31416|Bob K31416]] ([[User talk:Bob K31416|talk]]) 11:33, 10 December 2014 (UTC)
+
+The problem with the table is that it doesn't take into account what grand juries usually do, which is approving felony indictments that a prosecuting attorney's office has already decided to take to trial. The hearing in Wilson's case was intended to determine whether there was sufficient evidence for a trial. (A trial for second degree murder, since it was intentional but unplanned.)
+Now, I think this is the time when we got into why it's not up to us to decide when journalists are right or wrong. The table compares two very different things, and in so doing it misrepresents the purpose for the hearing in this case. I don't want to deal with opinions to any more of an extent than is absolutely necessary, but it's not right for Wikipedia to contain information that is factually wrong, or misrepresented, up to the point where one journalist discovers the error of another. [[User:Roches|Roches]] ([[User talk:Roches|talk]]) 16:03, 10 December 2014 (UTC)
+:I think your difference of purpose is the exact point of the criticism. The grand jury was not normal, and thats what the table points out. The prosecutors job is to prosecute, not decide if there is a crime. There is prosecutorial discretion, but if thats what was at play he should have just said so, and declined to prosecute. Having a show "trial" where he didn't actually prosecute did nothing except waste money and provide room for criticism. [[User:Gaijin42|Gaijin42]] ([[User talk:Gaijin42|talk]]) 16:34, 10 December 2014 (UTC)
+::I disagree, in this specific instance, this was a "normal" grand jury conducting "normal" grand jury business, it just so happened in August that they were thrust into the spotlight and given an unusual case under unusual circumstances - and the table doesn't point that out. The table is confusing because it seems to imply that some kind of special grand jury was convened to hear this case, and that's not what happened. A ''typical'' grand jury had already been convened and were conducting ''typical'' grand jury business when they were suddenly tasked with an unusual and controversial case, that's what happened and that's what should be relayed to the reader in prose instead of a generic table that doesn't address the context in which this case was given to them.[[User:Isaidnoway|<font face="Times New Roman" color="blue"> '''''Isaidnoway''''' </font>]][[User talk:Isaidnoway|<font face="Times New Roman" color="blue">'''''(talk)'''''</font>]] 17:50, 10 December 2014 (UTC)
+::: Nothing is stopping you from adding other viewpoints about the grand jury process, besides the NYT's opinion and the other opinions already in the article. - [[User:Cwobeel|<span style="color:#339966">Cwobeel</span>]] [[User_talk:Cwobeel|<span style="font-size:80%">(talk)</span>]] 18:22, 10 December 2014 (UTC)
+:::Certainly the makeup and convening of the GJ was normal. But was the presentation of this case normal? The table is about the GJ proceedings, not the GJ itself. [[User:Gaijin42|Gaijin42]] ([[User talk:Gaijin42|talk]]) 18:25, 10 December 2014 (UTC)
+::::From what I read from the bloated opinions in that section, it's the decision and the presentation of the case by the ''prosecutor McCulloch'' and the unusual way he used the grand jury - that is the controversy, at least that's what the overwhelming sources indicate and what and who they are specifically criticizing. If anything, there should be a table comparing "Similar cases handled by McCulloch" vs. "Wilsons case". The controversy/criticism revolves around McCulloch and the decisions he made. And I'd also point out that the table says that they met 25 days over 3 months, that was a decision that this specific GJ themselves elected to do, so that is specific to them and therefore makes it about "the GJ itself" and an apparent scheduling decision they made for convenience purposes. Gee, isn't that controversial? And I'd also make note of the fact that a "typical" grand jury does not meet for a day or less, it meets for a specific timeframe decided by a judge, and these grand jurors were originally appointed for a four-month term (and later extended).[[User:Isaidnoway|<font face="Times New Roman" color="blue"> '''''Isaidnoway''''' </font>]][[User talk:Isaidnoway|<font face="Times New Roman" color="blue">'''''(talk)'''''</font>]] 22:44, 10 December 2014 (UTC)
+:::::FYI [[Grand juries in the United States|grand juries]] are not the same as [[Jury#Types of jury|trial juries]]. Trial juries are directed by judges; grand juries are directed by prosecutors. --[[User:RAN1|RAN1]] ([[User talk:RAN1|talk]]) 22:55, 10 December 2014 (UTC)
+{{od}} {{u|Isaidnoway}} You are completely misinterpreting the criticism Isaidnoway. Yes, the jury was convened for a set amount of time, but the amount of time they spent on a particular case was controlled by the prosecutor. This same GJ dealt with dozens of cases prior to this case, and most of them were less than a day. Probable cause is a really low standard. Did wilson shoot? Yes. Were there witnesses (that passed the initial "not obviously lying" test) that said Brown was surrendering? Yes. Ok, thats probable cause for a trial. Impeaching those witnesses, and showing the defensive evidence is the job of the defense, not the prosecutor. Self defense cases are tougher, because they need to show all the elements of the crime and one of those elements is "it wasn't justified" but its still a really low bar. I think there is no way they could get a conviction, but the criticism that the prosecutor would not be giving the random joe the same level of deference is absolutely correct. He used the GJ for political cover instead of just saying "I don't think there is a case here" Political cover is not one of the appropriate roles for a GJ.McCulloch essentially had a trial, where he was both the prosecution and the defense. [[User:Gaijin42|Gaijin42]] ([[User talk:Gaijin42|talk]]) 23:01, 10 December 2014 (UTC)
+::The amount of time spent on a case is not controlled by a prosecutor, the time is controlled by the jurors themselves, as they are certainly allowed to ask questions of the witnesses and to individually examine the evidence as it suits them. And your explanation here on the talk page about how they dealt with dozens of cases with most of them being less than a day is great, but that explanation for the reader is absent from the table. The implication presently in the table is that a "typical" grand jury meets for a day or less, sans any explanation or context. Probable cause was never there for the prosecution, the physical evidence is in line with the officer's version of events.[[User:Isaidnoway|<font face="Times New Roman" color="blue"> '''''Isaidnoway''''' </font>]][[User talk:Isaidnoway|<font face="Times New Roman" color="blue">'''''(talk)'''''</font>]] 23:26, 10 December 2014 (UTC)
+:{{tq|" but it's not right for Wikipedia to contain information that is factually wrong"}} - Actually, the purpose of Wikipedia is to report what reliable sources say about a subject. If reliable source A said X, and X is factually incorrect because B says so, then we report what A said and what B said, and let our readers arrive to their own conclusions. But we can't avoid quoting A just because B said that A is factually incorrect. In addition, we can't use a primary source that contradicts A, unless the primary source refers to A's opinion. - [[User:Cwobeel|<span style="color:#339966">Cwobeel</span>]] [[User_talk:Cwobeel|<span style="font-size:80%">(talk)</span>]] 17:16, 10 December 2014 (UTC)
+::Policy doesn't say that we have to include questionable material. See the policy [https://en.wikipedia.org/w/index.php?title=Wikipedia:Verifiability&oldid=637531987#Verifiability_does_not_guarantee_inclusion Verifiability does not guarantee inclusion.]
+
+::There’s a false implication in the NYT table and ours that the prosecutor didn’t provide a range of charges. He provided five, from murder in the first degree to involuntary manslaughter.[http://abcnews.go.com/US/ferguson-grand-jury-indict-officer-darren-wilson-death/story?id=27146400][http://www.usatoday.com/story/news/nation/2014/11/24/ferguson-grand-jury-deliberations/19474907/]
+
+::In any case, I think we should summarize the information in the table with the following:
+:::According to ''The NY Times'', the grand jury proceedings were not typical of such proceedings in Missouri. They lasted much longer, the prosecutor did not recommend that the defendant be indicted, there was much more evidence presented, many more witnesses testified, the defendant testified, and all of the evidence and testimony was released to the public after the defendant was not indicted.
+::--[[User:Bob K31416|Bob K31416]] ([[User talk:Bob K31416|talk]]) 01:23, 11 December 2014 (UTC)
+::: Reverted per [[WP:BRD]]. I don't see any consensus emerging for this change. - [[User:Cwobeel|<span style="color:#339966">Cwobeel</span>]] [[User_talk:Cwobeel|<span style="font-size:80%">(talk)</span>]] 15:51, 11 December 2014 (UTC)
+::: Your summary is inaccurate, to say the least. Using generic terms such as "much longer" and "more evidence" when we have hard data that is measurable. I still believe the table is the best and easy to read and appreciate for our readers. - [[User:Cwobeel|<span style="color:#339966">Cwobeel</span>]] [[User_talk:Cwobeel|<span style="font-size:80%">(talk)</span>]] 15:54, 11 December 2014 (UTC)
+
+== On the issues raised on ANI ==
+
+I've posted replies under three sections that dealt with issues raised in the ANI discussion. Now, I'm going to voluntarily avoid this article and talk page for 48 hours, and after that I'll respond to any outstanding issues.
+
+For the editors who have worked on this article and who will be working on it, try to remember that this is one of the increasingly small number of places that people can go to even get a chance at not seeing news presented in the form of a top ten list. Your work is important, people read it, and it needs to be the best it can be. [[User:Roches|Roches]] ([[User talk:Roches|talk]]) 16:35, 10 December 2014 (UTC)
+
+== What gun was used? ==
+
+One of the key missing details is how the police officer's gun was wrested from him. I have tried to find the make and model gun used, as well as the make and model of holster. If this article was merely an overview, I could excuse it, but this article drills down to the level of "$48 worth of cigarillos." Not $47, not $49,but $48. I would like to see the same attention to detail for the gun issue.
+
+Was the gun a Glock, a Smith, etc.? Did the holster have a butt strap, or an internal locking device, etc.?
+
+Thanks for your attention. [[Special:Contributions/50.0.36.243|50.0.36.243]] ([[User talk:50.0.36.243|talk]]) 16:38, 10 December 2014 (UTC)
+
+:Not an answer to your question, but a while back I stumbled on this [https://www.youtube.com/watch?v=1PR9dAr9vDI YouTube video] that may be informative, or at the very least, interesting. (I'm not suggesting using it as a source nor suggesting the information contained is unimpeachable) &ndash;&nbsp;[[User:Jbarta|JBarta]] ([[User talk:Jbarta#top|talk]]) 16:50, 10 December 2014 (UTC)
+
+:It was a .40 cal [[SIG_Sauer_P226#P229]]. Its a 12+1 gun, and Wilson had several spare mags. To my knowledge we do not know the type of holster he was using, but I don't think its relevant as there is no assertion that Brown went for the gun while it was in the holster - Wilson freely says he drew the gun from the holster himself. We don't talk about the gun much, because it has not been discussed much in reliable sources.
+
+:One interesting (to me, not covered in any sources I am aware of) discrepancy is that there were 12 cases found near the scene. Wilson states that after the shooting there was one round left in the magazine, which he removed. If there was a round in the magazine, there should also have been a round chambered. That there wasn't means that either there was a [[Firearm_malfunction#Failure_to_feed]] or the remaining bullet was not in the magazine but in the chamber, but wilson explicitly said "I lock the slide back, take the magazine out, take the one round that’s left in it out. I put it all in that bag, seal it with evidence tape and then sign it.".
+
+:http://listverse.com/2014/11/25/10-of-the-most-important-pieces-of-evidence-from-darren-wilson-testimony/ [[User:Gaijin42|Gaijin42]] ([[User talk:Gaijin42|talk]]) 17:04, 10 December 2014 (UTC)
+
+:: {{yo|Gaijin42}} There are 15 rounds on a P299 magazine, so 12 cases + 1 in the magazine according to Wilson, that leaves two rounds not accounted for? - [[User:Cwobeel|<span style="color:#339966">Cwobeel</span>]] [[User_talk:Cwobeel|<span style="font-size:80%">(talk)</span>]] 23:07, 10 December 2014 (UTC)
+:::{{yo|Cwobeel}} The .40 model uses 12-round magazines, it's the 9mm variant that has 15 rounds. --[[User:RAN1|RAN1]] ([[User talk:RAN1|talk]]) 23:11, 10 December 2014 (UTC)
+
+:::{{u|Cwobeel}}There are both 10, 12, and 14 round magazines for a 229.[http://shop.sigsauerguns.com/Magazines_2/P229-Magazines/] You can see Wilson's specific magazine in the photo at that listverse article I posted, and that it is a 12 round mag. The 14 round mag is longer (duh) so is more difficult to wear while seated. Some cops have the 14 rounders as their backup mags tho since you can move them around more easily than the holstered gun (Wilson said he had 2 additional mags, but their size was not released anywhere)[[User:Gaijin42|Gaijin42]] ([[User talk:Gaijin42|talk]]) 23:14, 10 December 2014 (UTC)
+:::: In my time in the army (not in the US), we used to chamber an extra round in our small arms in addition to the mag. Is that not a practice in law enforcement the US? - [[User:Cwobeel|<span style="color:#339966">Cwobeel</span>]] [[User_talk:Cwobeel|<span style="font-size:80%">(talk)</span>]] 23:36, 10 December 2014 (UTC)
+:::::Yes, that is standard practice here too. Its a 12+1 gun, so the +1 is the "extra". That chambered round would have been the first one fired in the car. Wilson fired 12 times, so the final round should have been chambered in the end, but it could have stayed in the magazine if there was a failure to feed. Per wilson's testimony he also had 2 failure to fires in the car during the time he says Brown's hand was on the gun (see the video posted above for a technical explanation of how his particular gun works in that regard) [[User:Gaijin42|Gaijin42]] ([[User talk:Gaijin42|talk]]) 01:37, 11 December 2014 (UTC)
+
+Also to add to my discrepancy above "locking the slide back" prior to removing the magazine would have loaded the round from the mag into the chamber. (This is why you ALWAYS REMOVE THE MAG FIRST WHEN UNLOADING A GUN) So my assumption is that what he meant to say was that he ejected the round from the chamber and removed the mag, but it was a sloppy way to talk, and I'm surprised nobody (rs) mentioned it, especially with how some sources (Shaun King etc) were saying he might have reloaded, and therefore exactly what happened to each round would be very relevant. [[User:Gaijin42|Gaijin42]] ([[User talk:Gaijin42|talk]]) 23:28, 10 December 2014 (UTC)
+
+== Use of See also ==
+
+Resolution of [https://en.wikipedia.org/w/index.php?title=Shooting_of_Michael_Brown&diff=637514479&oldid=637511493 my edit] and its [https://en.wikipedia.org/w/index.php?title=Shooting_of_Michael_Brown&diff=637517371&oldid=637514479 revert] by {{u|Likeminas}}. Reason for revert was ''All these killings have been discussed as an overall recent trend in news articles''. I don't think that justifies the revert. The killings are included in the umbrella list article. &#8209;&#8209;[[User:Mandruss|<span style="color:#8E8278;">'''''Mandruss'''''</span>]]&nbsp;[[User talk:Mandruss|<span style="color:#AAA;">&#9742;</span>]] 20:22, 10 December 2014 (UTC)
+:With the exception of the Travon Martin shooting, all these cases are discussed in news articles as a recent trend of police abuse of force. i.e. Police officers killing people under questionable circumstances. In fact, there's a good amount of sources that mention them all in the same article.
+:The killings in the [[List of killings by law enforcement officers in the United States]] does not single out cases that have produced extensive news coverage and massive national outcry.
+:These cases are related and should be listed under 'See also' for readers that are interested in reading the most notorious cases in recent history. [[User:Likeminas|Likeminas]] ([[User talk:Likeminas|talk]]) 20:36, 10 December 2014 (UTC)
+
+:{{editconflict}} Garner, Rice and Gurley are at least related by timing. Martin and Diallo less so, since they aren't part of this recent chain of events. --[[User:RAN1|RAN1]] ([[User talk:RAN1|talk]]) 20:40, 10 December 2014 (UTC)
+::Agreed. Feel free to remove them, if chose to. Thanks [[User:Likeminas|Likeminas]] ([[User talk:Likeminas|talk]]) 20:44, 10 December 2014 (UTC)
+:::{{editconflict}} Done. Btw, should we keep the "hands up, don't shoot" in see also? We already have it in the navbox, having it in see also seems superfluous. --[[User:RAN1|RAN1]] ([[User talk:RAN1|talk]]) 20:48, 10 December 2014 (UTC)
+:Wikipedia has multiple articles addressing that topic, including [[Police brutality in the United States]] and [[Police misconduct]]. &#8209;&#8209;[[User:Mandruss|<span style="color:#8E8278;">'''''Mandruss'''''</span>]]&nbsp;[[User talk:Mandruss|<span style="color:#AAA;">&#9742;</span>]] 20:46, 10 December 2014 (UTC)
+::True, but the three deaths that are still in there are related by timing: The grand jury trial against the officer who killed Garner ended in non-indictment last week, and Rice and Gurley's deaths coincided with the grand jury case against Wilson. Brown's shooting at the very least had an influence on the reactions to these, so including them in 'see also' wouldn't be a bad idea. --[[User:RAN1|RAN1]] ([[User talk:RAN1|talk]]) 20:54, 10 December 2014 (UTC)
+
+== Common sense (wiki-linking Ferguson, Missouri) ==
+
+In the opening sentence, I [https://en.wikipedia.org/w/index.php?title=Shooting_of_Michael_Brown&oldid=637524325 linked] [[Missouri]], and unlinked "suburb" (edit summary: "some of us don't know where Missouri is; everyone knows what a suburb is"). I was reverted (twice), and instructed to "talk it to talk and stop edit warring". So, I leave it here for others to consider. Thanks. [[User:Signedzzz|zzz]] ([[User talk:Signedzzz|talk]]) 21:15, 10 December 2014 (UTC)
+
+:This is two separate issues, which I will address separately. First, the Missouri linking. I don't know of a policy or guideline about this, but there is [[User:Tony1/Build_your_linking_skills|this essay]] by an editor very experienced with linking. I would encourage any editor to read all of it before becoming involved in any disputes about linking. It says, ''Uniqueness: Is the linked topic reachable—directly or indirectly—through another link in the vicinity? (If so, consider not linking.)'' In other words, [[Missouri]] is easily reachable via [[Ferguson, Missouri]], so it probably doesn't need to be linked here. The general idea is the concept of overlinking, which says that having fewer links increases the value of the remaining ones. That concept is covered in the essay as well as guidelines.
+
+:As to "suburb", I don't think it's all that clear that everyone knows what a suburb is, but I feel less strongly about that. I might even support unlinking suburb on overlinking grounds. Frankly I didn't even notice that was part of what I was reverting. &#8209;&#8209;[[User:Mandruss|<span style="color:#8E8278;">'''''Mandruss'''''</span>]]&nbsp;[[User talk:Mandruss|<span style="color:#AAA;">&#9742;</span>]] 21:27, 10 December 2014 (UTC)
+::The idea that it's "overlinking" because the link is available on another article is clearly wrong. (Incidentally, it's only available there because [https://en.wikipedia.org/w/index.php?title=Ferguson,_Missouri&oldid=637510044 I just added it].) You should always check what your reverting, before accusing editors of edit-warring, (and quoting irrelevant essays and policies). [[User:Signedzzz|zzz]] ([[User talk:Signedzzz|talk]]) 21:35, 10 December 2014 (UTC)
+
+:::Please don't make statements about what's "clearly wrong" without some kind of backup; i.e., no matter how emphatically you present something as truth, that doesn't make it true. That's fundamental Wikipedia. And please don't lecture me about proper editing procedure while demonstrating complete ignorance of [[WP:BRD]]. The correct procedure was demonstrated in the dispute preceding this one. I was reverted once and I opened a talk discussion about it. You did not do that, instead re-reverting the revert, thereby starting an edit war. There is nothing gray or fuzzy about this area. &#8209;&#8209;[[User:Mandruss|<span style="color:#8E8278;">'''''Mandruss'''''</span>]]&nbsp;[[User talk:Mandruss|<span style="color:#AAA;">&#9742;</span>]] 21:42, 10 December 2014 (UTC)
+::::Firstly, I started this discussion, not you!
+::::Secondly, "overlinking" is best avoided for the reason that it draws attention away from the text. In this case, [[Ferguson, Missouri]] appeared entirely in blue, ie. identically to my edit, so this reason does not apply. And you apparently agree about "suburb". So, we are in agreement, then. [[User:Signedzzz|zzz]] ([[User talk:Signedzzz|talk]]) 21:52, 10 December 2014 (UTC)
+::::And thirdly, to reiterate, you should always check what you're reverting ("fundamental Wikipedia"). [[User:Signedzzz|zzz]] ([[User talk:Signedzzz|talk]]) 22:19, 10 December 2014 (UTC)
+
+I think [[Ferguson, Missouri]] is fine. No need to link the city and state separately. Regarding [[suburb]], I could go either way. I lean towards not linking it as relatively common knowledge. Then again, I'm from the U.S. If '"suburb" is not a commonly used term in oher English speaking countries then wikilink it. &ndash;&nbsp;[[User:Jbarta|JBarta]] ([[User talk:Jbarta#top|talk]]) 22:31, 10 December 2014 (UTC)
+:This will be my last comment. You failed to mention any reason why [[Ferguson, Missouri]] is better than [[Ferguson, Missouri|Ferguson]], [[Missouri]]. [[User:Signedzzz|zzz]] ([[User talk:Signedzzz|talk]]) 22:46, 10 December 2014 (UTC)
+::First, never say "this is my last comment" because it rarely is. There's really no need to... if you're done commenting, just don't comment any more. No need for a parting shot. And if (like so many do) you re-enter the discussion, you re-enter it looking a little silly. We all look silly sometimes accidentally. There's really no need to do it on purpose. At any rate, to answer your question, while I know of no policy that prefers one way or another, I see no need to offer two links where one will do. &ndash;&nbsp;[[User:Jbarta|JBarta]] ([[User talk:Jbarta#top|talk]]) 23:03, 10 December 2014 (UTC)
+
+== Washington Post Reception Source ==
+
+''The Boston Post'' source that was used in the reception section has a couple of problems. First, it's actually a repost of ''The Washington Post'', but ''The Washington Post'' doesn't allow the Internet Archive to preserve it. Should it still be sourced to Boston or to Washington? Second, it seems to be a lot of analysis that can't be summed up easily without trimming it out, and doesn't really fit with the reception section and should probably moved next to Wilson's testimony. Any suggestions? --[[User:RAN1|RAN1]] ([[User talk:RAN1|talk]]) 01:44, 11 December 2014 (UTC)
diff --git a/Echo/tests/phpunit/includes/revision_txt/637638133.txt b/Echo/tests/phpunit/includes/revision_txt/637638133.txt
new file mode 100644
index 00000000..4d6e2bba
--- /dev/null
+++ b/Echo/tests/phpunit/includes/revision_txt/637638133.txt
@@ -0,0 +1,828 @@
+{{Skip to talk}}
+{{Talk header|search=yes}}
+{{Not a forum}}
+{{WikiProjectBannerShell|blpo=yes|collapsed=yes|banner collapsed=no|1=
+{{WikiProject Law Enforcement |class=C}}
+{{WikiProject Missouri |class=C |importance=Mid}}
+{{WikiProject Death |class=C |importance=Low}}
+{{WikiProject Discrimination |class=C |importance=Mid}}
+{{WikiProject Politics |class=C |importance=Low}}
+{{WikiProject St. Louis |class=C}}
+}}
+{{User:MiszaBot/config
+|archiveheader = {{talkarchivenav|noredlinks=y}}
+|maxarchivesize = 150K
+|counter = 19
+|minthreadsleft = 4
+|minthreadstoarchive = 1
+|algo = old(5d)
+|archive = Talk:Shooting of Michael Brown/Archive %(counter)d
+}}
+{{Calm}}
+{{Autoarchivingnotice|bot=MiszaBot|age=5|units=days}}
+{{article discretionary sanctions|topic=blp|style=long}}
+
+==RFC: ''Alleged'' theft of cigars from convenience store?==
+{{archivetop|result=Consensus is fairly clearly against using "alleged". [[User:Number 57|<font color="orange">Number</font>]] [[User talk:Number 57|<font color="green">5</font>]][[Special:Contributions/Number 57|<font color="blue">7</font>]] 12:36, 10 December 2014 (UTC)}}
+In references here to the theft and/or strong-arm robbery of cigars from a convenience store prior to the shooting of the decedent, should this article use the term ''alleged'' or ''allegedly'' before any such claims since the decedent was never and will never be charged or convicted of theft or robbery? <span style="font-family: Gill Sans MT, Arial, Helvetica; font-weight:100;">[[User:Dwpaul|<font color="#006633">Dwpaul</font>]]</span> <sup>''[[User talk:Dwpaul|<font color="#000666">Talk </font>]] ''</sup> 02:52, 29 November 2014 (UTC)
+===survey===
+*(As nom) '''Yes''', as that is Wikipedia's standard practice when a criminal act is alleged but will never be prosecuted. <span style="font-family: Gill Sans MT, Arial, Helvetica; font-weight:100;">[[User:Dwpaul|<font color="#006633">Dwpaul</font>]]</span> <sup>''[[User talk:Dwpaul|<font color="#000666">Talk </font>]] ''</sup> 02:54, 29 November 2014 (UTC)
+* '''no''' There is video of the event. An admission from his friend who was present, and admission from the Brown family. We actually have numerous opposite examples of non-convicted persons who are described as having done certain illegal actions, and we have hundreds of reliable sources saying without qualification that brown took the Cigars without paying. However, describing that theft in a specific legal crime term should not be done as we do not have sufficient proof that all elements of a crime were done, it is enough to say "stole cigars" or "took cigars without paying" but not "committed robbery" etc. [[User:Gaijin42|Gaijin42]] ([[User talk:Gaijin42|talk]]) 03:00, 29 November 2014 (UTC)
+:: In regard to the question whether there is "sufficient proof that all elements of a crime were done", we just need to follow the MO law. It says, "[http://law.justia.com/codes/missouri/2013/title-xxxviii/chapter-569/section-569.030/ A person commits the crime of robbery in the second degree when he forcibly steals property.]" Did he steal the items? Did he use force when confronted by the clerk? If you say yes to both questions, then all elements of the crime were done and the act is called robbery in the second degree. [[User:Z22|Z22]] ([[User talk:Z22|talk]]) 01:08, 30 November 2014 (UTC)
+
+*'''No''' per Gaijin42 above and also see Columbine Shooting, Sandy Hook Elementary Shooting,, Isla Vista Killings and numerous other articles here on WP where a crime has been committed with the individual being killed and/or suicide with no prosecution and/or conviction and the word alleged is not used in those articles. I would also note that the police have classified this case as being "exceptionally cleared", a stringent standard to meet in a case when there will be no prosecution or conviction.[[User:Isaidnoway|<font face="Times New Roman" color="blue"> '''''Isaidnoway''''' </font>]][[User talk:Isaidnoway|<font face="Times New Roman" color="blue">'''''(talk)'''''</font>]] 03:04, 29 November 2014 (UTC)
+*'''No''' - Alleged refers to something that is said, without proof, to have taken place or done. Also, by the same logic of Dwpaul, you cannot identify someone for a criminal act if they are incapable of being tried. Glad to know that despite the Columbine Shooting evidence that you are content to put "alleged", again a reference to "unproven", in front of any act or attribution of the killers. [[User:ChrisGualtieri|ChrisGualtieri]] ([[User talk:ChrisGualtieri|talk]]) 05:52, 29 November 2014 (UTC)
+:::Didn't say you "cannot identify someone for a criminal act"; simply said you should make clear you are not claiming they have been ''convicted'' of it, if only for your own protection (in this case, for the protection of the project). That is all ''allegedly'' does. <span style="font-family: Gill Sans MT, Arial, Helvetica; font-weight:100;">[[User:Dwpaul|<font color="#006633">Dwpaul</font>]]</span> <sup>''[[User talk:Dwpaul|<font color="#000666">Talk </font>]] ''</sup> 06:05, 29 November 2014 (UTC)
+:::: We are not "convicting" anyone. Your understanding of "alleged"'s use is wrong according to the dictionary. Allegations in a legal sense are no different, but you should be aware of that process. Since this is not a pending court matter so kindly take your armchair lawyering off this page. [[User:ChrisGualtieri|ChrisGualtieri]] ([[User talk:ChrisGualtieri|talk]]) 06:31, 29 November 2014 (UTC)
+
+*'''No.''' According to [[WP:ALLEGED]], alleged is ''"appropriate when wrongdoing is asserted but undetermined, such as with people awaiting or undergoing a criminal trial."'' In this case, Brown will never go to trial so the issue won't be determined that way. However, we are not entirely without the ability to make an editorial determination here. We have a published security video showing what certainly appears to be a theft (or more accurately strong arm robbery) and there is the published testimony of Brown's friend Johnson describing the events in the store. That description supports that it was in fact a strong arm robbery. In addition, many (though not all) sources refer to the event as a theft and do not use the term "alleged". Taking all this into consideration, I think it's perfectly reasonable, neutral and accurate to treat it as an actual crime and leave out he word "alleged".
+
+:There have been theories suggesting that maybe Brown did pay for the cigars and the clerk just wanted an ID. This is an interesting theory, but entirely unsupported by ''anything''. Others note that no store employee contacted the police (a customer did). In no way does this cause other evidence to vanish. Again, taking ALL things into consideration from what is available to us, it is reasonable to say that a crime was committed and there is nothing "alleged" about it. &ndash;&nbsp;[[User:Jbarta|JBarta]] ([[User talk:Jbarta#top|talk]]) 22:11, 29 November 2014 (UTC)
+
+::That actually brings up an interesting question. Let's suppose Brown (who is of age) wants to buy cigars and the clerk wants to see an ID. Let's further suppose Brown throws down the money and says "screw the ID, here's the money" then grabs the cigars and leaves. The clerk tries to stop him still wanting to see the ID. Brown pushes past and exits the store (we'll forget about the hard shoving). Has a crime been committed? Or more specifically, is it theft? &ndash;&nbsp;[[User:Jbarta|JBarta]] ([[User talk:Jbarta#top|talk]]) 22:36, 29 November 2014 (UTC)
+
+:::If for some reasons you put a million dollars cash on the counter but the clerk refuses to "sell" an inexpensive product (no matter what it is) and you take that product anyway, then you use force to clear your way out of the store, you will still be charged with robbery in the second degree as per [http://m.willworshamlaw.com/Criminal-Defense-Home/Robbery.aspx MO law]. Even when give a correct amount of money to the clerk for the cigar, but the clerk refuses to sell that to you. The transaction does not take place. When you take valuable propety from that store when you have not been the owner of that property yet, it is stealing. To add to that, you use force, it's a robbery of the second degree. [[User:Z22|Z22]] ([[User talk:Z22|talk]]) 00:48, 30 November 2014 (UTC)
+:::: What a poor example - the discussion below shows it is closed and why. Original research or other accusations carry no real weight because the official report ''is'' our proper source. As a result, no matter what excuses or theoretical case you come up with, it does not apply to this case. [[User:ChrisGualtieri|ChrisGualtieri]] ([[User talk:ChrisGualtieri|talk]]) 05:06, 30 November 2014 (UTC)
+
+*'''No''' – In prior weeks there was some question from news sources whether Brown might have actually paid for the cigarillos, that analysis seems to have disappeared even in Brown-friendly news outlets as more information has come out. Also, [[John Wilkes Booth]] did not "allegedly" assassinate Abraham Lincoln, even though he was never convicted of it. —[[User:Megiddo1013|Megiddo1013]] 01:49, 30 November 2014 (UTC)
+
+* '''No''' - In the absence of any other reasonable explanations for what can be seen in the footage and testimonies, it seems safe to go with what the recently written RSs say on this one. [[User:AdventurousSquirrel|AdventurousSquirrel]] ([[User talk:AdventurousSquirrel|talk]]) 12:56, 30 November 2014 (UTC)
+
+* '''No''' - There's really no question at this point of what happened, and Brown is very much dead and thus we have no reason to worry about prejudicing a jury against him. It is safe to not use "alleged" here as we have video, testimony from his friend, RSs which don't use "alleged", and standard Wiki policy that in cases like this that we don't use it ([[John Wilkes Booth]], [[Columbine shooting]], ect.). [[User:Titanium Dragon|Titanium Dragon]] ([[User talk:Titanium Dragon|talk]]) 15:18, 30 November 2014 (UTC)
+
+*'''COMMENT''' Due to the apparent [[WP:SNOW]] above, I am going to remove the "allege"s that are referring to the robbery. However, the RFC remains open, and consensus could certainly swing the other way over the next days/weeks. [[User:Gaijin42|Gaijin42]] ([[User talk:Gaijin42|talk]]) 15:25, 30 November 2014 (UTC)
+
+*'''No''' - Per the users above. There is no question as to the factual nature of the crime.--<span style="text-shadow:grey 0.125em 0.138em 0.118em; class=texhtml">[[User:TMDrew|<font color="black">'''TMD'''</font>]] [[User_talk:TMDrew|<small>Talk Page.</small>]]</span> 16:06, 30 November 2014 (UTC)
+
+*'''No''' Per [[User:AdventurousSquirrel|AdventurousSquirrel]]. We should be going with what the recent [[WP:RS]] are saying. [[User:rmosler2100|<span style="color:green">'''R'''</span><span style="color:black; font-variant:small-caps">'''mosler'''</span>]]&nbsp;|[[User_talk:Rmosler2100| <span style="color:black; font-variant:small-caps">●</span>]] 16:18, 1 December 2014 (UTC)
+
+===Threaded discussion===
+Can you include a source for the "exceptionally cleared" classification being applied to this case and its <s>meaning</s>significance, since this information (not there now) would be useful to include in the article? I can find references to the police report including this notation, but none that say it gives it some special degree of "truthiness".<span style="font-family: Gill Sans MT, Arial, Helvetica; font-weight:100;">[[User:Dwpaul|<font color="#006633">Dwpaul</font>]]</span> <sup>''[[User talk:Dwpaul|<font color="#000666">Talk </font>]] ''</sup> 03:29, 29 November 2014 (UTC)
+:Exceptionally cleared is a [[Uniform Crime Reports]] term. It means "solved" by "exception" not the "awesome" meaning of exceptional http://www.fbi.gov/about-us/cjis/ucr/crime-in-the-u.s/2010/crime-in-the-u.s.-2010/clearances NPR is one of many many sources saying that the case was closed with this status, but they appear to be doing so based on just viewing the police report. http://www.npr.org/blogs/thetwo-way/2014/08/15/340594634/ferguson-police-release-name-of-officer-who-shot-michael-brown [[User:Gaijin42|Gaijin42]] ([[User talk:Gaijin42|talk]]) 03:38, 29 November 2014 (UTC)
+::Thank you. I was about to point out the same finding to {{U|Isaidnoway}}, with a caution against using it to suggest some special quality of the investigation. <span style="font-family: Gill Sans MT, Arial, Helvetica; font-weight:100;">[[User:Dwpaul|<font color="#006633">Dwpaul</font>]]</span> <sup>''[[User talk:Dwpaul|<font color="#000666">Talk </font>]] ''</sup> 03:45, 29 November 2014 (UTC)
+:::Its not some special quality, but it does indicate that the case was formally solved including identifying the perp sufficient for FBI reporting purposes. [[User:Gaijin42|Gaijin42]] ([[User talk:Gaijin42|talk]]) 03:49, 29 November 2014 (UTC)
+::::Well, that is one interpretation; I would tend to go with your suggestion above that the case was said to have been resolved "by exception", in this case by the death of the only suspect at the time rather than by diligent and detailed police work that would have achieved a conviction. <span style="font-family: Gill Sans MT, Arial, Helvetica; font-weight:100;">[[User:Dwpaul|<font color="#006633">Dwpaul</font>]]</span> <sup>''[[User talk:Dwpaul|<font color="#000666">Talk </font>]] ''</sup> 03:52, 29 November 2014 (UTC)
+:::::From the Missouri Uniform Crime Reporting Program (Missouri State Highway Patrol):
+:::::Exceptional Clearance - If <u>all</u> four of the following questions can be answered 'Yes' the offense can be cleared “exceptionally”.
+
+:::::# Do you know who the offender is?
+:::::# Has the investigation determined there is enough information to support an arrest/charge of a specific individual?
+:::::# Is the location of this individual known so the subject could by taken into custody now?
+:::::# Is there some reason outside law enforcement‟s control that precludes arresting, charging, and prosecuting the offender?
+
+:::::Examples of exceptional clearances include: death (suicide or justifiable homicide where the offender is killed by a police officers or citizen). This case meets all the above criteria for the case to be closed as "exceptionally cleared".[[User:Isaidnoway|<font face="Times New Roman" color="blue"> '''''Isaidnoway''''' </font>]][[User talk:Isaidnoway|<font face="Times New Roman" color="blue">'''''(talk)'''''</font>]] 07:04, 29 November 2014 (UTC)
+:The police report (external links) says that it has been exceptionally cleared and if you search the archives of this talk page, you will see that this very same discussion has been had before about using the word alleged in relation to this strong-arm robbery committed by Brown.[[User:Isaidnoway|<font face="Times New Roman" color="blue"> '''''Isaidnoway''''' </font>]][[User talk:Isaidnoway|<font face="Times New Roman" color="blue">'''''(talk)'''''</font>]] 03:43, 29 November 2014 (UTC)
+::Yes, I see [https://en.wikipedia.org/wiki/Talk:Shooting_of_Michael_Brown/Archive_7#Robbery_or_alleged_robbery this previous discussion from August], and I see you making the same arguments you're making now, but I don't see that any consensus evolved in support of them. In fact, I see quite a lot of dissent on the question. <span style="font-family: Gill Sans MT, Arial, Helvetica; font-weight:100;">[[User:Dwpaul|<font color="#006633">Dwpaul</font>]]</span> <sup>''[[User talk:Dwpaul|<font color="#000666">Talk </font>]] ''</sup> 04:00, 29 November 2014 (UTC)
+:::Thanks for the RfC, maybe we can put these unsourced conspiracy theories to rest once and for all.
+:::*[http://www.ibtimes.com/michael-brown-robbed-convenience-store-stole-cigarillos-darren-wilson-shooting-dorian-1729359 Michael Brown Robbed Convenience Store, Stole Cigarillos Before Darren Wilson Shooting, Dorian Johnson Says]
+:::*[http://abcnews.go.com/US/wireStory/highlights-testimony-michael-brown-shooting-27157610 Dorian Johnson told the grand jury he was stunned when Brown stole cigarillos from the convenience store]
+:::*[http://www.nationalreview.com/corner/385499/attorney-brown-acquaintance-confirms-michael-brown-stole-cigars-greg-pollowitz The attorney for Dorian Johnson, the man who was with Michael Brown when he was shot, says it was Brown who stole the cigars from the store where police say the two were filmed before Brown’s death, and that the FBI is aware of it.][[User:Isaidnoway|<font face="Times New Roman" color="blue"> '''''Isaidnoway''''' </font>]][[User talk:Isaidnoway|<font face="Times New Roman" color="blue">'''''(talk)'''''</font>]] 06:33, 29 November 2014 (UTC)
+::::* Also... "Brown was a suspect in an alleged robbery" is horrendous writing because you cannot "allege a robbery" and the nature of the matter requires "alleged" be dropped. Either a robbery took place or it didn't; it is mutually exclusive here, just as you cannot be an "alleged suspect" in the case. One alleged needs to remain in the article: "Brown then allegedly attempted to seize Wilson's gun..." which has not been conclusively proven. [[User:ChrisGualtieri|ChrisGualtieri]] ([[User talk:ChrisGualtieri|talk]]) 06:40, 29 November 2014 (UTC)
+:::[[User:Dwpaul|Dwpaul]], I ended up as a main dissenter in that August discussion, based on the use of reliable sources available at that time. However, more information has been published since then, notably Dorian Johnson's testimony under oath, and I have more carefully reviewed the video, and I don't think that using allege is appropriate. It gives the impression that there is a reasonable doubt that Brown stole the cigars, which isn't the case. --[[User:Bob K31416|Bob K31416]] ([[User talk:Bob K31416|talk]]) 16:39, 29 November 2014 (UTC)
+:: Whether to use the word "alleged" or not, one thing clear is that we should not misrepresent the act as a theft or stealing. It should either be called "forcibly steal" or "robbery". Apparently, the force was involved. The first mentioning of the act as just stealing in the lead is actually misleading. See definitions here: [http://www.ksdk.com/story/news/local/2014/08/15/strong-arm-robbery-definition-st-louis-county/14122545/] [http://m.willworshamlaw.com/Criminal-Defense-Home/Robbery.aspx]. [[User:Z22|Z22]] ([[User talk:Z22|talk]]) 18:58, 29 November 2014 (UTC)
+{{archivebottom}}
+== Offensive Phrasing -- Style Question ==
+
+Under the section Grand Jury Hearing (which should be capitalized, but I don't have editing privileges), it refers to the grand jury's makeup as "three blacks". This usage of black as a noun is not considered acceptable any longer in American English and is specifically prohibited in most style guides (I don't know if this is covered in wikipedia's). <small class="autosigned">—&nbsp;Preceding [[Wikipedia:Signatures|unsigned]] comment added by [[Special:Contributions/38.108.125.200|38.108.125.200]] ([[User talk:38.108.125.200|talk]]) 19:01, 1 December 2014 (UTC)</small><!-- Template:Unsigned IP --> <!--Autosigned by SineBot-->
+:It isn't offensive and is frequently used in American English. [https://www.google.com/search?q=blacks&es_sm=122&source=univ&tbm=nws&tbo=u&sa=X&ei=L758VJ3yMMP1oATQk4HQCQ&ved=0CFAQsQQ Google shows how many people use it to this very day], including places like the Huffington Post. [[User:Titanium Dragon|Titanium Dragon]] ([[User talk:Titanium Dragon|talk]]) 19:16, 1 December 2014 (UTC)
+:I checked the source used for that sentence, and the source uses the terms "blacks" and "whites" in relation to the race of the grand jury members. Based on that source, I don't see a problem.[[User:Isaidnoway|<font face="Times New Roman" color="blue"> '''''Isaidnoway''''' </font>]][[User talk:Isaidnoway|<font face="Times New Roman" color="blue">'''''(talk)'''''</font>]] 19:50, 1 December 2014 (UTC)
+
+:Isaidnoway is correct, but there is no requirement to match the specific source on something like this, which is not within a quotation. We paraphrase all the time, and what matters is that the world of reliable sources frequently uses "blacks" as a noun. Here's [http://www.nytimes.com/2014/11/26/us/after-ferguson-announcement-a-racial-divide-remains-over-views-of-justice.html an example from the New York Times], who are known for close attention to such details. Incidentally, the "Grand jury hearing" is correct; Wikipedia uses "sentence case" in section titles. &#8209;&#8209;[[User:Mandruss|<span style="color:#8E8278;">'''''Mandruss'''''</span>]]&nbsp;[[User talk:Mandruss|<span style="color:#AAA;">&#9742;</span>]] 20:07, 1 December 2014 (UTC)
+
+:This black/African-American question is not going to be solved in general anytime soon around here. Sources generally use a mix of "black" and "African-American" and so should we. Sources however do NOT generally use the word "Caucasian" when describing Wilson, so that has little place in this article. We're not here to worry about what is offensive to this person or that... we're here to reflect the sources in a neutral and balanced manner. &ndash;&nbsp;[[User:Jbarta|JBarta]] ([[User talk:Jbarta#top|talk]]) 00:24, 2 December 2014 (UTC)
+
+:From a strict stylistic standpoint, it'd probably be good to use BOTH terms in the same passage, as [[elegant variation]] (while our article on [[elegant variation]] disparages the practice - contrary to what I and other students in my technical writing degree program were taught - in this case it wouldn't be unnecessary, but would serve the purpose of placating people on each side of the "black"/"African-American" controversy). [[User:Vfrickey|loupgarous]] ([[User talk:Vfrickey|talk]]) 15:49, 6 December 2014 (UTC)
+
+::It may seem unnecessarily contentious to some, but I'm not interested in placating editors who misinterpret Wikipedia's mission as moving social trends rather than documenting them. These editors are simply wrong, and we follow the collective sources. &#8209;&#8209;[[User:Mandruss|<span style="color:#8E8278;">'''''Mandruss'''''</span>]]&nbsp;[[User talk:Mandruss|<span style="color:#AAA;">&#9742;</span>]] 16:06, 6 December 2014 (UTC)
+
+== Why are you calling Michael Brown a man when being eighteen did not qualify Eric David Harris a man????? ==
+
+{{edit semi-protected|Shooting of Michael Brown|answered=y}}
+<!-- Begin request -->If Eric Harris can be called a boy when he was also 18 yrs old when the shootings took place a Columbine High School, I believe we can come to the conclusion that Michael Brown was just a boy also. Stop making him out to be something another was not.......
+I do not know him personally, but you are adding to a problem that will not cease because of status that is not really true. He was only a boy!
+
+<!-- End request -->
+[[User:Butterflygem|Butterflygem]] ([[User talk:Butterflygem|talk]]) 09:01, 2 December 2014 (UTC)
+
+:It's true that [[Eric Harris and Dylan Klebold]] and [[Columbine High School massacre]] use the term "boys" in a few instances. That may or may not reflect source's descriptions of them. You would have to bring that up on those article's respective talk pages. Regarding this article, can you point out the specific part of the article you wish to change and what you'd like to see it changed to? Be prepared (if challenged) to back up your suggested edit with sourcing and a rationale that supports it following Wikipedia policies of [[WP:VERIFY|verifiability]], [[WP:NPOV|neutral point of view]], and [[WP:UNDUE|due weight]]. I'm not trying to make it hard on you, I'm just trying to show you that editing this encyclopedia is more than simply inserting one's opinion. &ndash;&nbsp;[[User:Jbarta|JBarta]] ([[User talk:Jbarta#top|talk]]) 11:09, 2 December 2014 (UTC)
+::To be quite honest, I am starting to see some unconscious racism creep in this manner in articles on wikipedia. Two white guys who shot up a school are boys but an unarmed black guy is a man. Just like [[missing white girl syndrome]] -[[User:Myopia123|Myopia123]] ([[User talk:Myopia123|talk]]) 12:10, 2 December 2014 (UTC)
+:::I don't think this has anything to do with "unconscious racism". It's hard to visualize, much less describe, anyone who is 6 ft 4 in (1.93 m) tall, weighs 292 lb (132 kg) and smokes cigars as a "boy". In every one of these cases, if the subjects are over 18, they should probably be described as "young men", but I think it's easy to see why the term "man" was used here instead of "boy". It's a bit too convenient to invoke the racism card when a simpler explanation will suffice. <span style="font-family: Gill Sans MT, Arial, Helvetica; font-weight:100;">[[User:Dwpaul|<font color="#006633">Dwpaul</font>]]</span> <sup>''[[User talk:Dwpaul|<font color="#000666">Talk </font>]] ''</sup> 13:53, 2 December 2014 (UTC)
+:::I also don't think the "unconscious racisim" comment is helpful, it could be seen as casting aspersions and is not [[WP:AGF]]. If you believe that an editor is not following policies or POV pushing, discuss it here or their talk page with diffs. Man, boy, teenager, the choice of nouns should be by consensus and backed by [[WP:RS]]. If you have sources that would back a change, then please share them, and the proposed change. [[User:rmosler2100|<span style="color:green">'''R'''</span><span style="color:black; font-variant:small-caps">'''mosler'''</span>]]&nbsp;|[[User_talk:Rmosler2100| <span style="color:black; font-variant:small-caps">●</span>]] 14:03, 2 December 2014 (UTC)
+::::I'm not accusing any individual editors. I'm saying that RS's and all the editors as a whole(including me) are giving in to a very human tendency to judge on a class basis. -[[User:Myopia123|Myopia123]] ([[User talk:Myopia123|talk]]) 14:48, 2 December 2014 (UTC)
+:::::I'd be willing to bet that, if not for the POV implications in this case and a desire for him to be perceived as the victim, we'd just as likely be criticized for calling Brown a "boy" because of the connotations that term has had when applied to young black men in the past. <span style="font-family: Gill Sans MT, Arial, Helvetica; font-weight:100;">[[User:Dwpaul|<font color="#006633">Dwpaul</font>]]</span> <sup>''[[User talk:Dwpaul|<font color="#000666">Talk </font>]] ''</sup> 14:53, 2 December 2014 (UTC)
+:[[File:Red information icon with gradient background.svg|20px|link=]] '''Not done:''' please establish a [[Wikipedia:Consensus|consensus]] for this alteration before using the {{tlx|edit semi-protected}} template.<!-- Template:ESp --> [[User:Anupmehra|<font size="3"><span style="font-family:Old English Text MT;color:black">Anupmehra</span></font>]] -[[User talk:Anupmehra|<font size="3"><span style="font-family:Monotype Corsiva;color:black">Let's talk!</span></font>]] 14:18, 2 December 2014 (UTC)
+:::Dear Myopia, I believe that your comments on "unconscious racism" amount to silly navel-gazing. Also a more fit subject for your talk page than here. [[User:Factchecker_atyourservice|Centrify <small>(f / k / a FCAYS)</small>]] [[User_talk:Factchecker_atyourservice|(talk)]] [[Special:Contributions/Factchecker_atyourservice|(contribs)]] 16:12, 2 December 2014 (UTC)
+::::I think it was a constructive contribution, if only because it allowed us to address this aspect of the question from a perspective others may have had or will have in mind, even if they didn't frame their arguments in those terms. <span style="font-family: Gill Sans MT, Arial, Helvetica; font-weight:100;">[[User:Dwpaul|<font color="#006633">Dwpaul</font>]]</span> <sup>''[[User talk:Dwpaul|<font color="#000666">Talk </font>]] ''</sup> 16:24, 2 December 2014 (UTC)
+:::::Empathize with stupidity and you're half way to thinking like an idiot. [[User:Factchecker_atyourservice|Centrify <small>(f / k / a FCAYS)</small>]] [[User_talk:Factchecker_atyourservice|(talk)]] [[Special:Contributions/Factchecker_atyourservice|(contribs)]] 16:28, 2 December 2014 (UTC)
+::::::Sometimes that's a creative and useful method of problem solving. Think we're done here. <span style="font-family: Gill Sans MT, Arial, Helvetica; font-weight:100;">[[User:Dwpaul|<font color="#006633">Dwpaul</font>]]</span> <sup>''[[User talk:Dwpaul|<font color="#000666">Talk </font>]] ''</sup> 16:36, 2 December 2014 (UTC)
+:::::::Dear @[[User:Factchecker_atyourservice|Centrify <small>(f / k / a FCAYS)</small>]], I don't know what navel gazing is but if you want to cuss me out you might as well accept that you're going to violate [[WP:CIVIL]] anyway and do it properly. I disagree with your suggestion that it's more fit for my talk page. Racism is a core element of this issue and the deaths of black men at the hands of police in general. As far as you calling me stupid, '''that''' was a comment for my talk page. -[[User:Myopia123|Myopia123]] ([[User talk:Myopia123|talk]]) 23:41, 4 December 2014 (UTC)
+{{out}} Navel gazing is where you are desperate to find some major significance in a hopelessly insignificant detail of life. Imagine staring intently into your navel, and then you find a piece of lint and want to show your special insight to the world. That was an apt metaphor for your silly comment, in which you made an observation about extremely reasonable & accurate use of language & wondered aloud whether it wasn't actually the reasonableness or accuracy, but NAY SIRS, HIDDEN RACISM, that made us decide to be reasonable and accurate. If you don't see how that is at once both unconstructive & essentially impossible to discuss in connection with this WP article & insulting to other editors, and thus that there was no good reason to put it on the talk page, then I'm not sure what else to say. Then again, judging by your username and userpage — and the comment "Racism is a core element of this issue" — it's pretty clear you are just trolling. So I guess the joke's on me.
+P.S. it appears you don't know what "cussing someone out" means. Probably because of your unconscious racism. [[User:Factchecker_atyourservice|Centrify <small>(f / k / a FCAYS)</small>]] [[User_talk:Factchecker_atyourservice|(talk)]] [[Special:Contributions/Factchecker_atyourservice|(contribs)]] 15:57, 5 December 2014 (UTC)
+:That someone failed to call an eighteen-year old man a "man" in Columbine, Colorado doesn't excuse repeating the error. We're not responsible for the press's errors nor obliged to repeat then in our articles. Eric Harris, Dylan Klebold, and Michael Brown were all eighteen years old at the time they become notable. That made them eligible for the military draft, capable of making valid legal contracts, and immune to curfews - in short, "men." "Young men," if you want to drive the point home that they couldn't legally buy alcohol in many jurisdictions. [[User:Vfrickey|loupgarous]] ([[User talk:Vfrickey|talk]]) 15:58, 6 December 2014 (UTC)
+::Minor correction... Dylan Klebold was 17. And if I recall, some of the instances of the word "boys" referred to events that happened before they turned 18. (Eric Harris turned 18 just before the shooting) &ndash;&nbsp;[[User:Jbarta|JBarta]] ([[User talk:Jbarta#top|talk]]) 16:19, 6 December 2014 (UTC)
+
+:The OP's opening strategy is not meaningful. For any question, you can find other articles to support either of two opposing answers. This is the spirit of the essay, [[WP:OSE|Other stuff exists]]. We should confine ourselves to what is appropriate for this article, without cherry-picking other articles that support our point of view. &#8209;&#8209;[[User:Mandruss|<span style="color:#8E8278;">'''''Mandruss'''''</span>]]&nbsp;[[User talk:Mandruss|<span style="color:#AAA;">&#9742;</span>]] 16:26, 6 December 2014 (UTC)
+::Agreed, but no article exists in a vacuum. To ''completely'' disregard similar articles is not wise approach either. A certain amount of consistency is a good thing. Even the essay you mention has a section [[Wikipedia:Other_stuff_exists#Precedent_in_usage|Precedent_in_usage]]. &ndash;&nbsp;[[User:Jbarta|JBarta]] ([[User talk:Jbarta#top|talk]]) 16:38, 6 December 2014 (UTC)
+
+[[User:Factchecker_atyourservice|Centrify <small>(f / k / a FCAYS)</small>]] has engaged in one too many personal attacks. Editors were trying to reason with him on his userpage and I was being discussed and attacked perosnally. I attempted to end the matter peacefully on his userpage but his repeated personal attacks resulted in me snapping and violating [[WP:CIVIL]]. Therefore, I will not be editing this page if this person is involved as well. I have had enough of his bullshit. -[[User:Myopia123|Myopia123]] ([[User talk:Myopia123|talk]]) 16:43, 6 December 2014 (UTC)
+:You have made a grand total of zero constructive contributions to this article or Talk page, again it seems like you're just trying to bait negative responses, AKA trolling. [[User:Factchecker_atyourservice|Centrify <small>(f / k / a FCAYS)</small>]] [[User_talk:Factchecker_atyourservice|(talk)]] [[Special:Contributions/Factchecker_atyourservice|(contribs)]] 19:37, 6 December 2014 (UTC)
+::At least one other editor disagrees with your premise, and Myopia123's constructive contributions to this page (including one section they started) are evident. In any case, it is not your place to determine the worthiness of other editors. Since the editor has drawn a line, kindly let them go on their way instead of goading them to cross it. <span style="font-family: Gill Sans MT, Arial, Helvetica; font-weight:100;">[[User:Dwpaul|<font color="#006633">Dwpaul</font>]]</span> <sup>''[[User talk:Dwpaul|<font color="#000666">Talk </font>]] ''</sup> 20:00, 6 December 2014 (UTC)
+:::Not sure why you find the suggestion that hidden racism could possibly explain the most innocuous and obviously correct editorial decisions, and yet you ''don't'' find helpful the suggestion that such an idea possibly reflects irrational hysteria. [[User:Factchecker_atyourservice|Centrify <small>(f / k / a FCAYS)</small>]] [[User_talk:Factchecker_atyourservice|(talk)]] [[Special:Contributions/Factchecker_atyourservice|(contribs)]] 15:12, 8 December 2014 (UTC)
+Back to the original question, while some of this can certainly be explained by the bias, or narrative the authors (of the RSs) wishes to tell, or political correctness, one must also remember that Columbine happened in school by and at attendees of that school, which makes the "boy" appellation a bit more contextual.[[User:Gaijin42|Gaijin42]] ([[User talk:Gaijin42|talk]]) 16:12, 7 December 2014 (UTC)
+
+== Shooting scene ==
+
+I made some edits to the shooting scene section. It's longer.
+
+I expanded the description of the street and indicated the directions in which the people involved were traveling. I added "left side" for those in right hand drive countries. I reorganized the evidence from three groups to two, anchoring the groups around the SUV and Brown's body, because the center group consists of one sandal.
+
+The contentious part of my edit is those ten shell casings. I didn't know they were ''there'' until I saw the diagram. At first I thought it had to be a mistake. I tried to be NPOV about it, but I don't have a good reference about those casings. It has to be mentioned, though.
+
+People (bystanders, parties involved, responders, investigators, etc.) move casings around crime scenes often, apparently. Sometimes it's inadvertent, or people take them as a souvenir, but sometimes people take them or move them simply to make things difficult for investigators, or in the worst case people might move them to make it look like a gun was fired in a different place. So, it's possible that the ten casings near Brown were put there to make it look like Wilson had shot Brown at close range.
+
+Please don't reply with wikilawyering, fellow editors. Change whatever you want, add references, but this is not original research or speculation or whatever. The article needs a diagram. The diagram shows 10 casings in an unusual place. Those 10 casings have to be explained, and the only way to explain them without invoking a conspiracy theory is that they were moved. We can't say how, we can't say when, we can't say by whom, but they must have been moved because all the other evidence points that way. Somewhere in the transcripts or in some article I haven't read there is a clear, solid explanation of how they got there. [[User:Roches|Roches]] ([[User talk:Roches|talk]]) 22:27, 4 December 2014 (UTC)
+
+:What are you talking about? They are there because they are near where wilson was standing at the time those shots were fired (plus random physics bounces and the like). There were other cops and media on the scene within seconds/minutes. When exactly do you think things were tampered with? What specifically do you think is proof that that cannot be the natural position of the casings? Where do you think those casings "really belong"?[[User:Gaijin42|Gaijin42]] ([[User talk:Gaijin42|talk]]) 22:32, 4 December 2014 (UTC)
+
+:Presumably from the blood stain at the far right, at some point Brown was standing near there during some of the shots. (with a fudge factor for how far blood may fly from being hit). Most of the witnesses, and Wilson say that they were about 20ft apart at that point. Wilson and some witnesses say that Brown moved forward, and Wilson says he was trying to backpedal to keep distance (while firing). . That explains the pattern of casings and blood fairly well to me, and more importantly, its all covered by reliable sources. [http://www.washingtonpost.com/politics/2014/11/29/b99ef7a8-75d3-11e4-a755-e32227229e7b_story.html] [http://listverse.com/2014/11/25/10-of-the-most-important-pieces-of-evidence-from-darren-wilson-testimony/][http://thehill.com/blogs/blog-briefing-room/news/225280-wilson-brown-looked-like-demon] [http://www.newyorker.com/news/john-cassidy/darren-wilson-testimony][http://abcnews.go.com/US/exclusive-police-officer-darren-wilson-discusses-moment-shot/story?id=27186946][http://edition.cnn.com/2014/11/25/justice/ferguson-grand-jury-documents/] Saying "speculation" and "original research" is not wikilawyering, its the foundation of the way the wiki works. Find a reliable source that discusses some alternative theory, and we can talk about adding it in. [[User:Gaijin42|Gaijin42]] ([[User talk:Gaijin42|talk]]) 22:45, 4 December 2014 (UTC)
+
+:Roches, unless you can find reliable sources supporting this speculation it cannot go into the article. &ndash;&nbsp;[[User:Jbarta|JBarta]] ([[User talk:Jbarta#top|talk]]) 22:50, 4 December 2014 (UTC)
+
+::I don't have an agenda where I want to introduce an alternative theory. I guess the talk page comment was forceful. What I wanted to happen in the article was for someone who had more knowledge about the location of the casings to add detail. As I say below, I didn't want to say "The placement of the casings is unexplained" because it's not unexplained. It's probably explained in detail in the grand jury evidence. I don't have to be the one to find the evidence; this being a collaborative effort, I wanted the statement that there was something unusual about the placement of the casings to be a call for collaboration. [[User:Roches|Roches]] ([[User talk:Roches|talk]]) 06:20, 5 December 2014 (UTC)
+
+Having spent quite a bit of time working on the diagram, I can say that I was confused by the casings as well. Nothing nefarious, there though. What struck me is that Wilson pursued Brown for more than 150 yards, before shooting 10 times toward him. - [[User:Cwobeel|<span style="color:#339966">Cwobeel</span>]] [[User_talk:Cwobeel|<span style="font-size:80%">(talk)</span>]] 03:56, 5 December 2014 (UTC)
+
+:He didn't shoot while running the distance. He pursued, then stopped. There was a burst of a few shots, then as he backed up, a burst of a few more shots. According to Wilson's testimony, the casings are exactly where one would expect. And if editors haven't heard it yet, here is apparent [https://www.youtube.com/watch?v=BiL-E5WAaUU audio] of the shots. &ndash;&nbsp;[[User:Jbarta|JBarta]] ([[User talk:Jbarta#top|talk]]) 04:03, 5 December 2014 (UTC)
+:: Yes, that is what I mean. Wilson pursued Brown for 150 yards before shooting, which begs many questions that I will keep to myself. - [[User:Cwobeel|<span style="color:#339966">Cwobeel</span>]] [[User_talk:Cwobeel|<span style="font-size:80%">(talk)</span>]] 04:12, 5 December 2014 (UTC)
+:::Some of those questions might be answered by reading Wilson's testimony to the grand jury (if you haven't already). And it was 150 feet, not yards. Big difference. 150 feet is not that far a distance at all. &ndash;&nbsp;[[User:Jbarta|JBarta]] ([[User talk:Jbarta#top|talk]]) 04:17, 5 December 2014 (UTC)
+::::I think what Cwobeel is saying is that Wilson didn't shoot until Brown turned around and became threatening. And now for your listening and viewing pleasure is a music video by Queen.[https://www.youtube.com/v/g2N0TkfrQhY] --[[User:Bob K31416|Bob K31416]] ([[User talk:Bob K31416|talk]]) 05:59, 5 December 2014 (UTC)
+:::::It's official... I'm completely confused. No worries though... isn't the first time and won't be the last. If anyone wants to explain the last few posts of this thread to me using small words and short clear sentences, you know where to find me. &ndash;&nbsp;[[User:Jbarta|JBarta]] ([[User talk:Jbarta#top|talk]]) 06:22, 5 December 2014 (UTC)
+
+Thanks for not just reverting the whole edit. I'll explain:
+
+''This placement of casings supports the claim that shots were fired in close proximity to Brown.''
+
+I wanted to remind the reader of the early accounts that have Wilson walking up to Brown as he's laying on the pavement and shooting him. I wanted to say that in a neutral way. It's not really disputed that shots were fired in fairly close proximity, so I worded it that way.
+
+''However, shell casings can be moved either inadvertently or in a deliberate attempt to confound or manipulate the investigation of a crime scene.''
+
+This does not require a reference, and it's naive to think the presence of police or media makes a difference, especially considering there were specific requests for assistance regarding the crowd of people who gathered at the scene.
+
+''The grand jury's interpretation cannot be known, but their decision not to indict Wilson suggests they concluded that the casings had been moved.''
+
+I didn't want to say that the position of the casings was "unexplained," because I know there's an explanation, and I was sort of hoping someone would find that explanation and put it in the article. What I meant to say is that their decision not to indict does mean that they were convinced that Wilson did not execute Brown at close range. (The "without invoking a conspiracy theory" above means that we assume the jury decided in accordance with the evidence.) "They concluded the casings had been moved" was a plainly a bad choice of wording on my part. It's totally impossible to be objective, neutral '''and concise''' if people assume content is politically charged, but what I meant is "the decision not to indict Wilson means that they did not think he shot Brown multiple times while he was lying on the ground."
+
+I should apologize for the above assertion that the casings must have been moved. However, the shell casings shouldn't be used to establish the locations where shots were fired.
+
+Some of the casings directly south of the body are where they should be, but the ones to the east are up to 20 feet from what I take to be Wilson's easternmost point. Casings from a .40 cal [[SIG Sauer P229]] are ejected to the right and go slightly forwards or backwards. There are no casings in the area the west of the body, and there probably should be.
+
+Last thing: My interpretation of "reliable source" forbids me from citing a politically biased journalist that interprets a primary source for me. Objective facts from a primary source are not original research, and synthesis of objective facts ''when only one conclusion is possible'' is not speculation. It's badly worded, but the decision not to indict means the jury believed that Wilson accurately described where he shot from. [[User:Roches|Roches]] ([[User talk:Roches|talk]]) 06:15, 5 December 2014 (UTC)
+
+{{od}}
+If you have a non-reliable source that discusses a theory, you can bring it up here. We can't use it in the article, but it can certainly be a launching point for finding better sources.
+
+Assuming any particular scenario, particularly one that involves tampering with the scene when there were dozens of eyewitnesses, media, and additional cops (not to mention Wilson himself) within seconds/minutes and nobody mentions anything close to that, on any side of the issue, is absolutely something that requires sourcing
+
+While your conjecture that ""the decision not to indict Wilson means that they did not think he shot Brown multiple times while he was lying on the ground." is true, it is absolutely the type of thing that requires sourcing. We do not put thoughts/words into living people's heads. Ever.
+
+* You say "where only one conclusion is possible" but there are MANY possible conclusions.Here are a few I can think of in just a few minutes. I'm sure they are many more others could come up with. None of them should be discussed or hinted at without reliable sourcing.
+** Wilson could have been that far and moved backwards. (Wilson and witnesses testify to this one)
+** Brown could have had significant forward momentum as he fell putting his body in front of the casings
+** Wilson could have been further to the right side of the road (down on the diagram) so was shooting at an angle and not parallel to the road. Therefore "ejection to the right" would be further down the road
+** MOST guns eject back and to the right, but 20-30% of bullet cases even from those guns go somewhere else, and in a particular gun if the ejector has been modified or bent or something could be consistently sending cases in a different direction
+** If Wilson was [[Limp wristing]], or shooting with the gun tilted (either gangsta style, or canted up or down), or one handed, or any one of infinite shooting positions, it could have significantly affected the trajectory
+[[User:Gaijin42|Gaijin42]] ([[User talk:Gaijin42|talk]]) 15:34, 5 December 2014 (UTC)
+:As an aside, if and when the graphic is updated, could the caption be corrected from "shell casings" to the correct terminology "shell cases"? The press pretty frequently misuses the term but Wikipedia has it right, here: [[Cartridge (firearms)#Materials]]. Here's another example [http://www.nist.gov/pml/div683/casing-080812.cfm (NIST)]. — [[User:Brianhe|Brianhe]] ([[User talk:Brianhe|talk]]) 19:34, 5 December 2014 (UTC)
+::Meh, I've known my way around guns for almost 30 years and I've never heard the term used that way. Our sources say "shell casings" and I imagine that is what just about everybody says. WP is not a source, and the source you did provide appears to be a deadlink. What is it? It won't load but I notice that the URL includes the word "casing", not "case" or "cases" [[User:Factchecker_atyourservice|Centrify <small>(f / k / a FCAYS)</small>]] [[User_talk:Factchecker_atyourservice|(talk)]] [[Special:Contributions/Factchecker_atyourservice|(contribs)]] 15:19, 6 December 2014 (UTC)
+:::It is an NIST report titled "Shelling Out Evidence: NIST Ballistic Standard Helps Tie Guns to Criminals". It provides this definition: "Cartridge cases—the empty shells left behind after a gun is fired...". At some point in my firearms instructor coursework, "case" had been promulgated as the right term to use, "casings are for sausage" being a common mnemonic which you can see in this comment on an urban shooting [http://www.esquire.com/blogs/politics/a-lesson-on-guns-041913]. But on further research the [http://www.nraila.org/glossary.aspx NRA glossary] says they are interchangeable. Perhaps a readjustment to the realities popular usage. Bottom line: request for change is withdrawn. — [[User:Brianhe|Brianhe]] ([[User talk:Brianhe|talk]]) 15:58, 6 December 2014 (UTC)
+
+== Shooting scene diagram ==
+
+Obvious OR diagram by Cwobeel removed. [[User:Factchecker_atyourservice|Centrify <small>(f / k / a FCAYS)</small>]] [[User_talk:Factchecker_atyourservice|(talk)]] [[Special:Contributions/Factchecker_atyourservice|(contribs)]] 16:02, 5 December 2014 (UTC)
+
+:It won't stay out long. Everything on it was taken directly (and accurately, as far as I can tell) from a grand jury exhibit diagram. No SYNTH occurred. For another example, see the map in [[Motor Torpedo Boat PT-109]], which I had another user create from an equivalent map produced by National Geographic. It has stood for close to a year I guess. &#8209;&#8209;[[User:Mandruss|<span style="color:#8E8278;">'''''Mandruss'''''</span>]]&nbsp;[[User talk:Mandruss|<span style="color:#AAA;">&#9742;</span>]] 16:07, 5 December 2014 (UTC)
+
+{{ec}}{{u|Factchecker_atyourservice}} The diagram is not OR. per [[WP:OI]] "Original images created by a Wikipedian are not considered original research, so long as they do not illustrate or introduce unpublished ideas or arguments" There are multiple RS that have produced virtually identical images, based directly off of the image used by the grand jury
+* http://graphics8.nytimes.com/newsgraphics/2014/11/24/ferguson-evidence/assets/ferguson/photos/2014-43984/photos-7/capture.png
+* http://graphics8.nytimes.com/newsgraphics/2014/08/13/ferguson-qa/2e754ae76c10ce9a0ea2e1dc9166a341312be797/testimony-Artboard_1.jpg
+* http://graphics.stltoday.com/img/grmp-brown_shooting_scene.png
+* http://news.bbcimg.co.uk/media/images/79290000/jpg/_79290150_ferguson_diagram_20142611_624_v3.jpg
+[[User:Gaijin42|Gaijin42]] ([[User talk:Gaijin42|talk]]) 16:07, 5 December 2014 (UTC)
+
+:I suppose it would be ''incredibly rude'' of me to ask about sourcing for the additional data points added to Cwobeel's diagram that do not appear to be in any of the other diagrams? [[User:Factchecker_atyourservice|Centrify <small>(f / k / a FCAYS)</small>]] [[User_talk:Factchecker_atyourservice|(talk)]] [[Special:Contributions/Factchecker_atyourservice|(contribs)]] 16:24, 5 December 2014 (UTC)
+::Which are? [[User:Gaijin42|Gaijin42]] ([[User talk:Gaijin42|talk]]) 16:25, 5 December 2014 (UTC)
+::: e.g. location of "interior side front door blood stains", 21'7" "distance from feet to farthest red stain". Just a suggestion — ''pick one of the published graphs and copy it exactly'', don't try to "amplify" or "improve upon" it with your own research. [[User:Factchecker_atyourservice|Centrify <small>(f / k / a FCAYS)</small>]] [[User_talk:Factchecker_atyourservice|(talk)]] [[Special:Contributions/Factchecker_atyourservice|(contribs)]] 16:30, 5 December 2014 (UTC)
+::::Distance to the furthest stain is covered by [[WP:CALC]] because the legend that goes with the original grand jury diagram explicitly includes locations with distances. [http://graphics8.nytimes.com/newsgraphics/2014/11/24/ferguson-evidence/assets/ferguson/photos/2014-43984/photos-7/picture2.png] The word "Interior" could possibly be removed, but since there are a bazzilion sources saying there were stains on the interior doors, its really not an issue IMO. [[User:Gaijin42|Gaijin42]] ([[User talk:Gaijin42|talk]]) 16:38, 5 December 2014 (UTC)
+:::::"provided there is consensus among editors that the result of the calculation is obvious, correct, and a meaningful reflection of the sources." Could anyone hazard an explanation of where that number comes from and why it is significant? Also I don't recall anything from any source giving us the location of interior bloodstains. [[User:Factchecker_atyourservice|Centrify <small>(f / k / a FCAYS)</small>]] [[User_talk:Factchecker_atyourservice|(talk)]] [[Special:Contributions/Factchecker_atyourservice|(contribs)]] 16:48, 5 December 2014 (UTC)
+:::::::The source for that number comes directly from the legend of the original grand jury diagram, as I said in my previous comment where I gave you a link directly to that legend. It was added by Cwobeel at my request. Since there are witnesses that state that brown moved forward or charged, and there is blood at the furthest most point, I thought it would be a useful addition to give an indication of how far Brown ''may'' have moved (although such must be an inference by the reader, since all we know for sure is the distance to the blood, and not how the blood actually got there). At a minimum even without the inerence, it gives the reader the ability to tell the total size of the scene. There are numerous sources describing blood on the "interior left front door handle" and other locations of the car [http://abcnews.go.com/US/crucial-pieces-evidence-ferguson-grand-jury/story?id=27163048] [http://www.msnbc.com/msnbc/prosecutors-make-trove-michael-brown-case-documents-public] For the scale of the diagram we are will within "accurate" imo. But if you insist on having the word "interior" removed you are free to argue that. BTW, all of this stuff was discussed in quite a bit of detail towards the top of this page, where your suggestions would have been more than welcome, and where you can see the consensus for the image, rather than just charging in blindly and accusing people of breaking policy and deleting the image without discussion. [[User:Gaijin42|Gaijin42]] ([[User talk:Gaijin42|talk]]) 16:55, 5 December 2014 (UTC)
+::::::::Since there is no 21 foot 7 inch figure in that jury page, it looks like you're still not done explaining the origin of the figure, and I confess I'm a bit hazy as to your rationale for having our WP article give an emphasis that the published sources didn't find necessary or relevant. Shall we also try to deduce how many feet or inches Brown would have had to walk to get off the street and onto the sidewalk in order to comply with Wilson's order? That would ''also'' help readers understand the total size of the scene. [[User:Factchecker_atyourservice|Centrify <small>(f / k / a FCAYS)</small>]] [[User_talk:Factchecker_atyourservice|(talk)]] [[Special:Contributions/Factchecker_atyourservice|(contribs)]] 17:03, 5 December 2014 (UTC)
+{{od}} The legend has the position of Browns feet. The legend has the position of the stain. [[WP:CALC]] certainly allows simple vector subtraction. If you think it should be removed, build consensus for it, but since we have been discussing the diagram for 2 days now, and nobody else complained I think you are in the minority so far. Cwobeel has been quite compliant so far with changes to the diagram. If you can build a consensus for a change, I'm sure he would be happy to assist. [[User:Gaijin42|Gaijin42]] ([[User talk:Gaijin42|talk]]) 17:14, 5 December 2014 (UTC)
+:I think that Centrify's concern about us picking that distance to highlight is a reasonable one, and can be addressed with a reliable source that specifically mentions that distance, or one similar. I seem to recall there is such a source, but offhand I don't have a link to it.
+
+:Re the 2 red dots next to the car and their identification, “Red stains driver’s side front door exterior and interior” — When I looked at the diagram for the first time, I thought the red dots indicated red stains on the ground, which they weren't. I would suggest removing the red dots and extending the blue arrow so that the arrowhead just touches the car. Also, I would suggest changing the identification to "Blood on the exterior and interior of the driver’s side front door", and we should include a reliable source for the blood on the car door. --[[User:Bob K31416|Bob K31416]] ([[User talk:Bob K31416|talk]]) 17:31, 5 December 2014 (UTC)
+
+:: The exhibits says "red stains", not blood stains, so I used the former. The exhibit also says interior and exterior. If you want to check the sources I used see the File page (also below for your convenience):
+::: * map : http://graphics8.nytimes.com/newsgraphics/2014/11/24/ferguson-evidence/assets/ferguson/photos/2014-43984/photos-7/capture.png
+::: * Legend : http://graphics8.nytimes.com/newsgraphics/2014/11/24/ferguson-evidence/assets/ferguson/photos/2014-43984/photos-7/picture2.png
+::: Other sources used: NYT [http://www.nytimes.com/interactive/2014/08/13/us/ferguson-missouri-town-under-siege-after-police-shooting.html], WaPo [http://www.washingtonpost.com/wp-srv/special/national/ferguson-diagram-of-the-scene/], and another one from St Louis Post Dispatch (which I can't locate now, but was very similar to the others. - [[User:Cwobeel|<span style="color:#339966">Cwobeel</span>]] [[User_talk:Cwobeel|<span style="font-size:80%">(talk)</span>]] 17:51, 5 December 2014 (UTC)
+
+::I also wanted "blood" but thought it got too deep into [[WP:SYNTH]]. There are numerous sources calling out the distance from the blood at marker 19/20 to browns body. The NYTimes in particular called it out, and since THAT ARTICLE is the source for one of the diagrams that completely takes care of SYNTH in my mind "''Mr. Brown’s body was about 153 feet east of Officer Wilson’s car. Mr. Brown’s blood was about 25 feet east of his body. This evidence supports statements that Mr. Brown continued to move closer to the officer after being hit by an initial string of bullets.''"[http://www.nytimes.com/interactive/2014/08/13/us/ferguson-missouri-town-under-siege-after-police-shooting.html?hp&action=click&pgtype=Homepage&module=b-lede-package-region&region=top-news&WT.nav=top-news&_r=3] However, there are more. [http://www.washingtonpost.com/news/volokh-conspiracy/wp/2014/12/02/why-michael-browns-best-friends-story-is-incredible/] [http://edition.cnn.com/TRANSCRIPTS/1411/25/ath.01.html] (convenience link to video of previous transcript [http://therightscoop.com/cnn-analyst-reads-crucial-evidence-that-destroys-the-lies-about-michael-brown-shooting/]) [http://www.dailymail.co.uk/news/article-2848749/Highlights-testimony-heard-grand-jury-declined-indict-Ferguson-cop-Darren-Wilson-Michael-Brown-shooting.html][http://online.wsj.com/articles/law-and-evidence-tilted-in-ferguson-polices-favor-1416950255][[User:Gaijin42|Gaijin42]] ([[User talk:Gaijin42|talk]]) 17:53, 5 December 2014 (UTC)
+
+If there are changes to be made, I will most certainly comply with requests that have consensus. - [[User:Cwobeel|<span style="color:#339966">Cwobeel</span>]] [[User_talk:Cwobeel|<span style="font-size:80%">(talk)</span>]] 17:55, 5 December 2014 (UTC)
+
+Also, to avoid re-litigating this issue in the future, we should add a commented section with the sources used to create the diagram. - [[User:Cwobeel|<span style="color:#339966">Cwobeel</span>]] [[User_talk:Cwobeel|<span style="font-size:80%">(talk)</span>]] 17:56, 5 December 2014 (UTC)
+:Or, even better, figure out a way to show normal citations there. &#8209;&#8209;[[User:Mandruss|<span style="color:#8E8278;">'''''Mandruss'''''</span>]]&nbsp;[[User talk:Mandruss|<span style="color:#AAA;">&#9742;</span>]] 18:12, 5 December 2014 (UTC)
+::We could add a caption to the image, and attach the refs to the caption. [[User:Gaijin42|Gaijin42]] ([[User talk:Gaijin42|talk]]) 18:17, 5 December 2014 (UTC)
+
+:::I took a first shot at it, which can be cleaned up considerably. &#8209;&#8209;[[User:Mandruss|<span style="color:#8E8278;">'''''Mandruss'''''</span>]]&nbsp;[[User talk:Mandruss|<span style="color:#AAA;">&#9742;</span>]] 18:24, 5 December 2014 (UTC)
+:::Are the two NYT images in a NYT article? It's much easier to cite an article than an image. &#8209;&#8209;[[User:Mandruss|<span style="color:#8E8278;">'''''Mandruss'''''</span>]]&nbsp;[[User talk:Mandruss|<span style="color:#AAA;">&#9742;</span>]] 18:35, 5 December 2014 (UTC)
+::::The image created BY the NYT is in my comment just above. The official GJ images just hosted by the times I cant find where the times used them, but other sources do have the same image embedded too [http://www.motherjones.com/politics/2014/11/photos-michael-brown-darren-wilson-grand-jury] [[User:Gaijin42|Gaijin42]] ([[User talk:Gaijin42|talk]]) 18:40, 5 December 2014 (UTC)
+:::::Yeah, it would be great if we could find them in sources we're already using. We're suffering from ref bloat with a ton of redundant source overlap. &#8209;&#8209;[[User:Mandruss|<span style="color:#8E8278;">'''''Mandruss'''''</span>]]&nbsp;[[User talk:Mandruss|<span style="color:#AAA;">&#9742;</span>]] 18:46, 5 December 2014 (UTC)
+{{od}} They are in both GJ evidence links in the external links section, but those may not count as "refs".[http://www.stltoday.com/news/multimedia/special/the-testimony-the-grand-jury-heard-in-the-michael-brown/html_47d95368-a8f2-5ae1-9173-6653c15d0f0e.html][http://edition.cnn.com/interactive/2014/11/us/ferguson-grand-jury-docs/index.html] [[User:Gaijin42|Gaijin42]] ([[User talk:Gaijin42|talk]]) 18:54, 5 December 2014 (UTC)
+:No I can't reuse those in a citation, and it would be too hard to find what's being cited in those anyway. I'll figure something out, adding new sources if necessary. &#8209;&#8209;[[User:Mandruss|<span style="color:#8E8278;">'''''Mandruss'''''</span>]]&nbsp;[[User talk:Mandruss|<span style="color:#AAA;">&#9742;</span>]] 19:03, 5 December 2014 (UTC)
+
+The "red stains" at the scene were confirmed to be blood by the crime lab. It's not original research to synthesize those pieces of information.
+Please do not refer to publicly available information that was presented to the grand jury as "grand jury evidence." Only the transcripts of the hearing have been released, and nothing else can be released. Much of the evidence, such as photographs and audio recordings, is not public. The original map, if I remember correctly, was part of the medical examiner's office report. [[User:Roches|Roches]] ([[User talk:Roches|talk]]) 19:40, 5 December 2014 (UTC)
+
+Thanks Cwobeel and Gaijin42 for the links, which were very helpful.
+
+*Regarding the distance discussed previously — Here’s a source and excerpts that refer to the grand jury proceedings, which I think would justify our highlighting the distance from the blood to the body by showing it in the diagram.
+::http://edition.cnn.com/TRANSCRIPTS/1411/25/ath.01.html :
+
+::"They asked in great detail about the blood spatter evidence, which indicated that Michael Brown walked -- or may have indicated -- that walked back or ran back. There was blood further on down the line. His body ended up being 20 feet closer to Officer Wilson.”
+
+::"But it was the questions on pages 87 and 88 -- and I'm sure you can find these on CNN.com if you want to pore through them yourselves -- the grand juror asks questions of the detective trying to nail down what Mark and Sunny and you guys were just talking about: This physical evidence of blood and the blood pattern and whether or not this blood pattern establishes the distance that Michael Brown traveled when he charged at the officer. And so the grand juror asked this, 'So as far as physical evidence, we have the blood on the ground. That was about 21 or 22 feet from where Michael ground ended up.’ “
+
+:So I think the diagram is OK indicating this distance because it’s a notable distance.
+
+*Regarding the red stains on the car I suggest,
+
+:1. moving the red dots that are for the red stains on the car, to halfway overlap the car boundary, so as not to appear that they are on the ground. (Note this is the style used in this source [http://www.nytimes.com/interactive/2014/08/13/us/ferguson-missouri-town-under-siege-after-police-shooting.html?hp&action=click&pgtype=Homepage&module=b-lede-package-region&region=top-news&WT.nav=top-news&_r=3].)
+
+:2. adding to the identification, the red stain on the exterior of the driver-side rear door[http://www.washingtonpost.com/wp-srv/special/national/ferguson-diagram-of-the-scene/]
+
+:3. adding the following sources for the red stains on the car [http://www.washingtonpost.com/wp-srv/special/national/ferguson-diagram-of-the-scene/] [http://www.nytimes.com/interactive/2014/08/13/us/ferguson-missouri-town-under-siege-after-police-shooting.html]
+
+--[[User:Bob K31416|Bob K31416]] ([[User talk:Bob K31416|talk]]) 20:13, 5 December 2014 (UTC)
+:: Updated the infographic as requested. Pls check and let me know if understood you correctly. - [[User:Cwobeel|<span style="color:#339966">Cwobeel</span>]] [[User_talk:Cwobeel|<span style="font-size:80%">(talk)</span>]] 22:58, 5 December 2014 (UTC)
+:::Looks good. There's a few things I'm thinking about but haven't decided whether to suggest anything, e.g. "red stains" vs "blood stains", interior and exterior of front door, and using the word "feet" in the phrase "distance from feet to farthest red stain" doesn't read well for me. In any case, I consider all your work on the diagram a good job with a good spirit of collaboration. --[[User:Bob K31416|Bob K31416]] ([[User talk:Bob K31416|talk]]) 00:40, 6 December 2014 (UTC)
+:::: Please propose alternative wording, as we can always improve. Your feedback is welcome. - [[User:Cwobeel|<span style="color:#339966">Cwobeel</span>]] [[User_talk:Cwobeel|<span style="font-size:80%">(talk)</span>]] 02:10, 6 December 2014 (UTC)
+
+== Grand jury hearing section ==
+
+The grand jury hearing section has, as far as I can tell, only one statement by a law professor in MO. To get an accurate idea of whether the hearing was out-of-the-ordinary, it's got to be compared to other police-involved-shooting cases in the same state.
+
+I made some changes to the table. I know this makes it different than the Times' table, and it incorporates facts about grand juries from [[Grand juries in the United States]]. According to [http://www.stlouiscopa.com/Divisions.aspx?ID=151 this page from the St. Louis County Prosecuting Attorney,] "a little less than half" of the felony cases in the county result in a grand jury hearing and the others go to a judge for a preliminary examination. So this is not a "typical" MO grand jury case.
+
+I also removed a statement about witnesses being repeatedly asked about whether Brown appeared to reached for a gun "despite the fact that it was known he was unarmed." The Times has legitimate concerns about the grand jury hearing which are in the article, but this claim is faulty. In the last seconds of Brown's life, he knew he didn't have a gun, but nobody else did. That emerged later.
+
+Disclaimer: I hope that Wilson went through essentially the same process as any other officer, and I hope he had faced the same likelihood of being prosecuted. I deplore abuse of power, whether it's a court making an example of a person or a police officer using excessive force. But if the people of MO feel there is a need for change, it's a matter for the legislature, not the criminal courts. [[User:Roches|Roches]] ([[User talk:Roches|talk]]) 17:12, 5 December 2014 (UTC)
+
+: Look I am trying to AGF here, but you can't just make changes to a table sourced to a an RS and add whatever you want from material from other sources that it is not related to this incident. That is a violation of [[WP:OR]]. As for the "faulty" claim of the NYT, that is none of your business to assess. We need to stay close to the sources, regardless if we believe the source is wrong. See [[WP:V]] 15:17, 6 December 2014 (UTC)
+
+: I also warn you again, that [[WP:NOTFORUM|this page is not a forum]], so please keep your opinions out of it. It does not help. - [[User:Cwobeel|<span style="color:#339966">Cwobeel</span>]] [[User_talk:Cwobeel|<span style="font-size:80%">(talk)</span>]] 15:27, 6 December 2014 (UTC)
+
+::No troubles whatsoever AGF'ing, his good faith seems pretty obvious to me. Also he is correctly pointing out source misrepresentation. The NYT article does not say "it was known he was unarmed" and neither should. '''Of course, I am shocked, shocked, shocked that it was Cwobeel who edit warred to defend the source misrepresentation which was intended to wrongly defame a living person, because that's not like his MO or anything.''' [[User:Factchecker_atyourservice|Centrify <small>(f / k / a FCAYS)</small>]] [[User_talk:Factchecker_atyourservice|(talk)]] [[Special:Contributions/Factchecker_atyourservice|(contribs)]] 15:33, 6 December 2014 (UTC)
+::: Can you stop characterizations? It is becoming insufferable. If you wanted to restore that portion you could have done it. But instead you reverted everything back to OR. Stop the nonsense!!!! - [[User:Cwobeel|<span style="color:#339966">Cwobeel</span>]] [[User_talk:Cwobeel|<span style="font-size:80%">(talk)</span>]] 21:56, 6 December 2014 (UTC)
+::::Try making objectionable edits all by themselves so that your other work won't be touched when the objectionable edits are reverted. [[User:Factchecker_atyourservice|Centrify <small>(f / k / a FCAYS)</small>]] [[User_talk:Factchecker_atyourservice|(talk)]] [[Special:Contributions/Factchecker_atyourservice|(contribs)]] 15:44, 7 December 2014 (UTC)
+
+:This is what the source says {{talkquote|Over the months, the jurors seemed to focus intently on the final movement that Mr. Brown may have made toward Officer Wilson, after a brief chase. The prosecutor asked witness after witness if it seemed as if Mr. Brown were reaching for a weapon, though few said they saw anything like that. Mr. Brown was found to be unarmed.}} I am restorring the material with some tweaks. Next time, please read the source. - [[User:Cwobeel|<span style="color:#339966">Cwobeel</span>]] [[User_talk:Cwobeel|<span style="font-size:80%">(talk)</span>]] 22:05, 6 December 2014 (UTC)
+::''''Yes, that is precisely the source text which failed to substantiate your WP prose claim that "prosecutors ask[ed] witness after witness if Brown was appearing to be reaching for a weapon when confronting Wilson, while it was known that Brown was unarmed". You ought to be thanking me for removing that fact-falsifying, source-misrepresenting prose, and yup you do this all the time, it's super annoying. Now you have gotten all mad & chided me angrily for reading correctly & reverting you correctly.
+
+::In response, you've changed it to "prosecutors ask[ed] witness after witness if Brown was appearing to be reaching for a weapon when confronting Wilson, while none of the witnesses said anything about Brown being armed." '''Yet another editorial spin that is not found in the cited source.''' Reverted. You misrepresent sourced facts, you misrepresent sourced opinions, you do it over and over and you do it to further your own hyper-partisan anger and desire to defame people whom you despise. [[User:Factchecker_atyourservice|Centrify <small>(f / k / a FCAYS)</small>]] [[User_talk:Factchecker_atyourservice|(talk)]] [[Special:Contributions/Factchecker_atyourservice|(contribs)]] 15:20, 7 December 2014 (UTC)
+::: I think ,y last edit is accurate, so instead of endlessly complaining, do the [[WP:EDITING|the hard work]] and make it better. - [[User:Cwobeel|<span style="color:#339966">Cwobeel</span>]] [[User_talk:Cwobeel|<span style="font-size:80%">(talk)</span>]] 15:32, 7 December 2014 (UTC)
+::::Please explain, as clearly as possible, how you think your last edit was accurate. Or any of them, for that matter. "despite the fact that it was known he was unarmed" wasn't right, "while it was known he was unarmed" wasn't right, and "while none of the witnesses said anything about Brown being armed" is not right. [[User:Factchecker_atyourservice|Centrify <small>(f / k / a FCAYS)</small>]] [[User_talk:Factchecker_atyourservice|(talk)]] [[Special:Contributions/Factchecker_atyourservice|(contribs)]] 15:36, 7 December 2014 (UTC)
+
+{{od}} ''despite the fact that it was known he was unarmed" - refers to the prosecutors, not the witnesses. That is the point the source is making, at least that was what I understood. ''while none of the witnesses said anything about Brown being armed'', was my attempts to unpack the statement "The prosecutor asked witness after witness if it seemed as if Mr. Brown were reaching for a weapon, '''though few said they saw anything like that'''". I accept that it was not perfect, but still valid. Now, please propose how to include in your own word that last sentence, because you have deleted it and it is a crucial point in that reporting. - [[User:Cwobeel|<span style="color:#339966">Cwobeel</span>]] [[User_talk:Cwobeel|<span style="font-size:80%">(talk)</span>]] 16:33, 7 December 2014 (UTC)
+
+:Since the source didn't use those words — and since prosecutors, like Wilson, did not know at the time of the incident that Brown was unarmed — this sounds like obvious BS. Also, "few witnesses said they saw him reaching for a weapon" is not even remotely equivalent to "none of the witnesses said he was armed". So once again it looks like you're adding your own spin, and there is no "validity" to it. Could you please propose content here before adding it to the article so that others can remove the errors and policy violations first? [[User:Factchecker_atyourservice|Centrify <small>(f / k / a FCAYS)</small>]] [[User_talk:Factchecker_atyourservice|(talk)]] [[Special:Contributions/Factchecker_atyourservice|(contribs)]] 16:44, 7 December 2014 (UTC)
+:: . My read is this: The critique is that prosecutors were acting as defense attorneys trying to validate Wilson's testimony regarding his perception that Brown was reaching for a weapon, when actually no witness other than Wilson made that case, and the prosecutors were asking again and again about that, which was very unusual. That is my reading of the source. Please re-read the source in its entirety and propose how to best reflect it. BTW, I intend to add more from that source, currently working on it. - [[User:Cwobeel|<span style="color:#339966">Cwobeel</span>]] [[User_talk:Cwobeel|<span style="font-size:80%">(talk)</span>]] 17:14, 7 December 2014 (UTC)
+:::Thank you for spelling out your uninformed opinion which does not belong anywhere on Wikipedia. I decline the invitation to grind your axe for you. I have already read and re-read the source. You are now on triple-explicit notice that the source does not say ''any'' of the things you previously wrote into the article, and thus I humbly request you bring any further material from this source HERE, to the talk page, so it may be vetted by editors who aren't quite so prone to ''accidentally'' misrepresenting a source to defame a living person. [[User:Factchecker_atyourservice|Centrify <small>(f / k / a FCAYS)</small>]] [[User_talk:Factchecker_atyourservice|(talk)]] [[Special:Contributions/Factchecker_atyourservice|(contribs)]] 18:47, 7 December 2014 (UTC)
+:::: Thank you for you suggestion, but I have no intentions to refrain from editing. I am working an additional material that I would add in due course. Thankfully, the collaborative process of Wikipedia will, as always, catch any mistake you or I make in our editing. - [[User:Cwobeel|<span style="color:#339966">Cwobeel</span>]] [[User_talk:Cwobeel|<span style="font-size:80%">(talk)</span>]] 22:44, 7 December 2014 (UTC)
+:::::"Mistakes", mmm, yes, it's quite amazing how your "mistakes" always result in WP prose that misrepresents a source to trash a living person, and it's further amazing how it's invariably, always and without exception, the targets of progressive wrath that get this treatment. What I find remarkable is that you do this deliberately, and repeatedly, and without the slightest hint of remorse '''and without the slightest hint of apology''' for those whom you dumbly snark at, threaten and insult, in the process of trying to defend an indefensible anti-policy edit. [[User:Factchecker_atyourservice|Centrify <small>(f / k / a FCAYS)</small>]] [[User_talk:Factchecker_atyourservice|(talk)]] [[Special:Contributions/Factchecker_atyourservice|(contribs)]] 14:41, 8 December 2014 (UTC)
+::::::^When I posted the above, I hadn't see that you went ahead and added more source misrepresentation. Please be advised that all opinion commentary is supposed to be well-sourced to notable commentators, not Wikipedia editors. [[User:Factchecker_atyourservice|Centrify <small>(f / k / a FCAYS)</small>]] [[User_talk:Factchecker_atyourservice|(talk)]] [[Special:Contributions/Factchecker_atyourservice|(contribs)]] 14:55, 8 December 2014 (UTC)
+
+{{od}} I guess we're fortunate in this case that the WP prose in question doesn't trash anyone. At any rate, I think it's worth mentioning that [[WP:LIMITED|paraphrasing]] "Mr Brown was found to be unarmed" is hardly an unsourced opinion, considering it's a [http://www.nytimes.com/2014/11/26/us/ferguson-grand-jury-weighed-mass-of-evidence-much-of-it-conflicting.html?_r=0 New York Times report]. If you were to provide a better paraphrase than any in the list that you've accumulated on Cwobeel's attempts, it would resolve this issue fairly easily. Explaining why the information shouldn't be included would also be informative. As an aside, the NYT article was corrected today as it misattributed questions asked of Wilson to the prosecutors. The questions were actually posed by one of the grand jurors. --[[User:RAN1|RAN1]] ([[User talk:RAN1|talk]]) 02:32, 9 December 2014 (UTC)
+:It has gradually evolved from something that misrepresented the source to defame McCullogh, into something that merely reports what the source says without WP-editor embellishment intended to defame McCullogh. And as an aside, Cwobeel's level of activity and "accidental source misrepresentation" is far too intense for me to go around actually ghostwriting his prose for him. Fortunately, BLP explicitly provides that I needn't do that. [[User:Factchecker_atyourservice|Centrify <small>(f / k / a FCAYS)</small>]] [[User_talk:Factchecker_atyourservice|(talk)]] [[Special:Contributions/Factchecker_atyourservice|(contribs)]] 16:12, 9 December 2014 (UTC)
+::Except, again, nothing you edited out seems to show any hint of defaming McCulloch. The only thing that comes remotely close is this [https://en.wikipedia.org/w/index.php?title=Shooting_of_Michael_Brown&diff=637172329&oldid=637172234 edit], which was neither libelous nor non-notable as it is a [[WP:WELLKNOWN|well-documented controversy about McCulloch]] by [http://www.nytimes.com/interactive/2014/08/13/us/ferguson-missouri-town-under-siege-after-police-shooting.html?_r=1 at] [http://www.latimes.com/changebrowser#url=/#section/-1/article/p2p-82099652/ least] [http://www.huffingtonpost.com/mark-weisbrot/in-ferguson-a-prosecutor_b_6269872.html two] sources (the last link was to the source cited in the edit). The Huffington Post source brings a different perspective to the controversy, which merits it being referenced in the article in a neutral tone. Btw, perhaps it would be in everyone's best interests if you were to be [[WP:BOLD|bold]] and give insight into how to rewrite the prose in an acceptable way, or to provide justifications on why the information shouldn't be included. As far as I can tell, BLP doesn't provide defenses for not contributing rationale. --[[User:RAN1|RAN1]] ([[User talk:RAN1|talk]]) 19:26, 9 December 2014 (UTC)
+: Thanks for pointing out the correcting by the NYT. I have deleted the miss-attributed sentence. - [[User:Cwobeel|<span style="color:#339966">Cwobeel</span>]] [[User_talk:Cwobeel|<span style="font-size:80%">(talk)</span>]] 03:22, 9 December 2014 (UTC)
+
+== additional sources discussing eyewitness testimony discrepancies from evidence (from a scientific point of view) ==
+
+* http://www.forbes.com/sites/fayeflam/2014/12/01/what-science-says-about-the-ferguson-case-memory-can-be-hacked/
+* http://web.randi.org/swift/eyewitnesses-and-emotion-a-reminder-to-engage-critical-thinking
+[[User:Gaijin42|Gaijin42]] ([[User talk:Gaijin42|talk]]) 21:03, 5 December 2014 (UTC)
+
+I'm a scientist. I like the idea of critical thinking. I like the idea of testing a hypothesis with evidence before making a conclusion, rather than making the evidence fit the conclusion. The Swift article reminds me that the public doesn't have all the evidence (nor should they), that details were presented to the grand jury that we are not privy to. I'm also reminded of "extraordinary claims require extraordinary evidence."
+
+Gaijin42, can you help me avoid attempting to write things I don't need to write, by just saying why you posted this? Do you think Wilson was justified in killing Brown? (I do.) [[User:Roches|Roches]] ([[User talk:Roches|talk]]) 23:29, 5 December 2014 (UTC)
+: May I remind you of [[WP:NOTFORUM]]? - [[User:Cwobeel|<span style="color:#339966">Cwobeel</span>]] [[User_talk:Cwobeel|<span style="font-size:80%">(talk)</span>]] 00:00, 6 December 2014 (UTC)
+
+{{ec}} The answer to your larger question I will reply to on your talk to avoid [[WP:FORUM]] (as Cwobeel is quite correct to point out). I posted these particular links because they can help to flesh out the "Accounts" section similarly to the existing Rashomon effect paragraph. [[User:Gaijin42|Gaijin42]] ([[User talk:Gaijin42|talk]]) 00:02, 6 December 2014 (UTC)
+
+{{ec}} {{yo|Roches}} As fascinating as these articles may be, they have no place in this article. Of course, if this is an area of interest you are welcome to edit [[Eyewitness testimony]], [[Credible witness]], and [[Eyewitness identification]]- [[User:Cwobeel|<span style="color:#339966">Cwobeel</span>]] [[User_talk:Cwobeel|<span style="font-size:80%">(talk)</span>]] 00:03, 6 December 2014 (UTC)
+
+::Cwobeel, the articles were posted by me (gaijin), not Roches. Why do you think they have no place in this article? They are directly discussing the general testimony issues in the context of this case and the specific witness statements we have in this case. [[User:Gaijin42|Gaijin42]] ([[User talk:Gaijin42|talk]]) 00:13, 6 December 2014 (UTC)
+
+: Oh, sorry. The only thing I see useful in the Forbes article is this passage
+:{{talkquote|Our instincts tell us that honest people remember events correctly and others are lying. Loftus, on reading the AP report, suggested that what witnesses remember is heavily influenced by the way they interpret what they are seeing. Different people heard shots and saw some kind of commotion. Was the victim charging, wobbling, or surrendering? People may have unconsciously filled in gaps in their perception with information based on their past experiences.}}
+: ... which could be added as the fully attributed opinion of Elizabeth Loftus, and the writer of the piece. - [[User:Cwobeel|<span style="color:#339966">Cwobeel</span>]] [[User_talk:Cwobeel|<span style="font-size:80%">(talk)</span>]] 00:32, 6 December 2014 (UTC)
+::I think that would be a fine quote to include since we already mention the AP report in question, that serves as a nice commentary about it. [[User:Gaijin42|Gaijin42]] ([[User talk:Gaijin42|talk]]) 00:54, 6 December 2014 (UTC)
+:::Could probably also find sources talking about how the typical unreliability of witness testimony leads prosecutors to rely more heavily on physical evidence, which is what they did in this case. [[User:Factchecker_atyourservice|Centrify <small>(f / k / a FCAYS)</small>]] [[User_talk:Factchecker_atyourservice|(talk)]] [[Special:Contributions/Factchecker_atyourservice|(contribs)]] 15:12, 6 December 2014 (UTC)
+:::: OK, go ahead, Gaijin. FCAYS: Just find a source that describes that opinion in the context of this incident and it can be included as well. - [[User:Cwobeel|<span style="color:#339966">Cwobeel</span>]] [[User_talk:Cwobeel|<span style="font-size:80%">(talk)</span>]] 15:15, 6 December 2014 (UTC)
+:::::Lazy Saturday, usually when I post about the possible existence of a source it's because I am hoping someone ''else'' will go find it. ;) [[User:Factchecker_atyourservice|Centrify <small>(f / k / a FCAYS)</small>]] [[User_talk:Factchecker_atyourservice|(talk)]] [[Special:Contributions/Factchecker_atyourservice|(contribs)]] 15:24, 6 December 2014 (UTC)
+
+== Release of video in lead & dispatch ==
+
+It seems to me that the fourth paragraph in the lead may be a little incomplete. At some point a dispatch went out mentioning the theft and Wilson claims this dispatch was something he considered before and during the altercation. Yet the only thing mentioned in the fourth paragraph is that some were pissed off about the release of the video and that it may shed light on Brown's state of mind at the time. I think this is an imbalance and should be briefly addressed, though I'm not entirely sure how. Thoughts? &ndash;&nbsp;[[User:Jbarta|JBarta]] ([[User talk:Jbarta#top|talk]]) 01:17, 6 December 2014 (UTC)
+
+:I [[Special:Diff/636975119|added]] a little to that paragraph. &ndash;&nbsp;[[User:Jbarta|JBarta]] ([[User talk:Jbarta#top|talk]]) 03:45, 7 December 2014 (UTC)
+
+== publisher= ==
+
+When standardizing refs in this article, I have dropped any {{para|publisher}} and replaced it with {{para|website}}. While many editors use {{para|publisher}}, they generally use it incorrectly per the documentation, which states: ''The [[publisher]] is the company that publishes the work being cited. Do not use the publisher parameter for the name of a work (e.g., a book, encyclopedia, newspaper, magazine, journal, website).''
+
+While you can code both {{para|website}} and {{para|publisher}}, I haven't felt that the latter is of enough use to the readers of this type of article to be worth the trouble and space. In many cases it would be a non-trivial task to determine the name of the publisher.
+
+I just noticed that the copy-and-paste "template" we have in the comments at the top of the References section includes {{para|publisher}}, and I'm writing this as the explanation for my removal of that. &#8209;&#8209;[[User:Mandruss|<span style="color:#8E8278;">'''''Mandruss'''''</span>]]&nbsp;[[User talk:Mandruss|<span style="color:#AAA;">&#9742;</span>]] 02:00, 6 December 2014 (UTC)
+
+:So if a ref is from www.cnn.com/blah/blah/blah/ you would prefer <tt>website=cnn.com</tt> rather than <tt>publisher=CNN</tt> ? &ndash;&nbsp;[[User:Jbarta|JBarta]] ([[User talk:Jbarta#top|talk]]) 02:13, 6 December 2014 (UTC)
+
+::No, the convention here is to use the website's branding, as {{para|website|CNN}} or {{para|website|The New York Times}}. In some cases the website seems to be branded in multiple alternative ways, so we are forced to choose one, but we are consistent with that choice. For local TV and radio stations we ignore branding such as "Fox2Now" and use the call letters, as {{para|website|KTVI}}. &#8209;&#8209;[[User:Mandruss|<span style="color:#8E8278;">'''''Mandruss'''''</span>]]&nbsp;[[User talk:Mandruss|<span style="color:#AAA;">&#9742;</span>]] 02:18, 6 December 2014 (UTC)
+
+:::So if a ref is from www.cnn.com/blah/blah/blah/ you would prefer <tt>website=CNN</tt> rather than <tt>publisher=CNN</tt>. Correct? &ndash;&nbsp;[[User:Jbarta|JBarta]] ([[User talk:Jbarta#top|talk]]) 02:26, 6 December 2014 (UTC)
+
+::::Yes. Or you can code it however you want and I'll convert it as part of standardization, which would probably be needed anyway. I rebuild every ref from scratch, unless it's already perfect per the local convention (hasn't happened yet). &#8209;&#8209;[[User:Mandruss|<span style="color:#8E8278;">'''''Mandruss'''''</span>]]&nbsp;[[User talk:Mandruss|<span style="color:#AAA;">&#9742;</span>]] 02:31, 6 December 2014 (UTC)
+
+:::::I'm reminded of a line from Godfather III.... ''"Our ships must all sail in the same direction"''. Forming the refs as you suggest is no problem at all as far as I'm concerned. And I'll assume you are correct in your rationale for doing it that way. &ndash;&nbsp;[[User:Jbarta|JBarta]] ([[User talk:Jbarta#top|talk]]) 02:40, 6 December 2014 (UTC)
+
+::::::Ok. I copy-and-paste an abbreviated "template" from a Notepad document, to save myself the trouble of removing multiple rarely-needed parameters. Then I can insert {{para|location}} for local TV and radio, add parameters for additional authors, and/or remove the archive parameters if the source won't archive. This abbreviated "template" is: <code><nowiki><ref name= >{{cite web |first= |last= |title= |date= |accessdate= |website= |url= |archiveurl= |archivedate= |deadurl=no}}</ref></nowiki></code>. &#8209;&#8209;[[User:Mandruss|<span style="color:#8E8278;">'''''Mandruss'''''</span>]]&nbsp;[[User talk:Mandruss|<span style="color:#AAA;">&#9742;</span>]] 02:47, 6 December 2014 (UTC)
+
+{{reflist-talk}}
+== "Crime scene" ==
+
+We refer to "crime scene" five times. I just wanted to confirm that this is deliberate and that the rationale is that some crime was committed there, the crime and perpetrator undetermined. &#8209;&#8209;[[User:Mandruss|<span style="color:#8E8278;">'''''Mandruss'''''</span>]]&nbsp;[[User talk:Mandruss|<span style="color:#AAA;">&#9742;</span>]] 06:02, 6 December 2014 (UTC)
+:While I think I understand your concern, I think this may be a situation in which the correct term just has unfortunate implications. In any trial in which the defendant is ultimately acquired (or not charged as in this case) those bits of evidence are still from the "crime scene" in general parlance. Charitably one could also interpret these scene as a crime as either Wilson or Browns take your pick depending on POV. But I would also not object to "incident scene" or "shooting scene" or something. [[User:Gaijin42|Gaijin42]] ([[User talk:Gaijin42|talk]]) 15:24, 6 December 2014 (UTC)
+::"Incident scene" sounds like a form that HR has to fill out after a fight in the break room. "Shooting scene" is not as awkward, but I think we should just track the terminology used by sources and trust that our readers will be discerning. [[User:Factchecker_atyourservice|Centrify <small>(f / k / a FCAYS)</small>]] [[User_talk:Factchecker_atyourservice|(talk)]] [[Special:Contributions/Factchecker_atyourservice|(contribs)]] 15:42, 6 December 2014 (UTC)
+:::If it's a crime scene, then what was the crime and who committed it? That's a pretty sticky question. Shooting scene seems most accurate to me, is well represented in sources and has zero stickiness. &ndash;&nbsp;[[User:Jbarta|JBarta]] ([[User talk:Jbarta#top|talk]]) 16:08, 6 December 2014 (UTC)
+::::Actually, since crime scene investigators (CSIs) work all homicides, justifiable or not, I'd support the use of the term "crime scene." Apart from that, the testimony of Officer Darren Wilson was that Michael Brown was guilty of initiating an assault on Darren Wilson at that location. At the time that data are recorded from the scene of any homicide, the possibility of a crime having been committed is assumed by first responders and crime scene investigators. Both Darren Wilson and Michael Brown were regarded by press accounts as criminal suspects when that crime was investigated. [[User:Vfrickey|loupgarous]] ([[User talk:Vfrickey|talk]]) 16:16, 6 December 2014 (UTC)
+:::::Would it be correct to say that a "crime scene" can also refer to an area of investigation where a crime ''may'' have been committed? &ndash;&nbsp;[[User:Jbarta|JBarta]] ([[User talk:Jbarta#top|talk]]) 16:22, 6 December 2014 (UTC)
+
+::::::That appears to be common usage, whether or not it's literally correct. Common usage is good enough for me. In any case, I think it's clear enough that at least one crime was committed there, assault on a police officer (aside from conspiracy theory, is there any other plausible explanation for the facial discoloration that persisted for hours?). There may or may not be mitigating circumstances, but it's still a crime AFAIK. &#8209;&#8209;[[User:Mandruss|<span style="color:#8E8278;">'''''Mandruss'''''</span>]]&nbsp;[[User talk:Mandruss|<span style="color:#AAA;">&#9742;</span>]] 16:47, 6 December 2014 (UTC)
+
+:::::::That seems a little loose. We've exposed criticism of the term "crime scene". Is there any direct criticism of the term "shooting scene"? Not asking if you prefer something else, but looking for direct criticism of the term itself such as being inaccurate or problematic in any way. <small><span class="autosigned">—&nbsp;Preceding [[Wikipedia:Signatures|unsigned]] comment added by [[User:Jbarta|Jbarta]] ([[User talk:Jbarta|talk]] • [[Special:Contributions/Jbarta|contribs]]) 17:11, 6 December 2014 (UTC)</span></small><!-- Template:Unsigned -->
+
+::::::::I wasn't advocating "crime scene" over "shooting scene", but merely saying I'm not opposed to "crime scene". I don't see "shooting scene" as being inaccurate or problematic in any way. &#8209;&#8209;[[User:Mandruss|<span style="color:#8E8278;">'''''Mandruss'''''</span>]]&nbsp;[[User talk:Mandruss|<span style="color:#AAA;">&#9742;</span>]] 17:18, 6 December 2014 (UTC)
+
+It's not called a "shooting scene," it's called a "crime scene." Call it what it's called, not what you think it should be called. [[User:Roches|Roches]] ([[User talk:Roches|talk]]) 17:57, 6 December 2014 (UTC)
+:How do you know it's called a "crime scene"? To you it seems crystal clear. To me it's not. What is it that you know that I don't? &ndash;&nbsp;[[User:Jbarta|JBarta]] ([[User talk:Jbarta#top|talk]]) 18:14, 6 December 2014 (UTC)
+::[[Crime scene]] says it's called a crime scene. Vfrickey gave a clear explanation of why it's called a crime scene. [[User:Roches|Roches]] ([[User talk:Roches|talk]]) 19:17, 6 December 2014 (UTC)
+:::[[Crime scene]] says ''"Crime scenes may or may not be where the crime was committed"'' which I admit I missed. However, despite explanations, I still find the rationale for calling it a crime scene a little shaky, and as discussed earlier, "shooting scene" isn't shaky at all. My preference (slight as it is) is still for "shooting scene", but it's arguably a minor matter and if a consensus of editors prefer "crime scene", then so be it. At least it was examined and discussed. &ndash;&nbsp;[[User:Jbarta|JBarta]] ([[User talk:Jbarta#top|talk]]) 02:17, 7 December 2014 (UTC)
+::::I think it is common knowledge what a ''crime scene'' is. We all understand that it is a place where police are investigating a possible crime. It does not mean that just because we have labelled it such that we have bypassed judge and jury and want to throw the suspect in prison because, oh yea, we called it a ''crime'' scene. I've never heard the terms "shooting scene", "robbery scene", "assault scene", "arson scene", "shoplifting scene", etc. in my entire life. —[[User:Megiddo1013|Megiddo1013]] 05:54, 7 December 2014 (UTC)
+:::::At the risk of beating an unconscious horse and just for the sake of argument, I'm really not moved by what you think everybody knows or what you think everybody understands or what you've never heard in your entire life. I was looking for some definitive evidence as to whether a scene that may or may not have been the scene of an actual crime (depending on who you ask) is still called a crime scene. The rest of my comments are above (I hate repeating myself). One more thought that I don't think was brought up... is the Ferguson Police (or State Police or FBI or whoever is investigating there) calling it a "crime scene"? If not, how do ''they'' refer to the site? Just a thought. &ndash;&nbsp;[[User:Jbarta|JBarta]] ([[User talk:Jbarta#top|talk]]) 16:22, 7 December 2014 (UTC)
+::::::I see [https://web.archive.org/web/20141207162706/http://graphics8.nytimes.com/newsgraphics/2014/11/24/ferguson-evidence/assets/gj-testimony/grand-jury-volume-02.pdf here] the grand jury is hearing testimony from a "crime scene investigator" and they do mention the words "crime scene" several times. Other than simply "the scene", they don't really call it anything else. So I suppose if you walked up to the investigator while he was measuring and examining and asked him "Whatcha doin?", he would most likely reply with "Investigatin this here crime scene. Now get back behind that yellow line or someone's gonna shoot you too!" &ndash;&nbsp;[[User:Jbarta|JBarta]] ([[User talk:Jbarta#top|talk]]) 16:41, 7 December 2014 (UTC)
+
+Micheal Brown attacked Officer Wilson there, as well as resisted arrest, so there's really no question that it is the scene of at least ''some'' crime committed, regardless of whether or not Wilson committed any crime. Crime scene, scene of the incident, scene of the shooting all seem to be pretty commonly used. I don't think it is unnecessarily POV; we should use whatever the sources use. [[User:Titanium Dragon|Titanium Dragon]] ([[User talk:Titanium Dragon|talk]]) 02:21, 11 December 2014 (UTC)
+
+== Incident reports ==
+
+I changed the incident report section. The complaints are really examples of journalists writing about how they think people should do their jobs; if this incident report isn't different than a normal one ''about the same thing'', then it's not lacking in information.
+
+The reason why the incident reports have very few details is that they are admissible in court. Filling in only basic information is a normal thing to do in a case like this, because the incident report is just the beginning of an investigation. In most cases, such as a collision involving a police vehicle, the incident report is a full description of the event because nothing more ever needs to be said about it. These incident reports are not the official story of the police department, they're the individual account of the person who might have to go to trial. Journalists should have known better than to speculate that details were being omitted improperly.
+
+Something was made of the date of the report (ten days after the shooting); this is the time the report was ''entered.'' The date it was ''submitted'' isn't there. The times of day must also not mean what they appear to mean, since other accounts have police arriving at the scene in much less than 40 minutes.
+
+[[User:Roches|Roches]] ([[User talk:Roches|talk]]) 18:12, 6 December 2014 (UTC)
+
+: No, no, and no. You are not here to decide what journalists should do or not do, or what they should report or not report. If you find a source that describes your opinion, by all means add it. But '''do not delete material just because you think the journalists are doing a poor job.''' Who cares what you (or I) think? We report what sources say. - [[User:Cwobeel|<span style="color:#339966">Cwobeel</span>]] [[User_talk:Cwobeel|<span style="font-size:80%">(talk)</span>]] 22:19, 6 December 2014 (UTC)
+::According to a spokesman for the St. Louis County police department, it's normal practice not to give out the details and that under the Missouri State “Sunshine” Law, the department was not required to release the information during a pending investigation.[http://time.com/3159680/ferguson-michael-brown-shooting-police-report/] --[[User:Bob K31416|Bob K31416]] ([[User talk:Bob K31416|talk]]) 00:31, 7 December 2014 (UTC)
+::: Then report that, alongside the critique from other media sources, even if unfounded. - [[User:Cwobeel|<span style="color:#339966">Cwobeel</span>]] [[User_talk:Cwobeel|<span style="font-size:80%">(talk)</span>]] 01:03, 7 December 2014 (UTC)
+
+Please don't tell me how Wikipedia works, even if it's using WP:article links to things that are not policy. I changed the section to describe the level of detail on the forms, and mentioned that Wilson sought legal advice about completing them. I kept the ACLU statement, because it is important to convey that people objected to the way the forms were completed, but I didn't keep the paraphrased list of things the HuffPo author thought were missing.
+
+Reporting the Huffington Post author's opinion of how police departments should fill out incident reporting forms is not NPOV. That's an opinion of one journalist at one source; the ACLU's public statement is a much better, and entirely sufficient, way to report objections to the way the forms were completed.. See [[WP:ONUS]]. [[User:Roches|Roches]] ([[User talk:Roches|talk]]) 04:37, 7 December 2014 (UTC) (Added policy link to post at 4:30.)
+
+:: we report opinions and attribute opinions to those that hold them. That is our work as editors, and not pass judgement. I will remove these edits and expect you to follow [[WP:BRD]], as there is an implicit consensus on material that has been in the article for a while. - [[User:Cwobeel|<span style="color:#339966">Cwobeel</span>]] [[User_talk:Cwobeel|<span style="font-size:80%">(talk)</span>]] 05:18, 7 December 2014 (UTC)
+:::If the opinion isn't found anywhere other than HuffPo, it's probably not notable. Notice also this was published in August and never followed up on. Not exactly quality sourcing. [[User:Factchecker_atyourservice|Centrify <small>(f / k / a FCAYS)</small>]] [[User_talk:Factchecker_atyourservice|(talk)]] [[Special:Contributions/Factchecker_atyourservice|(contribs)]] 15:51, 7 December 2014 (UTC)
+
+I started looking over the current version of the section [https://en.wikipedia.org/w/index.php?title=Shooting_of_Michael_Brown&oldid=637070981#Incident_reporting_forms Incident reporting forms] and there was a problem with verifying the first two sentences.
+:"[[MSNBC]]'s [[Lawrence O'Donnell]] reported on {{nowrap|August 21}} that Wilson did not complete an incident report about the shooting, after being advised by a union lawyer not to do so.<sup>[68]</sup> According to O'Donnell, Wilson did file a report, but not until ten days after the shooting, and the report contained no information other than his name and the date.<sup>[68]</sup>
+
+:<small>68. {{cite episode |first=Lawrence |last=O'Donnell |title=Ferguson PD didn't file report after shooting |date=August 21, 2014 |accessdate=August 26, 2014 |series=The Last Word |network=MSNBC |url=http://www.msnbc.com/the-last-word}}</small>
+
+The link for the source doesn't go to the page where the info is, so I wasn’t able to verify the material using the citation. --[[User:Bob K31416|Bob K31416]] ([[User talk:Bob K31416|talk]]) 23:01, 7 December 2014 (UTC)
+:: Searching for the title of the source in the ref, yields this: http://www.msnbc.com/the-last-word-with-lawrence-odonnell/watch/ferguson-pd-didnt-file-report-after-shooting-320755267999 - [[User:Cwobeel|<span style="color:#339966">Cwobeel</span>]] [[User_talk:Cwobeel|<span style="font-size:80%">(talk)</span>]] 23:07, 7 December 2014 (UTC)
+:::{{fixed}} &#8209;&#8209;[[User:Mandruss|<span style="color:#8E8278;">'''''Mandruss'''''</span>]]&nbsp;[[User talk:Mandruss|<span style="color:#AAA;">&#9742;</span>]] 23:18, 7 December 2014 (UTC)
+:::On the other hand, that link is to a 1:16 clip, apparently the intro to the episode. I can't figure out how to get the whole thing. &#8209;&#8209;[[User:Mandruss|<span style="color:#8E8278;">'''''Mandruss'''''</span>]]&nbsp;[[User talk:Mandruss|<span style="color:#AAA;">&#9742;</span>]] 23:31, 7 December 2014 (UTC)
+
+So who is correct, the prosecutor's office, O'Donnel, the ACLU? Was or was not an incident report filed? Because they did release the reports when pressed to do so. - [[User:Cwobeel|<span style="color:#339966">Cwobeel</span>]] [[User_talk:Cwobeel|<span style="font-size:80%">(talk)</span>]] 23:51, 7 December 2014 (UTC)
+:Cwobeel, The current issue is verifying those two sentences. The link you just gave is insufficient. --[[User:Bob K31416|Bob K31416]] ([[User talk:Bob K31416|talk]]) 00:01, 8 December 2014 (UTC)
+:: Well, it was the when I sourced it, but it seems that it is gone. I will see if I can find it in the wayback machine. - [[User:Cwobeel|<span style="color:#339966">Cwobeel</span>]] [[User_talk:Cwobeel|<span style="font-size:80%">(talk)</span>]] 00:05, 8 December 2014 (UTC)
+
+The full episode may be on this page, but I am not 100% sure: [http://www.msnbc.com/msnbc/aclu-michael-brown-incident-report-lacks-key-details], OTOH, this is a good source that could be used: [http://www.thewire.com/national/2014/08/ferguson-police-waited-10-days-to-review-michael-brown-incidents-report/378972/] - [[User:Cwobeel|<span style="color:#339966">Cwobeel</span>]] [[User_talk:Cwobeel|<span style="font-size:80%">(talk)</span>]] 00:12, 8 December 2014 (UTC)
+
+Here's a relevant excerpt from a Nov 24 Newsweek source.[http://www.newsweek.com/no-charges-ferguson-michael-brown-shooting-case-285976 ]
+:"The official incident report filed by St. Louis county police 10 days after the shooting contains few hard details about the encounter, other than the fact that Brown was unarmed."
+--[[User:Bob K31416|Bob K31416]] ([[User talk:Bob K31416|talk]]) 00:24, 8 December 2014 (UTC)
+
+I made some edits involving the second and third sentences of the first paragraph, which currently is:[https://en.wikipedia.org/w/index.php?title=Shooting_of_Michael_Brown&oldid=637098637#Incident_reporting_forms]
+
+:"[[MSNBC]]'s [[Lawrence O'Donnell]] reported on {{nowrap|August 21}} that Wilson did not complete an incident report about the shooting, after being advised by a union lawyer not to do so.<ref name=MSNBC.File/> According to the {{nowrap|St. Louis}} County Prosecutor's Office, the Ferguson police didn’t file an incident report on the shooting because the case was turned over to the county police almost immediately.<ref name=NBC.Why/><ref name=MSNBC.Details/><ref name=ACLU.FPDReport/> The St. Louis county police filed an incident report 10 days after the shooting with little information about what happened.<ref name=Newsweek.After/>"
+
+{{reflist-talk}}
+
+The first sentence is not supported by its source. The only thing it adds is the part about the lawyer. The rest is covered in the second sentence. I think we should delete it for now and consider restoring the lawyer info when there is a suitable source for it. --[[User:Bob K31416|Bob K31416]] ([[User talk:Bob K31416|talk]]) 01:23, 8 December 2014 (UTC) Deleted. [https://en.wikipedia.org/w/index.php?title=Shooting_of_Michael_Brown&diff=637128797&oldid=637122667] --[[User:Bob K31416|Bob K31416]] ([[User talk:Bob K31416|talk]]) 14:44, 8 December 2014 (UTC)
+
+: Unfortunately the source is no longer online. In any case I think what we have there is covers this quote well. I have re-ordered the sentences for a narrative that makes sense. - [[User:Cwobeel|<span style="color:#339966">Cwobeel</span>]] [[User_talk:Cwobeel|<span style="font-size:80%">(talk)</span>]] 14:50, 8 December 2014 (UTC)
+::I don't think that was an improvement. I noticed that another editor reverted the re-ordering. [https://en.wikipedia.org/w/index.php?title=Shooting_of_Michael_Brown&diff=637174390&oldid=637172965] --[[User:Bob K31416|Bob K31416]] ([[User talk:Bob K31416|talk]]) 16:40, 8 December 2014 (UTC)
+
+::: The version reverted to does not make sense. It starts by describing the reasons why a report was not filed, only to say in the following paragraphs that reports were indeed filed. when you removed the O'Donnell reference, the section came out of whack. I am still trying to find the original source from O'Donnell. - [[User:Cwobeel|<span style="color:#339966">Cwobeel</span>]] [[User_talk:Cwobeel|<span style="font-size:80%">(talk)</span>]] 17:07, 8 December 2014 (UTC)
+::::I think the lead paragraph is OK and shouldn't be touched for now. I've been working on the rest of the section to get it into better shape. After I complete that, I'll revisit the lead paragraph. --[[User:Bob K31416|Bob K31416]] ([[User talk:Bob K31416|talk]]) 18:25, 8 December 2014 (UTC)
+
+OK Found it. - [[User:Cwobeel|<span style="color:#339966">Cwobeel</span>]] [[User_talk:Cwobeel|<span style="font-size:80%">(talk)</span>]] 17:16, 8 December 2014 (UTC)
+
+{{talkquote|We have breaking news tonight in the killing of Michael Brown. St. Louis County prosecutors told NBC News today that the Ferguson Police Department has no incident report of the shooting of Michael Brown. Darren Wilson, the officer who shot and killed Michael Brown, did not write an incident report contrary to standard police procedure. […] Yesterday, in response to a lawsuit from the ACLU, the St. Louis County police released an incident report that says, in effect, nothing other than the time and proximate location of a homicide and the victim`s name, Michael Brown. That incident report indicates that it was not filed until possibly 10 days after the killing of Michael Brown. […] In the decades I`ve been studying these cases, most of them involve incident reports written by the officers involved with the shooting. In recent years, it has become customary for the police lawyer to run in, police union lawyer usually, and prevent the shooter from giving any kind of comment or writing any sort of incident report whatsoever. <ref>{{cite web |url=http://www.nbcnews.com/id/55915749/ns/msnbc/t/last-word-lawrence-odonnell-thursday-august-st/#.VIXbR6YqjoA|title= The Last word with Lawrence O'Donnell August 21, 2014|publisher=NBC News|accessdate=8 December 2014}}</ref> }}
+{{reflist-talk}}
+
+:The excerpt you gave doesn't say that Wilson was advised by a union lawyer not to complete an incident report. --[[User:Bob K31416|Bob K31416]] ([[User talk:Bob K31416|talk]]) 17:31, 8 December 2014 (UTC)
+:: See my edit, which attributes that opinion to O'Donnell. - [[User:Cwobeel|<span style="color:#339966">Cwobeel</span>]] [[User_talk:Cwobeel|<span style="font-size:80%">(talk)</span>]] 17:45, 8 December 2014 (UTC)
+:::I moved it from the article to here for discussion.
+
+::::"[[MSNBC]]'s [[Lawrence O'Donnell]] reported on {{nowrap|August 21}} that St. Louis County prosecutors told NBC News that they do not have an incident report from the shooting, contrary to standard police procedure, and described a pattern in which police union lawyers prevent shooters from commenting to filing incident reports.<ref>{{cite web |url=http://www.nbcnews.com/id/55915749/ns/msnbc/t/last-word-lawrence-odonnell-thursday-august-st/#.VIXbR6YqjoA|title= The Last Word with Laurence O'Donnell - August 21, 2014|publisher=NBC News|accessdate=8 December 2014}}</ref>"
+{{reflist-talk}}
+
+:::This Aug 21 item became obsolete when the police interview of Wilson, the day after the shooting, was released to the public. --[[User:Bob K31416|Bob K31416]] ([[User talk:Bob K31416|talk]]) 18:15, 8 December 2014 (UTC)
+::::: Really? Can you provide a source that describes the police interview that was released? - [[User:Cwobeel|<span style="color:#339966">Cwobeel</span>]] [[User_talk:Cwobeel|<span style="font-size:80%">(talk)</span>]] 18:25, 8 December 2014 (UTC)
+::::::Here's a link from a [http://edition.cnn.com/interactive/2014/11/us/ferguson-grand-jury-docs/index.html CNN webpage] to the interview. [https://www.documentcloud.org/documents/1370928-interview-po-darren-wilson.html] --[[User:Bob K31416|Bob K31416]] ([[User talk:Bob K31416|talk]]) 18:55, 8 December 2014 (UTC)
+::::: {{yo|Bob K31416}}I see what you mean. But you are confusing two things. What O'Donnell is referring to is an incident report. What you are refrring to is an interview with Wilson. These are two different things. Please restore that edit, as this section is all about incident reports and not interviews. - - [[User:Cwobeel|<span style="color:#339966">Cwobeel</span>]] [[User_talk:Cwobeel|<span style="font-size:80%">(talk)</span>]] 18:31, 8 December 2014 (UTC)
+:::::<small>{{yo|Cwobeel}} - You have to add the ping (yo) and your sig in the same edit, or there is no notification. I learned that the hard way. {{yo|Bob K31416}} &#8209;&#8209;[[User:Mandruss|<span style="color:#8E8278;">'''''Mandruss'''''</span>]]&nbsp;[[User talk:Mandruss|<span style="color:#AAA;">&#9742;</span>]] 18:50, 8 December 2014 (UTC) </small>
+::::::O'Donnell said, "any kind of comment or writing any sort of incident report whatsoever.” --[[User:Bob K31416|Bob K31416]] ([[User talk:Bob K31416|talk]]) 18:55, 8 December 2014 (UTC)
+::::::: So what? The fact is that Wilson did not file an incident report. That is undisputed. - [[User:Cwobeel|<span style="color:#339966">Cwobeel</span>]] [[User_talk:Cwobeel|<span style="font-size:80%">(talk)</span>]] 19:39, 8 December 2014 (UTC)
+
+=== Break1 Incident reports ===
+{{yo|Bob K31416}} I added additional commentary from legal and law enforcement analysts. I also re-ordered the sentences to follow the chronology. I think I got it right, but please change it if it is not correct. - [[User:Cwobeel|<span style="color:#339966">Cwobeel</span>]] [[User_talk:Cwobeel|<span style="font-size:80%">(talk)</span>]] 19:58, 8 December 2014 (UTC)
+
+:(Here’s a link to the version after Cwobeel's recent edits [https://en.wikipedia.org/w/index.php?title=Shooting_of_Michael_Brown&oldid=637213737#Incident_reporting_forms] and a link to the version before [https://en.wikipedia.org/w/index.php?title=Shooting_of_Michael_Brown&oldid=637210952#Incident_reporting_forms] .)
+
+:[[User:Cwobeel|Cwobeel]], Here’s some comments on your recent edits of the section.
+
+::1) The first sentence of your version misstated the source. O'Donnell was referring to only the Ferguson incident report. The info was already in the first sentence that you moved.
+
+::2) The second sentence of your version about Lisa Bloom’s opinion misstates the source. Lisa Bloom didn’t say that Wilson refused to file a report.
+
+::3) Re the 3rd sentence of your version about Jim Cavanaugh’s comment — The info was already covered in the first and second sentences of the original version.
+
+::4) The 4th sentence of your version about the Ferguson police not filing an incident report was the original 1st sentence.
+
+::5) The 5th and last sentence of the lead paragraph of your version was about a use-of-force report and was formerly the last sentence of the section. I hadn’t worked on the placement or content of this sentence yet.
+
+::6) The 2nd and 3rd paragraphs of your version were obtained by switching the 2nd and 3rd paragraphs of the original version. I hadn’t worked on the content or placement of the material in these paragraphs yet.
+
+::7) The 4th and last paragraph of your version was the second sentence of the lead paragraph of the original version.
+
+:Before I try to edit the section again, could you list here in our discussion, in chronological order, the events that you are trying to portray in chronological order? --[[User:Bob K31416|Bob K31416]] ([[User talk:Bob K31416|talk]]) 01:33, 9 December 2014 (UTC)
+
+:: I cheeked again this evening and this is the correct chronology, my last edit was not correct:
+::* August 19 - (10 days after shooting) incident report filed by St. Louis county police
+::* August 21 - O'Donnel's reporting, commentary from Lisa Bloom and Jim Cavanaugh
+::* August 22 - St. Louis County Prosecutor's Office says that Ferguson police did not file a report because the case was assigned to county police
+::* August 26 - ACLU releases the report they received after their FOIA request
+::* August 26 - HuffPo reports on commentary by ACLU's Gupta
+::* Sept 25 - Yahoo News reports that key report does not exist
+:: Regarding Bloom and Cavanaugh:
+::* Lisa Bloom: ''And if he refuses to follow standard operating procedure in preparing a report about the taking of the human life, he should be fired."
+::* Jim Cavanaugh: That is an expert opinion that should be presented.
+:: I <s>will attempt again to correct</s> corrected the chronology. - [[User:Cwobeel|<span style="color:#339966">Cwobeel</span>]] [[User_talk:Cwobeel|<span style="font-size:80%">(talk)</span>]] 03:37, 9 December 2014 (UTC)
+
+:: {{yo|:Bob K31416}} feel free to copyedit my rendition of Bloom and Cavanugh's comments, if you can make it better and closer to the source. - [[User:Cwobeel|<span style="color:#339966">Cwobeel</span>]] [[User_talk:Cwobeel|<span style="font-size:80%">(talk)</span>]] 03:42, 9 December 2014 (UTC)
+:::[[User:Cwobeel|Cwobeel]], On giving the section another look, I noticed that it is about not releasing information that has now been released. It’s obsolete and a digression from the topic of the article, the shooting of Michael Brown. We could summarize the incident report issue in a couple of sentences and merge it with the Police section. Thoughts? --[[User:Bob K31416|Bob K31416]] ([[User talk:Bob K31416|talk]]) 00:48, 10 December 2014 (UTC)
+
+== Wholesale deletion of relevant material ==
+
+{{yo|Roches}} Why are you deleting perfectly good material without any discussion[https://en.wikipedia.org/w/index.php?title=Shooting_of_Michael_Brown&diff=636909177&oldid=636903538]. I welcome your contributions, but you need to show some respect to the hard work from others. Deleting material that has been in the article for quite a while, and which represents an existing consensus is not acceptable - [[User:Cwobeel|<span style="color:#339966">Cwobeel</span>]] [[User_talk:Cwobeel|<span style="font-size:80%">(talk)</span>]] 22:15, 6 December 2014 (UTC)
+
+And when you are it, explain this edit [https://en.wikipedia.org/w/index.php?title=Shooting_of_Michael_Brown&diff=636903538&oldid=636894100] in which you removed several key pieces of reporting. - [[User:Cwobeel|<span style="color:#339966">Cwobeel</span>]] [[User_talk:Cwobeel|<span style="font-size:80%">(talk)</span>]] 22:21, 6 December 2014 (UTC)
+
+I mean, how blatant can you be? You removed a key piece: {{talkquote|. Brown stumbled, stopped, put his hands up and said "OK, OK, OK, OK, OK." The worker believed Brown had been wounded. With his hands up, Brown began walking toward the officer, at which point Wilson began firing at Brown and backing away.}} - [[User:Cwobeel|<span style="color:#339966">Cwobeel</span>]] [[User_talk:Cwobeel|<span style="font-size:80%">(talk)</span>]] 22:23, 6 December 2014 (UTC)
+
+:It's difficult to contribute anything at all if every aspect of every edit has to be justified. The fact that somebody said that something happened is not necessarily worth reporting here, and it does not remain worth reporting here. Editing material that was written some time ago is not destructive, it's just changing the article to represent the importance of that particular account ''as of right now.''
+
+:The construction worker's account describes Brown being hit from behind after being shot by one of three police officers. I thought it was acceptable to keep the broader details of the account. I did not remove all of the details in the "key piece" above. I only removed what the otherwise-unreliable account said Brown was saying. There's a reason for that. If someone reported that Brown said "I'm gonna kill you," then that conveys to readers the idea that Brown may have said that. Similarly, including a quotation from a possibly unreliable account, a quotation that other accounts don't include, can alter the opinions of readers in a different way than a retelling of what the worker said the people did. The edited account still conveys the worker's contention that Brown was trying to surrender, it just doesn't quote Brown in the retelling.
+
+:If that content represented an existing consensus between, say, ten editors, it no longer represents a consensus. I'm strongly opposed to it, I think it should be removed, so there isn't a consensus anymore. [[User:Roches|Roches]] ([[User talk:Roches|talk]]) 04:09, 7 December 2014 (UTC)
+
+::No comment on the rest, but I'll go out on a limb and challenge your last sentence based on the second sentence of [[WP:CONSENSUS]]: ''Consensus on Wikipedia does not mean unanimity (which, although an ideal result, is not always achievable)...''. In other words, consensus doesn't vanish the moment someone comes along and disagrees with it. It was rarely unanimous to begin with, as indicated in the quoted passage. &#8209;&#8209;[[User:Mandruss|<span style="color:#8E8278;">'''''Mandruss'''''</span>]]&nbsp;[[User talk:Mandruss|<span style="color:#AAA;">&#9742;</span>]] 04:39, 7 December 2014 (UTC)
+:::The part about hands up was removed. It was significant because it was supported by the following, which was also removed, "In a cellphone video obtained by CNN on {{nowrap|September 11}}, which captured the reaction of the construction worker and a colleague, one of them can be heard saying, "He had his fuckin' hands up." Does anyone know where the corresponding grand jury testimony is, volume, page number? --[[User:Bob K31416|Bob K31416]] ([[User talk:Bob K31416|talk]]) 05:04, 7 December 2014 (UTC)
+:::: I have restored the material that was deleted. - [[User:Cwobeel|<span style="color:#339966">Cwobeel</span>]] [[User_talk:Cwobeel|<span style="font-size:80%">(talk)</span>]] 05:28, 7 December 2014 (UTC)
+
+{{yo|Roches}}: ''It's difficult to contribute anything at all if every aspect of every edit has to be justified.'' Welcome to editing contentious articles in Wikipedia. - [[User:Cwobeel|<span style="color:#339966">Cwobeel</span>]] [[User_talk:Cwobeel|<span style="font-size:80%">(talk)</span>]] 05:30, 7 December 2014 (UTC)
+
+And a good reminder [[WP:NOTTRUTH]] - [[User:Cwobeel|<span style="color:#339966">Cwobeel</span>]] [[User_talk:Cwobeel|<span style="font-size:80%">(talk)</span>]] 05:32, 7 December 2014 (UTC)
+:Cwobeel, From the essay [[WP:NOTTRUTH]] that you referred to is the following, "The phrase 'the threshold for inclusion is verifiability, not truth' meant that verifiability is a necessary condition (a minimum requirement) for the inclusion of material, though it is not a sufficient condition (it may not be enough)." --[[User:Bob K31416|Bob K31416]] ([[User talk:Bob K31416|talk]]) 05:45, 7 December 2014 (UTC)
+:: I agree with you in that context. I was referring to this section: [[WP:!TRUTHFINDERS]] - [[User:Cwobeel|<span style="color:#339966">Cwobeel</span>]] [[User_talk:Cwobeel|<span style="font-size:80%">(talk)</span>]] 05:50, 7 December 2014 (UTC)
+:::::[[User:Cwobeel|Cwobeel]], I don't think that part of the essay means that verifiability guarantees the inclusion of questionable material. Also, please note the statement at the top of that essay's page, "Essays are ''not'' [[Wikipedia:Policies and guidelines|Wikipedia policies or guidelines]]." Wikipedia policy says that [https://en.wikipedia.org/w/index.php?title=Wikipedia:Verifiability&oldid=634377638#Verifiability_does_not_guarantee_inclusion verifiability does not guarantee inclusion]. --[[User:Bob K31416|Bob K31416]] ([[User talk:Bob K31416|talk]]) 06:50, 7 December 2014 (UTC)
+:::::: I am fully aware that an essay is not policy. But the point made in that essay is a good one. - [[User:Cwobeel|<span style="color:#339966">Cwobeel</span>]] [[User_talk:Cwobeel|<span style="font-size:80%">(talk)</span>]] 15:24, 7 December 2014 (UTC)
+:::::::And what point is that? --[[User:Bob K31416|Bob K31416]] ([[User talk:Bob K31416|talk]]) 16:42, 7 December 2014 (UTC)
+
+::::From the St. Louis Post-Dispatch, talking about the construction worker's testimony to the grand jury - [http://www.stltoday.com/news/local/crime-and-courts/in-grand-jury-testimony-passion-but-little-agreement-from-witnesses/article_f2fc0e21-dc59-59bf-82bc-c0f35fd40572.html A landscape worker who lives in Jefferson County gave grand jurors one of the oddest accounts of the moments leading up to Brown's death. The man said he encountered Brown that morning. He was trying to cut through some tree roots and cursing at the difficulties of the job. Brown told him that Jesus would help him with his anger problem. A few minutes later, the man said, he heard gunshots. He looked up and saw Brown running. '''He said three officers were chasing Brown''', but only one of them was shooting. Brown appeared to have been shot as he fled, the worker said. Then Brown turned around, put his hands up and started yelling “OK.” "And within a couple of seconds the '''three officers came up''', and one just pulled up and shot him," the worker said.]--[[User:Isaidnoway|<font face="Times New Roman" color="blue"> '''''Isaidnoway''''' </font>]][[User talk:Isaidnoway|<font face="Times New Roman" color="blue">'''''(talk)'''''</font>]] 05:36, 7 December 2014 (UTC)
+::::: Sure, but this article is not just about the testimony to the grand jury. This and other witnesses provided their accounts before that, such as in here [http://www.stltoday.com/news/local/crime-and-courts/workers-who-were-witnesses-provide-new-perspective-on-michael-brown/article_14a3e5f8-6c6a-5deb-92fe-87fcee622c29.html], the source used in that section. You are welcome to add his testimony to the grand jury for completeness. - [[User:Cwobeel|<span style="color:#339966">Cwobeel</span>]] [[User_talk:Cwobeel|<span style="font-size:80%">(talk)</span>]] 05:44, 7 December 2014 (UTC)
+
+::Restoring the original version reminded me of why I edited it. I'm not going to dissect the content line by line, feign outrage, or welcome you to Wikipedia. I especially do not like the last of these things, and I don't like when you tell me or other editors that we are free to add content to some section of the article, but not to another.
+
+::What I tried to do wasn't perfect, but if that content represents the hard work of many individuals working towards a consensus, the result was surprisingly awkward and difficult to read. [[User:Roches|Roches]] ([[User talk:Roches|talk]]) 06:22, 7 December 2014 (UTC)
+::: Fair enough. If you can improve content by copy editing, that would be most welcome. But there is a difference in making something more readable, and deleting content wholesale as you did. - [[User:Cwobeel|<span style="color:#339966">Cwobeel</span>]] [[User_talk:Cwobeel|<span style="font-size:80%">(talk)</span>]] 06:30, 7 December 2014 (UTC)
+
+== Fair use photos of Michael Brown and Darren Wilson ==
+
+I'm wondering about grabbing some photos of Brown and Wilson and uploading them as fair use. I have in mind these... [http://media4.s-nbcnews.com/i/newscms/2014_33/614086/140812-michael-brown-1338_8c5ad41dd423c28ed02e37e39222844e.jpg Brown],[http://i97.photobucket.com/albums/l217/Shockwave_73/Album%202/Darren-Wilson_zps70a1888c.jpg Wilson], and using them in a manner similar to the ones in [[Shooting of Trayvon Martin]]. Brown is dead so "historic portrait" applies, unless someone wants to argue that anyone who owns a photo of Brown ''could'' conceivably upload it here under some sort of free license. Wilson is still around, but I think the chances someone will upload a free picture of him anytime soon is pretty slim. And even if 30 years from now someone finally does, it won't do us much good in the meantime plus he won't look anything like he did during the event... which sort of kills the encyclopedic value. I think that since this a historic event (historic meaning this particular event happened at only one time in history), contemporary photos of the main participants are fair use. Thoughts on the validity of "fair-use" here? Thoughts on using the images in general? &ndash;&nbsp;[[User:Jbarta|JBarta]] ([[User talk:Jbarta#top|talk]]) 16:44, 8 December 2014 (UTC)
+:For Brown, we get one (and and only one) "fair use" photo under the "dead, no future free photos available" bits of [[WP:NFCC]]. So if consensus can be built on which photo to use, then we can go with it.
+:For Wilson, as he is living, we do not get such exceptions. I already uploaded a pic of Wilson's face injury under the NFCC for a non-reproduceable historical photo that is discussed in the article (the degree of injury or not). Having just an "What does Wilson look like" photo is not going to survive the fair use discussion tho.
+:The Trayvon Martin article is working under slightly different rules, because Florida does not allow state agencies to keep copyrights and so all of the evidence stuff is in the public domain. Missouri specifically does allow state agencies to keep copyright. [[User:Gaijin42|Gaijin42]] ([[User talk:Gaijin42|talk]]) 16:52, 8 December 2014 (UTC)
+::That fair use can indeed encompass "what does a main participant look like?" in a very notable "moment in time" event is an incorrect belief? &ndash;&nbsp;[[User:Jbarta|JBarta]] ([[User talk:Jbarta#top|talk]]) 17:30, 8 December 2014 (UTC)
+:::Generally only if there is some specific thing that is being commented on significantly in the article that the "moment in time" captures. For example injuries, or "iconic" status. "Here is a random snapshot of Wilson" won't qualify. You can always try of course, but I've seen hundreds of photos trying that argument get deleted. The relevant criteria are [[Wikipedia:Non-free_content#UULP]]. In our case a hypothetical free replacement would let us see the general ID of Wilson just fine (As opposed to the injury photos, which cannot be replaced ever in the future). More detail can be found at [[Wikipedia:Replaceability_of_fair-use_images#Living_people]] [[User:Gaijin42|Gaijin42]] ([[User talk:Gaijin42|talk]]) 17:58, 8 December 2014 (UTC)
+::::I'm familiar with the guidelines, just wondering how far they can be stretched in this context. We could argue that not only is this hypothetical future free image of Wilson unlikely to materialize, but it may very well not capture him as he looked during the event. No doubt he'll probably lay low for the forseeable future, he may grow a beard, etc. So one way to look at it is that Wilson, as he was during the event, is in fact a not reasonably replacable historic image. Compare this context with say a movie star with a career that spans many years. If we don't get a picture of him today, he's likely to be out and about still making movies and appearing at events in the future, not to mention his notability is not tied to one particular moment in time. Very different context than Wilson here. I'm not looking for a "you can always try it and see how it goes". I'm looking for a consensus that a "what he looks like" image of Wilson is a valid application of fair-use and while stretching WP guidelines, doesn't necessarily run afoul of them.&ndash;&nbsp;[[User:Jbarta|JBarta]] ([[User talk:Jbarta#top|talk]]) 18:55, 8 December 2014 (UTC)
+:::::Actually, a re-read of [[Wikipedia:Replaceability_of_fair-use_images#Living_people]] (thank-you Gaijin42) makes me think a photo of Wilson is well within the guidelines simply as a "not reasonably replaceable image of a living person". Add to that the idea of his notability being tied to one moment in time, and it's starting to look like a pretty solid case. No? Again, I'm looking for a consensus on that point rather than a "try it and see how it goes". &ndash;&nbsp;[[User:Jbarta|JBarta]] ([[User talk:Jbarta#top|talk]]) 19:25, 8 December 2014 (UTC)
+
+: I disagree with that choice of Michael Brown's photo, for several reasons. One reason is that is only shows his face. In the context of this article, I believe it is important to see his physical size (i.e., his body/frame/physique). Thanks. [[User:Joseph A. Spadaro|Joseph A. Spadaro]] ([[User talk:Joseph A. Spadaro|talk]]) 19:22, 8 December 2014 (UTC)
+::Can you point to any images you would prefer? &ndash;&nbsp;[[User:Jbarta|JBarta]] ([[User talk:Jbarta#top|talk]]) 19:28, 8 December 2014 (UTC)
+
+::: No, I don't have any access to such photos. And I don't particularly understand (or follow) all of the intricacies of the copyright/fair use rules, etc., as discussed above. Nonetheless, I disagree with this particular proposed photo. For the reason stated above, and for other reasons as well. I am sure that I have seen many photos of Brown in the news and on the internet, etc., over the past few months. I will see if I can point one out in particular. Thanks. [[User:Joseph A. Spadaro|Joseph A. Spadaro]] ([[User talk:Joseph A. Spadaro|talk]]) 19:32, 8 December 2014 (UTC)
+
+:::: Here is one photo: [http://www.bing.com/images/search?q=michael%20brown%20missouri%20&qs=n&form=QBIR&pq=michael%20brown%20missouri%20&sc=8-23&sp=-1&sk=#view=detail&id=70EF2F07F28C8C3A728820D8683ACDAB3256EB25&selectedIndex=3]. And I thought that I had seen this photo in a not-cropped version, showing his full-length body shot. [[User:Joseph A. Spadaro|Joseph A. Spadaro]] ([[User talk:Joseph A. Spadaro|talk]]) 19:37, 8 December 2014 (UTC)
+:::::Even if you have a full body shot, unless he's standing next to someone much smaller, you probably won't get a true sense of his size. And even if you did get such a photo, people will come out of the woodwork screaming that we're trying to portray him as a "big black monster". I'm thinking maybe it should be a neutral sort of image that no one has much of a problem with. Then again, he was a big dude and that certainly plays a part in the narrative. &ndash;&nbsp;[[User:Jbarta|JBarta]] ([[User talk:Jbarta#top|talk]]) 19:55, 8 December 2014 (UTC)
+::::::People can visualize 6'4" 300 lbs. without a photo. Unless we feel it useful to show that his build was more that of a lineman than a linebacker (I don't, particularly). &#8209;&#8209;[[User:Mandruss|<span style="color:#8E8278;">'''''Mandruss'''''</span>]]&nbsp;[[User talk:Mandruss|<span style="color:#AAA;">&#9742;</span>]] 20:02, 8 December 2014 (UTC)
+:::::: I think the proposed photo by JBarta is just fine, as it is the one that was used by most sources. Go head and add it. - [[User:Cwobeel|<span style="color:#339966">Cwobeel</span>]] [[User_talk:Cwobeel|<span style="font-size:80%">(talk)</span>]] 20:36, 8 December 2014 (UTC)
+:::::: To counteract Spadaro's comment, we are not showing a full body shot of Wilson who is 6' 4" either. - [[User:Cwobeel|<span style="color:#339966">Cwobeel</span>]] [[User_talk:Cwobeel|<span style="font-size:80%">(talk)</span>]] 20:38, 8 December 2014 (UTC)
+
+{{u|JBarta}} Regarding your question above about Wilson and replacability, I do not think the photo serves any purpose in the article that qualifies under NFCC. What he looked like in general is not a subject that is discussed in this article. Relative sizes between Brown and Wilson may be relevant, but the photos in question do not show that. Your proposed justification would basically apply to any photo of any person for almost any article, it renders the restriction meaningless. If NFCC had an exception for "this photo has been widely used by news media for this story" I would support that, and would perhaps support a change to NFCC to create such an exception, but as the policy currently stands, I think its pretty clear generic photos of Wilson do not make the cut. [[User:Gaijin42|Gaijin42]] ([[User talk:Gaijin42|talk]]) 20:45, 8 December 2014 (UTC)
+: Agree. The photo showing the redness on the face, relates specifically to the investigation and thus it can squeeze through (hardly,IMO) under NFCC. A generic photo of Wilson would not. - [[User:Cwobeel|<span style="color:#339966">Cwobeel</span>]] [[User_talk:Cwobeel|<span style="font-size:80%">(talk)</span>]] 20:48, 8 December 2014 (UTC)
+::"What he looked like in general isn't important" could be similarly argued for ''any'' person who is dead, yet has a fair use photo in their article. By my reading of the guidelines, it's not the importance that is important, but whether the photo is reasonably replaceable. If one agrees that a photo of Darren Wilson (especially capturing him at this moment in time) is not reasonably replaceable to an extent similar to a person who has died, then I would think the guideline would apply to Wilson as well as a person who has died. It's not like Wilson is going to be out posing for photos at the next Fergson Community Days or anything. &ndash;&nbsp;[[User:Jbarta|JBarta]] ([[User talk:Jbarta#top|talk]]) 21:00, 8 December 2014 (UTC)
+:::Wikipedia works in hypotheticals quite often. [[WP:V]] has [[WP:V#Access_to_sources]] for example. (Its in a physical library in Peru in a village only accessible by foot. Doesn't mean it isn't verifiable. ) There is a zero percent chance of free photos of Brown being taken in the future. I can come up with many ways we could have photos of Wilson in the future. (someone catches him in public, federal evidence released, federal charges, cspan testimony) etc. The main point that its tripping you up on replacability is that you have not stated how a photograph of him at the time is of particular encyclopedic value to justify the copyright issues vs a hypothetical image of him from the future. What does his "look" at that moment in time illustrate for the article? His skin tone? his physical fitness? We discuss none of this in the article, therefore illustrating it is not adding anything. In any case, the general policy won't get changed here. As I said feel free to try, but I have seen literally hundreds of photos go down in flames on the same type of reasoning. And fair warning I would !vote as I have indicated here (although I certainly don't make the consensus alone). [[User:Gaijin42|Gaijin42]] ([[User talk:Gaijin42|talk]]) 21:09, 8 December 2014 (UTC)
+
+::::On the issue of having a photo of him at this time and its replacabiliy. Imagine for a minute an article about a famous fight between two boxers back in the 1970's. You show each boxer... one a contemporaneous photo, the other forty years later all crippled up hunched over a cane because we can't find a free image of that boxer from back in the 1970s. The article is about the fight in the 1970's. The recent image of the one fighter arguably has little to do with the fight. It's not the same person that was in the fight. The same replacabilty concern exists with Darren Wilson, only the circumstances are less extreme and we're at the beginning of not having an image of him rather than far down the road. &ndash;&nbsp;[[User:Jbarta|JBarta]] ([[User talk:Jbarta#top|talk]]) 21:33, 8 December 2014 (UTC)
+
+:::Per NPOV I don't see how we could justify a photo of one without a photo of the other. A photo would serve no purpose other than to personalize the subject for the reader. If you think we've seen battles here to date, just make the popcorn and add Brown without Wilson. We have the shot of Wilson's cheek, but that's not equivalent to a full face shot, with eye contact, in the subject's bio section (which I presume is where Brown's photo would go). &#8209;&#8209;[[User:Mandruss|<span style="color:#8E8278;">'''''Mandruss'''''</span>]]&nbsp;[[User talk:Mandruss|<span style="color:#AAA;">&#9742;</span>]] 21:19, 8 December 2014 (UTC)
+
+* [[User:Jbarta]] asked me to comment here.
+: Wilson: This person is still alive. Jbarta seems to be concerned that Wilson may look very different when a free image is created. However, I note that the event took place only four months ago. It is therefore obvious that the person ''currently'' looks more or less the same as he did when this event took place. There is a potential that someone might take a photo of him tomorrow, next week or in January, and that photograph would then serve as a free replacement. It is important to note that [[WP:NFCC#1]] disallows non-free content if free content ''can be created'', and it is perfectly possible to take photos of him for the moment. The image is therefore replaceable, at least for the moment. If, after 40 years, it turns out that there is still no one who has taken a free photo of him, things may be different and he may look a lot different. [[WP:NFCC#1]] allows non-free images in some situations if the person has changed a lot from the time when he became famous, but non-free images are not allowed in all such situations. It may be useful to point out that a similar situation (a child actor active in the 1990s) currently is being discussed at [[Wikipedia:Deletion review/Log/2014 December 3|deletion review]].
+: Brown: This person is dead, so non-free images of him are not replaceable. The image proposed by Jbarta, [http://media4.s-nbcnews.com/i/newscms/2014_33/614086/140812-michael-brown-1338_8c5ad41dd423c28ed02e37e39222844e.jpg], looks like an image of children at an amusement park or some similar kind of place. It looks as if Brown could easily be at about the same age as the children in the background. However, it says that he was 18 at the time of his death. Is this a 10-year-old photo or something? If Jbarta is concerned that the photo of Wilson must be contemporary, then why does {{gender:Jbarta|he|she}} think that the photo of Brown doesn't need to be contemporary? I suspect that this photograph isn't suitable for the article. However, I don't know what other photographs, if any, would be suitable. I am also not sure if it is necessary to include a photograph of him in this article per [[WP:NFCC#8]]. I believe that there have been other discussions about murdered people at FFD, but I don't remember the outcome.
+: [[Shooting of Trayvon Martin]]: Jbarta mentioned this article because this article also contains non-free pictures. This article seems to have problems, see [[Wikipedia:Files for deletion/{{#time:Y F j|00:19, 10 December 2014 (UTC)}}#Pictures of Trayvon Martin]]. --[[User:Stefan2|Stefan2]] ([[User talk:Stefan2|talk]]) 00:19, 10 December 2014 (UTC)
+::On the topic of Brown's age in [http://media4.s-nbcnews.com/i/newscms/2014_33/614086/140812-michael-brown-1338_8c5ad41dd423c28ed02e37e39222844e.jpg this] photo you'll notice the bit of beard on his chin. It's the same as [http://www.google.com/imgres?imgurl=http%3A%2F%2Fbloximages.newyork1.vip.townnews.com%2Fstltoday.com%2Fcontent%2Ftncms%2Fassets%2Fv3%2Feditorial%2Ff%2Fed%2Ffed5e621-f0a8-5baa-a11a-c748e5dc65cd%2F5407e41926d2b.preview-620.jpg&imgrefurl=http%3A%2F%2Fwww.stltoday.com%2Fnews%2Flocal%2Fcrime-and-courts%2Fofficial-autopsy-shows-michael-brown-had-close-range-wound-to%2Farticle_e98a4ce0-c284-57c9-9882-3fb7df75fef6.html&h=501&w=620&tbnid=-nkr8uIvwcLzZM%3A&zoom=1&docid=HhK_zehdqKbgJM&ei=2JWHVJWjKYKqgwTdwIGACA&tbm=isch&ved=0CDUQMygCMAI&iact=rc&uact=3&dur=3358&page=1&start=0&ndsp=14 this] photo where I assume he's graduating high school. I think the photo I chose isn't more than a year or so old. At any rate, I'm not firmly fixed on any photo. It doesn't entirely matter to me. No matter what photo is chosen there will be those who see some sort of suspicious reason for the choice.
+::And while it's "possible" someone could snap an image of Wilson in the near future and upload free it here, I'd say it's highly unlikely. I'd also like to point out again that Wilson fits ''precisely'' the criteria set out in the 'May not be reasonably replaceable' section of [[Wikipedia:Replaceability_of_fair-use_images#Living_people]]. He's the poster boy for not likely to get a free picture of him anytime soon. The ''only'' thing he's likely to show himself for is a possible lawsuit from Brown's family... but I suspect he won' be out front signing autographs. &ndash;&nbsp;[[User:Jbarta|JBarta]] ([[User talk:Jbarta#top|talk]]) 00:51, 10 December 2014 (UTC)
+:::I just noticed [[Wikipedia:Replaceability_of_fair-use_images]] is a failed proposal. It carries zero weight. My argument just took a shit. &ndash;&nbsp;[[User:Jbarta|JBarta]] ([[User talk:Jbarta#top|talk]]) 01:17, 10 December 2014 (UTC)
+::::Yes, [[WP:REFU]] appears to be a failed proposal. I obviously overlooked the beard on the photograph. --[[User:Stefan2|Stefan2]] ([[User talk:Stefan2|talk]]) 23:06, 10 December 2014 (UTC)
+::{{re|Stefan2}} You probably missed the goatee, Brown doesn't look 8 years old in that photo. Judging by the [http://documents.latimes.com/federal-autopsy-michael-brown/ federal autopsy report's description], the photo is probably recent, although it could use a bit of cropping. Trayvon Martin's photos aren't relevant to the discussion; as of when I wrote this there hasn't been any consensus regarding those images. That leaves Wilson's images. It's possible that a photo of Wilson might be released publicly, so NFCC#1 probably doesn't work here. The only nonfree image that's irreplaceable is that of Wilson's injuries, except they're probably not appropriate for the short biography. Those are better suited for descriptions of the shooting. I think that posting only an image of Brown with the biographies would violate [[WP:IMPARTIAL|impartiality]], so I don't think their photos should be posted in the article. --[[User:RAN1|RAN1]] ([[User talk:RAN1|talk]]) 02:00, 10 December 2014 (UTC)
+
+== "baseline position" on diagram ==
+
+{{u|Cwobeel}} I think it may be helpful to include a spot on the diagram for the "baseline" position where all the measurements are from. Note that this point is not a [[WP:SYNTH]] issue derived by us from the witness testimony/sources, this is the "zero" point for the diagram measurements, per the crime scene photographers/investigators, and that point is explicitly marked on the original diagram.
+
+As an aside, the quotes below has bearing on the "Crime Scene" discussion above, as we have the police specifically referring to this location as a crime scene.
+
+* [http://www.washingtonpost.com/news/volokh-conspiracy/wp/2014/12/08/the-overlooked-audiotape-of-the-michael-brown-shooting/] (See figure 2 cone photo)
+
+* https://s3.amazonaws.com/s3.documentcloud.org/documents/1370513/grand-jury-volume-24.txt
+**And why is it that this cone was placed at that location on Canfield Drive? A As best we could tell based off of witness accounts, that would have been the furthest point east that Michael Brown would have went to. So that intersection of roughly Coppercreek Court and Canfield Drive. or Canfield Road? [...]That was the point that they had made reference to and so we used that as the furthest eastern point to go to.
+**In terms of on August 9th, one of our crime scene detective's jobs was to '''take various measurements of items of evidence at the scene. And he used what starts as a baseline at Coppercreek Court and Canfield Court, and used this baseline here and measured items during the entire, I should say, within the entire crime scene and those items were documented in a diagram that he completed with specific measurements, feet down to inches.''' So when we went back out there to take those 360 degree panoramic shots, we based, obviously, Coppercreek Court and Canfield Drive is subjective in the sense that we are basing that off of where, again, witnesses were telling us is the furthest point east that Michael Brown would have went So that is a subjective point that we use that intersection, northwest corner of that intersection right there.
+* Witness 14 http://graphics8.nytimes.com/newsgraphics/2014/11/24/ferguson-evidence/assets/interviews/interview-witness-14-01.pdf
+** "the boy was still standing on the, on the, on the partially on the parking lot and on the grass. 'Cause he had ran that way. The officer came out came around got into his stance. And he said ?stop.? Because the boy looked up at him and he took two steps, about two or three steps.
+** When [Brown] turned around he had about one foot on the grass and one on the driveway.
+* Dorian
+** [Brown] was barely on the sidewalk, he was barely on the sidewalk to the parking lot. He was going towards this building. I presume that’s the way he was running. He wasn’t really all the way on the driveway when the . . . shot went off, and he turned around, and he was in the street
+[[User:Gaijin42|Gaijin42]] ([[User talk:Gaijin42|talk]]) 16:48, 8 December 2014 (UTC)
+
+Do we have the exact position of the baseline cone? I don't see it on the police report diagram. Is it on the legend list? - [[User:Cwobeel|<span style="color:#339966">Cwobeel</span>]] [[User_talk:Cwobeel|<span style="font-size:80%">(talk)</span>]] 20:40, 8 December 2014 (UTC)
+::{{u|Cwobeel}} It is at 0 feet 0 inches for both directions. on the diagram (text at bottom right corner saying "Baseline starting at 0'0" ) with a line pointing to the corner. On the legend the very bottom says "baseline runs east to west on north side of canfield with 0'0" starting at copper creek ct." The testimony indicates why they chose that spot as the baseline, and that the cone in the photograph is that point. [[User:Gaijin42|Gaijin42]] ([[User talk:Gaijin42|talk]]) 20:58, 8 December 2014 (UTC)
+::: Added baseline as suggested. Also added the cross street Copper Creek Ct. - [[User:Cwobeel|<span style="color:#339966">Cwobeel</span>]] [[User_talk:Cwobeel|<span style="font-size:80%">(talk)</span>]] 21:45, 8 December 2014 (UTC)
+::::Nice. Suggestions: 1. Extend the bottom curb to the right edge of the image, to show that Copper Creek does not cross Canfield. 2. Is there a little too much space between the C and T in CT., or is that just more flaky rendering? 3. If there is any way to establish the distance between the left edge and the baseline, I can use that to fine-tune our coordinates, using the distance measuring tool in Google Maps. &#8209;&#8209;[[User:Mandruss|<span style="color:#8E8278;">'''''Mandruss'''''</span>]]&nbsp;[[User talk:Mandruss|<span style="color:#AAA;">&#9742;</span>]] 21:55, 8 December 2014 (UTC)
+::::: {{Done}} . Thanks for the feedback. - [[User:Cwobeel|<span style="color:#339966">Cwobeel</span>]] [[User_talk:Cwobeel|<span style="font-size:80%">(talk)</span>]] 22:36, 8 December 2014 (UTC)
+
+:::::{{u|Mandruss}} The legend of the original diagram includes the exact distance in feet and inches to every other item from the baseline, so just pick the furthest left item? (looks like its one of the casings by the car) [[User:Gaijin42|Gaijin42]] ([[User talk:Gaijin42|talk]]) 22:15, 8 December 2014 (UTC)
+::::::Ok, I tweaked the coords to a position halfway between items 4 and 20, or about 105 ft NW of the baseline (they moved about 20 ft SE). &#8209;&#8209;[[User:Mandruss|<span style="color:#8E8278;">'''''Mandruss'''''</span>]]&nbsp;[[User talk:Mandruss|<span style="color:#AAA;">&#9742;</span>]] 22:28, 8 December 2014 (UTC)
+::::::Obsessively checking my work, I came up with 118 ft NW of the baseline, and the coords were already correct. I could be taking this accuracy thing too far, or perhaps someone as anal as I am would care to check my work. Item 4: 210' from baseline. Item 20: 26'7" from baseline. 26'7" = roughly 26.6 ft. ((210 - 26.6) / 2)) + 26.6 = 118.3. &#8209;&#8209;[[User:Mandruss|<span style="color:#8E8278;">'''''Mandruss'''''</span>]]&nbsp;[[User talk:Mandruss|<span style="color:#AAA;">&#9742;</span>]] 22:56, 8 December 2014 (UTC)
+::::::I vote accuracy too far. A few feet certainly won't matter for the purposes of the infobox. [[User:Gaijin42|Gaijin42]] ([[User talk:Gaijin42|talk]]) 22:59, 8 December 2014 (UTC)
+:::::::Thought so. &#8209;&#8209;[[User:Mandruss|<span style="color:#8E8278;">'''''Mandruss'''''</span>]]&nbsp;[[User talk:Mandruss|<span style="color:#AAA;">&#9742;</span>]] 23:01, 8 December 2014 (UTC)
+
+As for the other witnesses narratives, that would be a good addition, as it explains the position of the casings and other evidence when the final shots were fired. - [[User:Cwobeel|<span style="color:#339966">Cwobeel</span>]] [[User_talk:Cwobeel|<span style="font-size:80%">(talk)</span>]] 21:46, 8 December 2014 (UTC)
+
+{{u|Cwobeel}} How are you making the SVG? Are you just eyeballing positions, or do you have it gridded out so you can convert from the actual feet/inches to the right pixels in some deterministic way? [[User:Gaijin42|Gaijin42]] ([[User talk:Gaijin42|talk]]) 22:10, 8 December 2014 (UTC)
+: Neither. I used the diagram of one of the media sources as an underlay, and positioned the evidence items accordingly. As the media sources did not have the baseline cone, that one I added by eyeballing. If we want to be scientific about it, I will have to re-do the position of each item using the measurements and converting the positions to the XY grid in Omnigraffle. Pretty laborious I'd say. - [[User:Cwobeel|<span style="color:#339966">Cwobeel</span>]] [[User_talk:Cwobeel|<span style="font-size:80%">(talk)</span>]] 22:29, 8 December 2014 (UTC)
+
+Can you explain how this is not original research or synthesis? You're converting a not-to-scale diagram to a scale diagram using information from two different primary sources. The article is in poor condition, with many outdated sections, far too many references, and duplicate information in several places. There are also far, far too many statements of the type "A B of XYZ News stated on August 21 that..."
+
+For comparison, [[2014 Grozny clashes]] has a better balance of opinion and fact, and an appropriate use of citations. That's just a random news article that I like the style of.
+
+Does this article require mediation? I haven't done that before, but I think there are issues that need to be addressed. I mean ownership, if it's not clear. [[User:Roches|Roches]] ([[User talk:Roches|talk]]) 05:06, 9 December 2014 (UTC)
+
+:From [[WP:Citing sources]]: ''Wikipedia's Verifiability policy requires inline citations for any material challenged or likely to be challenged, and for all quotations, anywhere in article space. However, editors are advised to provide citations for all material added to Wikipedia; any unsourced material risks being unexpectedly challenged or eventually removed.''
+
+:Based on the above, your concerns about too many references are unfounded and clearly unsupported by WP content guidelines.
+
+:I honestly don't see where you're getting the ownership claim, but please be specific and back it up.
+
+:I'll let others respond to your concerns about the diagram. &#8209;&#8209;[[User:Mandruss|<span style="color:#8E8278;">'''''Mandruss'''''</span>]]&nbsp;[[User talk:Mandruss|<span style="color:#AAA;">&#9742;</span>]] 05:14, 9 December 2014 (UTC)
+::I don't think Roches was referring to there being too many citations, but rather too many in-text attributions.
+::Regarding ownership, I think it's more a matter of there being some very active editors. This can result in there being misinformation and bias that would take more time than most have to correct it, but I don't see how that can be avoided, considering there is open editing. All I can say is to hang in there and do what you can.
+::Regarding the scale of the diagram, it looks like the same scale as the diagram in this source [http://www.stltoday.com/map-the-michael-brown-shooting-scene/html_0c861d0f-9a56-5769-8c16-d4b137af96e1.html]. In fact, the identifications and placement of the individual pieces of evidence look about the same too. If something is added to the diagram that is not supported by a reliable source, or it highlights something that is not specifically mentioned in a reliable source, then that might be a problem. So far I don't know of that happening here. Items that are the result of calculations can be questioned, but then there is the policy [[WP:CALC]] that allows some, and whether or not it is suitable for an article can be determined by consensus. --[[User:Bob K31416|Bob K31416]] ([[User talk:Bob K31416|talk]]) 13:01, 9 December 2014 (UTC)
+::On second thought it doesn't look like the same scale. [https://en.wikipedia.org/w/index.php?title=Shooting_of_Michael_Brown&oldid=637281752#Shooting_scene_evidence our article] [http://www.stltoday.com/map-the-michael-brown-shooting-scene/html_0c861d0f-9a56-5769-8c16-d4b137af96e1.html source] Maybe we need take out a ruler and check it and then add a note to the diagram, "not to scale", or redraw the diagram, using the source's diagram as a model for the scale. I notice that the source's diagram uses an actual picture of the street and surroundings on which it overlays the items in the crime scene. --[[User:Bob K31416|Bob K31416]] ([[User talk:Bob K31416|talk]]) 13:57, 9 December 2014 (UTC)
+::Update: I just now added the above source to the diagram. --[[User:Bob K31416|Bob K31416]] ([[User talk:Bob K31416|talk]]) 14:10, 9 December 2014 (UTC)
+:::My understanding is that the plotting of all points in the diagram used in the article was down to the inches from the baseline point based on the data published in that measurement table. If the scale in the diagram is questionable, it may be good for us to add a scale bar with 10-foot increment along the bottom part of the diagram. [[User:Z22|Z22]] ([[User talk:Z22|talk]]) 14:23, 9 December 2014 (UTC)
+
+:::Bob, I disagree that we need to inform the reader that the scale of our diagram is a little different from that of the source, for the sake of improved readability. All that matters is that the distance ''proportions'' are the same, and a "not to scale" statement could easily be interpreted as meaning that they are not. I think we're better off without it. &#8209;&#8209;[[User:Mandruss|<span style="color:#8E8278;">'''''Mandruss'''''</span>]]&nbsp;[[User talk:Mandruss|<span style="color:#AAA;">&#9742;</span>]] 02:51, 10 December 2014 (UTC)
+
+:About the diagram, as per [[WP:OI]], "Original images created by a Wikipedian are not considered original research, so long as they do not illustrate or introduce unpublished ideas or arguments, the core reason behind the NOR policy." This diagram was created from published data [http://graphics8.nytimes.com/newsgraphics/2014/11/24/ferguson-evidence/assets/ferguson/photos/2014-43984/photos-7/picture2.png here] and [http://graphics8.nytimes.com/newsgraphics/2014/11/24/ferguson-evidence/assets/ferguson/photos/2014-43984/photos-7/capture.png here], same document. There is no unpublished ideas or arguments included in the diagram, so it is not an original research, but it is just an original image. Also it is not synthesis because it is largely based on that same source. Other references listed next to the diagram were to show that same idea/argument has been published by multiple reliable sources. [[User:Z22|Z22]] ([[User talk:Z22|talk]]) 13:32, 9 December 2014 (UTC)
+
+Per the arguments above by Z22 and others, the diagram is not OR. Can it be improved? Sure, there is always that possibility. As for the state of the article referred to by Roches, same applies. It can always be improved, but generalizations don't help here. If there are specific things that you want addressed, join in and do the [[WP:EDITING|hard work]]. You may get reverted and challenged, but that is the way of this land. Collaborative editing is hard work and requires patience. - [[User:Cwobeel|<span style="color:#339966">Cwobeel</span>]] [[User_talk:Cwobeel|<span style="font-size:80%">(talk)</span>]] 8:39 am, Today (UTC−6)
+
+== Collaborating, OR, and inline attributions==
+Cwobeel, you have mentioned [[WP:OR]] three times since the talk page was last archived, and none of those instances were legitimately original research. I don't think the diagram is OR, actually, but it seemed inconsistent, for example, that you'd estimate the position of the baseline.
+
+I'd like to contribute in a collaborative and positive way, but that will require the active editors to assume competency on my part. I would use fewer in-line citations, I would use primary sources to some extent, and I would have to remove existing content in the process of editing it. I can't justify every change I make, but all the changes I make are justifiable. So, if I remove content, replace it, and if I make a change that needs justification, please ask for justification. [[User:Roches|Roches]] ([[User talk:Roches|talk]]) 15:46, 9 December 2014 (UTC)
+
+:Again, you call for fewer inline citations, but this time you're doing it without responding to the guideline excerpt that clearly says you're wrong on that. If you're in fact referring only to in-text attributions, as Bob said, then please use the correct term and say so.
+
+:If you want to work collaboratively on this article like the rest of us, I don't think anyone here will oppose that. We can use all the collaborative help we can get. Doing things like asserting, quite incorrectly, that your disagreement voids a consensus is not collaborative. &#8209;&#8209;[[User:Mandruss|<span style="color:#8E8278;">'''''Mandruss'''''</span>]]&nbsp;[[User talk:Mandruss|<span style="color:#AAA;">&#9742;</span>]] 17:26, 9 December 2014 (UTC)
+
+:: I second Mandruss comments about consensus. {{yo|Roches}} What I am puzzled about is your assertion that you want to {{tq|use primary sources to some extent}}. Can you clarify what do you mean by that? As discussed in [[Wikipedia_talk:Identifying_reliable_sources#Source_bombing]], while primary sources are not forbidden, most materials in articles are expected to be drawn from secondary sources. - [[User:Cwobeel|<span style="color:#339966">Cwobeel</span>]] [[User_talk:Cwobeel|<span style="font-size:80%">(talk)</span>]] 19:12, 9 December 2014 (UTC)
+
+:: A point about in-text attributions. These are needed in ''each and every case'' in which an opinion is expressed. - [[User:Cwobeel|<span style="color:#339966">Cwobeel</span>]] [[User_talk:Cwobeel|<span style="font-size:80%">(talk)</span>]] 19:15, 9 December 2014 (UTC)
+
+I'm referring to [[WP:BUNDLING]], not to any removal of inline citations or in-text attributions that are required. It didn't occur to me that there was even a possibility of someone thinking I meant removing references that needed to be there.
+
+About consensus: That was in reply to an assertion that I was deliberately removing content. The idea was that it had been there for a long time, and so it should stay. I thought that it needed to be updated, and that's all. If I was really trying to do something incorrect there, I would have undid the revert, and I didn't.
+
+About using primary sources to some extent: I really just meant what I said here (and everywhere else, for that matter). There are aspects of this case where primary sources are the best ones. An example would be the autopsy report, which is the work of a medical professional and makes all of the appropriate conclusions (and none of the inappropriate ones), as opposed to an article about the autopsy.
+
+In general: I don't have a lot of Wikipedia edits, but I've been using the site almost since the beginning. I've written and edited a substantial amount of scientific text, some of which is published. This does not mean I'm better than anyone else, but it's difficult for me to understand the hostility towards my comments here. (I don't mean replies to things that were already hostile.) It's even more difficult to understand the hostility I got when I tried to edit the article.
+
+I have posted to the admin noticeboards incident section. I tried to resolve this with the last post, but all that happened is that I got told I wasn't being collaborative. I can't see any reason why I was being uncollaborative that does not involve altering someone's content.
+
+[[User:Roches|Roches]] ([[User talk:Roches|talk]]) 20:35, 9 December 2014 (UTC)
+
+: I can understand your frustration. Expert editors sometimes have difficulties adapting to the realities of Wikipedia editing. A couple of good essay on the subject are [[WP:EXPERT]] and [[WP:EXR]] - [[User:Cwobeel|<span style="color:#339966">Cwobeel</span>]] [[User_talk:Cwobeel|<span style="font-size:80%">(talk)</span>]] 20:46, 9 December 2014 (UTC)
+
+The problem with [[WP:PRIMARY]] sources is that they can only be used for "straightforward, descriptive statements of facts that can be verified by any educated person with access to the primary source but without further, specialized knowledge" and "Any interpretation of primary source material requires a reliable secondary source for that interpretation". As can be seen in the "shell casing pattern" discussion above, deciding what is or isn't analysis vs objective fact is often itself controversial per your statement "''Objective facts from a primary source are not original research, and synthesis of objective facts when only one conclusion is possible is not speculation''". Clearly there is disagreement about how many conclusions are possible for almost all the facts of this case both on wiki and in the real world. Further, your specific example for wanting primary sources is itself problematic "''An example would be the autopsy report, which is the work of a medical professional and makes all of the appropriate conclusions (and none of the inappropriate ones), as opposed to an article about the autopsy''" By definition you are stating that your analysis of the primary source disagrees with the secondary source analysis of that same source. You may be right, you may be wrong, but policy prohibits any such analysis all together. There are plenty of places all of us disagree with various secondary sources, and think they got it wrong. The answer to that is to find an equally reliable secondary source that you think got it right and put it in, not just delete what we disagree with, or put in our own analysis. To some degree those restrictions are less ''on the talk page'' where we can briefly discuss why we think a particular fact or analsysis is relevant and worthy for inclusion in the article. [[User:Gaijin42|Gaijin42]] ([[User talk:Gaijin42|talk]]) 21:06, 9 December 2014 (UTC)
+: I couldn't have argued it better. - [[User:Cwobeel|<span style="color:#339966">Cwobeel</span>]] [[User_talk:Cwobeel|<span style="font-size:80%">(talk)</span>]] 21:29, 9 December 2014 (UTC)
+
+Please don't be offended by the admin noticeboard post, at least not to a great extent. Things were gradually building up, and I held back from resorting to the admins for a while.
+
+The autopsy report may not be the best example, because that section is okay. I wouldn't analyze a primary source; there is always a need and a place for secondary sources. I just don't think secondary sources are necessarily better. Maybe a witness account is a better example; it could be quoted directly ''and supported by secondary sources'' rather than using several sources to write the account. [[User:Roches|Roches]] ([[User talk:Roches|talk]]) 23:14, 9 December 2014 (UTC)
+
+== Two witnesses found dead? ==
+
+According to this source, two witnesses, Shawn Gray, and DeAndre Joshua were found dead under suspicious circumstance. No idea if the source is reliable, but I doubt this is a made up story. [http://www.telesurtv.net/english/news/Another-Witness-in-Michael-Brown-Shooting-Found-Dead-20141208-0044.html]. - [[User:Cwobeel|<span style="color:#339966">Cwobeel</span>]] [[User_talk:Cwobeel|<span style="font-size:80%">(talk)</span>]] 23:33, 8 December 2014 (UTC)
+: After digging in a bit, it seems that there is a conspiracy theory garnering steam on the interwebs, that witnesses are being targeted. But reports I am seeing about the death of Shawn Gray, do not say anything about him being an witness in Brown's case. [http://www.stltoday.com/news/local/crime-and-courts/death-of-man-found-in-river-des-peres-in-st/article_f2e9ab3d-a536-573a-b85f-9d7cac03ed17.html] - [[User:Cwobeel|<span style="color:#339966">Cwobeel</span>]] [[User_talk:Cwobeel|<span style="font-size:80%">(talk)</span>]] 23:38, 8 December 2014 (UTC)
+
+::Joshua was the one found in the burned car. We have him in the unrest article with no connection to this case other than location. I don't see any reason to include random Internet conspiracy theories. &#8209;&#8209;[[User:Mandruss|<span style="color:#8E8278;">'''''Mandruss'''''</span>]]&nbsp;[[User talk:Mandruss|<span style="color:#AAA;">&#9742;</span>]] 23:45, 8 December 2014 (UTC)
+::: Neither do I. - [[User:Cwobeel|<span style="color:#339966">Cwobeel</span>]] [[User_talk:Cwobeel|<span style="font-size:80%">(talk)</span>]] 23:49, 8 December 2014 (UTC)
+
+== Anonymous released wrong name ==
+
+All right, here's a tricky issue.
+
+I went and tracked down the purportedly-[[Anonymous (group)]]-affiliated Twitter account's release of a police officer's name [[Shooting_of_Michael_Brown#Third_parties|mentioned in the article]], no doubt getting myself on all kinds of governmental watchlists in the process. It's not easy to find, but the name they released was '''not''' that of Darren Wilson. (Nobody type it here!) This fact seems inclusion-worthy despite (or, per [[WP:Recent]], particularly because) being out of the headlines, but the only RS I can find who have reported on this error mention the released incorrect name themselves, and it would be unethical and probably prohibited by [[WP:BLP]] to link to them.
+
+Should we just let this info fade into the Net? People will want to check the record next time Anonymous [[doxing|doxes]] someone in a high-profile situation like this, but maybe that's not our problem.
+
+Apologies for not posting links to what I'm talking about, but I shouldn't for obvious reasons. [[User:FourViolas|FourViolas]] ([[User talk:FourViolas|talk]]) 01:14, 9 December 2014 (UTC)
+
+:Are you talking about [[Shooting_of_Michael_Brown#Third_parties|this (fifth bullet, next-to-last sentence)]]? &#8209;&#8209;[[User:Mandruss|<span style="color:#8E8278;">'''''Mandruss'''''</span>]]&nbsp;[[User talk:Mandruss|<span style="color:#AAA;">&#9742;</span>]] 01:17, 9 December 2014 (UTC)
+
+::That's the section I'm talking about, but not the citation. That one is from before Wilson's name was released, so all it says is that the police denied the allegation. It might be good enough for this article, though, as it allows readers to infer from the absence of an update saying "...but the police were lying, and it '''was''' Officer [redacted] after all." [[User:FourViolas|FourViolas]] ([[User talk:FourViolas|talk]]) 01:28, 9 December 2014 (UTC)
+
+:::I get you now. And you haven't found a source that says the Anonymous ID was wrong, without reporting the name of the innocent party. In that case, I agree with leaving it at is. &#8209;&#8209;[[User:Mandruss|<span style="color:#8E8278;">'''''Mandruss'''''</span>]]&nbsp;[[User talk:Mandruss|<span style="color:#AAA;">&#9742;</span>]] 01:34, 9 December 2014 (UTC)
+
+== New documents released ==
+
+New material has been released by the prosecutor's office. As I will not have much time today to work on this, maybe others can take a look. [http://www.latimes.com/nation/nationnow/la-na-nn-more-grand-jury-documents-michael-brown-shooting-20141208-story.html] - [[User:Cwobeel|<span style="color:#339966">Cwobeel</span>]] [[User_talk:Cwobeel|<span style="font-size:80%">(talk)</span>]] 20:18, 9 December 2014 (UTC)
+
+:So far the docs seem all over the place. A few supporting brown, a few supporting wilson, one completely off the wall "walk out" one that claimed to personally see Brown on his knees and Wilson shoot him in the head point blank, and then saw/heard 8 more shots into Brown while he was face down, who then stopped the interview when they were told what they were saying didn't match the evidence. Mostly they seem to be all followup interviews asking specific questions after the local interviews. On from the guy Brown was living with that week.[[User:Gaijin42|Gaijin42]] ([[User talk:Gaijin42|talk]]) 20:31, 9 December 2014 (UTC)
+
+:Added above source as LATimes.Documents. It includes a link to the federal autopsy report, and I added that report separately as LATimes.FederalAutopsy. Added mention of the release of the federal autopsy report. &#8209;&#8209;[[User:Mandruss|<span style="color:#8E8278;">'''''Mandruss'''''</span>]]&nbsp;[[User talk:Mandruss|<span style="color:#AAA;">&#9742;</span>]] 20:48, 9 December 2014 (UTC)
+
+== More terse summaries in the witness accounts ==
+
+As there are now a massive amount of witness statements available, I think we need to change how we are doing things in the accounts section. Obviously covering each account in the level of detail we currently have for dozens of additional accounts, and then criticisms of those accounts, would not be viable - it would be multiple standalone articles worth of content. Keeping things the way it is now represents an [[WP:NPOV]] issue as well. I suggest we move to a more [[WP:SUMMARY]] style overall bringing all of the media witnesses together under a [[WP:SUMMARY]] section (as they are mostly saying the same thing), and then a Grand Jury section that discusses the various testimonies again at a high level - Using sources such as the PBS comparison (even with its well known flaws) or the links that {{u|TParis}} pointed out in ANI.
+
+Perhaps the Police/Wilson and Johnson should keep standalone sections, as they are directly involved and therefore their statements have more importance, and have been scrutinized more carefully by the media and other analysts.
+[[User:Gaijin42|Gaijin42]] ([[User talk:Gaijin42|talk]]) 23:26, 9 December 2014 (UTC)
+
+I was saying this, thinking this, and in one case tried doing this, for several days before taking it to ANI. I don't like that I had to take it to ANI because of objections that it would destroy people's work or might constitute original research. There was no critical discussion of any witness that opposed Wilson, and much discussion of discrepancies and flaws in the few accounts that supported it.
+
+I've always thought there should be a section on Wilson's story and a section about the opposing views; I typed that a few days ago, though I'm not sure I posted it. I still think it's the best way to move forward. [[User:Roches|Roches]] ([[User talk:Roches|talk]]) 15:49, 10 December 2014 (UTC)
+
+==POV Issues Regarding Controversy Section==
+
+I pretty much agree with everything that TParis wrote at ani. This article has NPOV issues. The article relies too heavily on the opinions of non-notable commentators and their criticism. The article is also littered with weasel words and phrases like "some legal experts" and terms like "asserted" and "claimed", which are all discouraged by MOS. The controversy section for the grand jury hearing is a prime example of undue weight with the amount of criticism in that section. That table really needs to go too, what is the significance of having that, it's not even true. These jurors were a ''typical grand jury'' that were conducting ''typical'' grand jury business, doing exactly everything listed in the first column, before Wilson's case was given to them, there's no mention of that in the table. The criticism in Wilson's section has weasel phrases like "sources reported" and "other discrepancies" without defining who the sources are or what the other discrepancies are. It also provides no context at all either, like the fact that the grand jury was made aware of these inconsistencies before Wilson even testified. There just seems to be a lot of cherry-picking sources to negatively portray Wilson, law-enforcement officers, prosecutors and the grand jurors.[[User:Isaidnoway|<font face="Times New Roman" color="blue"> '''''Isaidnoway''''' </font>]][[User talk:Isaidnoway|<font face="Times New Roman" color="blue">'''''(talk)'''''</font>]] 02:10, 10 December 2014 (UTC)
+
+:I think the reason for at least one occurrence of "some legal experts" is that the source says "some legal experts". Obviously we can't say it in Wikipedia's voice, so are you suggesting it should be left out of the article because the source declined to identify the legal experts? I would disagree. As for "other discrepancies", if those were elaborated it would be attacked as undue weight, so it appears there's no way to include such material at all. It's either undue weight or weasel words. I'll abstain from discussion about the table for lack of competence in that area. &#8209;&#8209;[[User:Mandruss|<span style="color:#8E8278;">'''''Mandruss'''''</span>]]&nbsp;[[User talk:Mandruss|<span style="color:#AAA;">&#9742;</span>]] 02:28, 10 December 2014 (UTC)
+
+:First, this has almost nothing to do with {{u|Gaijin42}}'s post in [[#More terse summaries in the witness accounts]] and I've refactored it into a new section (if not, go ahead and undo it). I disagree that this article has NPOV issues. [[WP:NNC|Notability does not apply to content]], and we should instead be looking at due weight. In this case, it seems that the majority of opinions are biased against Wilson, the prosecution team and the grand jury, which is why it's reported so heavily in the article; unless it's out of proportion, there shouldn't be anything wrong with this. Sources that argue to the contrary are present; if there are others, they should be included to keep due weight. The "some legal experts" phrase is a leftover from the [http://www.latimes.com/nation/la-na-ferguson-da-analysis-20141126-story.html LA Times] article, which provided a number of legal opinions. While out of context it may seem like a weasel phrase, the rest of the section references by legal experts mentioned in the source by name, so it really isn't a weasel phrase. Assertions and claims are only weasel words when [[WP:ALLEGED|implying a point is inaccurate]], which is hardly the case here. The table is sourced to NYT, which is why we have it. I don't see what's the problem with having it here, maybe you could clarify? The other two instances are poorly paraphrased: the "sources reported" is actually the Huffington Post's analysis, but the analysis that went into their article was cut out of ours so that'll have to be reworked; there's only one discrepancy reported in the CNN article, so I went ahead and reworded that phrase. At any rate, there doesn't seem to be blatant cherry-picking of POVs as far as I can tell. --[[User:RAN1|RAN1]] ([[User talk:RAN1|talk]]) 03:01, 10 December 2014 (UTC)
+::Once you have summarized and presented information to the reader in an encyclopedic tone - following that up with an endless stream of cherry-picked opinions of non-notable commentators is undue piling on. I completely agree that the majority of the reporting is negative against Wilson and the other entities involved in this case, but that doesn't mean we pack as many negative opinions that we can into a section, or the article, and still claim it's NPOV, because that's not neutral. We should be summarizing and including the most notable opinions or academic opinions, instead of being a depository for negative opinions that don't really impart any encyclopedic information to the reader. The weasel phrases "some legal experts" and "sources reported" is exactly that - weasel phrasing - and should never be used in this article, especially when there are more than enough legal experts identified by name offering legal opinions.[[User:Isaidnoway|<font face="Times New Roman" color="blue"> '''''Isaidnoway''''' </font>]][[User talk:Isaidnoway|<font face="Times New Roman" color="blue">'''''(talk)'''''</font>]] 17:36, 10 December 2014 (UTC)
+:::I really don't think the opinions are cherry-picked unless we're missing pro-Wilson/prosecutor references, and notability really doesn't matter for sources. I took a closer look at the article though, and I noticed that we're quoting a lot of the opinions directly, which is probably compromising [[WP:IMPARTIAL|impartial tone]]. We should neutrally summarize the arguments instead of quoting them, and I think that should fix the POV problem. Btw, "some legal experts" isn't a [[WP:WEASEL|weasel phrase]] when used in the header or (especially) when the legal experts are clarified after the fact. Using that phrase should be ok. "Sources reported" is weasel phrasing, and I'll take the time to reword that sentence later today. --[[User:RAN1|RAN1]] ([[User talk:RAN1|talk]]) 19:33, 10 December 2014 (UTC)
+:::<s>P.S. And now my refactoring's a moot point. Whoops. --[[User:RAN1|RAN1]] ([[User talk:RAN1|talk]]) 19:37, 10 December 2014 (UTC)</s>
+I don't think there was blatant cherry-picking of POVs, but I think there was a desire to represent a greater variety of opinions than was necessary. There are so many opinions from so many sources that it would be much more helpful to avoid arguing why a given source is acceptable despite having issues like weasel words and unnamed sources. We could simply choose sources that don't do that.
+
+In general, I objected to the inclusion of journalists' opinions about the legal issues because there were also several published opinions from real lawyers about the legal issues. In the point where there was a formal statement from the ACLU and an analysis by the Huffington Post, the first source was a much better choice than the other. [[User:Roches|Roches]] ([[User talk:Roches|talk]]) 16:11, 10 December 2014 (UTC)
+
+== Differences between typical grand jury proceedings in Missouri and Wilson's case --should be removed or changed to reflect data and not opinion ==
+
+It should either compare this case with a low profile case or just give the facts of the case. It is copied almost word for word from the the NYT and is not fact but opinion. As there are no references to real data. <small><span class="autosigned">—&nbsp;Preceding [[Wikipedia:Signatures|unsigned]] comment added by [[User:Oceanisle2009|Oceanisle2009]] ([[User talk:Oceanisle2009|talk]] • [[Special:Contributions/Oceanisle2009|contribs]]) 03:12, 10 December 2014 (UTC)</span></small><!-- Template:Unsigned --> <!--Autosigned by SineBot-->
+:Which NYT source are you suggesting is an opinion piece? [[User:Dyrnych|Dyrnych]] ([[User talk:Dyrnych|talk]]) 03:17, 10 December 2014 (UTC)
+:In addition, if it reflects an analysis by (hence opinion of) a New York Times columnist or reporter, it should probably be adequate to simply make sure it is identified as such (inline attribution). Even opinion, when properly identified and attributed to a credible source, is fair content here. <span style="font-family: Gill Sans MT, Arial, Helvetica; font-weight:100;">[[User:Dwpaul|<font color="#006633">Dwpaul</font>]]</span> <sup>''[[User talk:Dwpaul|<font color="#000666">Talk </font>]] ''</sup> 04:20, 10 December 2014 (UTC)
+:: I have no problems with attributing the content to the NYT. - [[User:Cwobeel|<span style="color:#339966">Cwobeel</span>]] [[User_talk:Cwobeel|<span style="font-size:80%">(talk)</span>]] 05:12, 10 December 2014 (UTC)
+:::Well, that solves that. --[[User:RAN1|RAN1]] ([[User talk:RAN1|talk]]) 07:17, 10 December 2014 (UTC)
+::::If the text of the table was copied verbatim, is there a problem with copyright infringement? --[[User:Bob K31416|Bob K31416]] ([[User talk:Bob K31416|talk]]) 11:01, 10 December 2014 (UTC)
+:::::: It was not copied verbatim. You can check and compare. - [[User:Cwobeel|<span style="color:#339966">Cwobeel</span>]] [[User_talk:Cwobeel|<span style="font-size:80%">(talk)</span>]] 17:08, 10 December 2014 (UTC)
+BTW, the [https://en.wikipedia.org/w/index.php?title=Shooting_of_Michael_Brown&oldid=637461101#Controversy Controversy section] that has the table is bloated and could use some summarizing. --[[User:Bob K31416|Bob K31416]] ([[User talk:Bob K31416|talk]]) 11:33, 10 December 2014 (UTC)
+
+The problem with the table is that it doesn't take into account what grand juries usually do, which is approving felony indictments that a prosecuting attorney's office has already decided to take to trial. The hearing in Wilson's case was intended to determine whether there was sufficient evidence for a trial. (A trial for second degree murder, since it was intentional but unplanned.)
+Now, I think this is the time when we got into why it's not up to us to decide when journalists are right or wrong. The table compares two very different things, and in so doing it misrepresents the purpose for the hearing in this case. I don't want to deal with opinions to any more of an extent than is absolutely necessary, but it's not right for Wikipedia to contain information that is factually wrong, or misrepresented, up to the point where one journalist discovers the error of another. [[User:Roches|Roches]] ([[User talk:Roches|talk]]) 16:03, 10 December 2014 (UTC)
+:I think your difference of purpose is the exact point of the criticism. The grand jury was not normal, and thats what the table points out. The prosecutors job is to prosecute, not decide if there is a crime. There is prosecutorial discretion, but if thats what was at play he should have just said so, and declined to prosecute. Having a show "trial" where he didn't actually prosecute did nothing except waste money and provide room for criticism. [[User:Gaijin42|Gaijin42]] ([[User talk:Gaijin42|talk]]) 16:34, 10 December 2014 (UTC)
+::I disagree, in this specific instance, this was a "normal" grand jury conducting "normal" grand jury business, it just so happened in August that they were thrust into the spotlight and given an unusual case under unusual circumstances - and the table doesn't point that out. The table is confusing because it seems to imply that some kind of special grand jury was convened to hear this case, and that's not what happened. A ''typical'' grand jury had already been convened and were conducting ''typical'' grand jury business when they were suddenly tasked with an unusual and controversial case, that's what happened and that's what should be relayed to the reader in prose instead of a generic table that doesn't address the context in which this case was given to them.[[User:Isaidnoway|<font face="Times New Roman" color="blue"> '''''Isaidnoway''''' </font>]][[User talk:Isaidnoway|<font face="Times New Roman" color="blue">'''''(talk)'''''</font>]] 17:50, 10 December 2014 (UTC)
+::: Nothing is stopping you from adding other viewpoints about the grand jury process, besides the NYT's opinion and the other opinions already in the article. - [[User:Cwobeel|<span style="color:#339966">Cwobeel</span>]] [[User_talk:Cwobeel|<span style="font-size:80%">(talk)</span>]] 18:22, 10 December 2014 (UTC)
+:::Certainly the makeup and convening of the GJ was normal. But was the presentation of this case normal? The table is about the GJ proceedings, not the GJ itself. [[User:Gaijin42|Gaijin42]] ([[User talk:Gaijin42|talk]]) 18:25, 10 December 2014 (UTC)
+::::From what I read from the bloated opinions in that section, it's the decision and the presentation of the case by the ''prosecutor McCulloch'' and the unusual way he used the grand jury - that is the controversy, at least that's what the overwhelming sources indicate and what and who they are specifically criticizing. If anything, there should be a table comparing "Similar cases handled by McCulloch" vs. "Wilsons case". The controversy/criticism revolves around McCulloch and the decisions he made. And I'd also point out that the table says that they met 25 days over 3 months, that was a decision that this specific GJ themselves elected to do, so that is specific to them and therefore makes it about "the GJ itself" and an apparent scheduling decision they made for convenience purposes. Gee, isn't that controversial? And I'd also make note of the fact that a "typical" grand jury does not meet for a day or less, it meets for a specific timeframe decided by a judge, and these grand jurors were originally appointed for a four-month term (and later extended).[[User:Isaidnoway|<font face="Times New Roman" color="blue"> '''''Isaidnoway''''' </font>]][[User talk:Isaidnoway|<font face="Times New Roman" color="blue">'''''(talk)'''''</font>]] 22:44, 10 December 2014 (UTC)
+:::::FYI [[Grand juries in the United States|grand juries]] are not the same as [[Jury#Types of jury|trial juries]]. Trial juries are directed by judges; grand juries are directed by prosecutors. --[[User:RAN1|RAN1]] ([[User talk:RAN1|talk]]) 22:55, 10 December 2014 (UTC)
+{{od}} {{u|Isaidnoway}} You are completely misinterpreting the criticism Isaidnoway. Yes, the jury was convened for a set amount of time, but the amount of time they spent on a particular case was controlled by the prosecutor. This same GJ dealt with dozens of cases prior to this case, and most of them were less than a day. Probable cause is a really low standard. Did wilson shoot? Yes. Were there witnesses (that passed the initial "not obviously lying" test) that said Brown was surrendering? Yes. Ok, thats probable cause for a trial. Impeaching those witnesses, and showing the defensive evidence is the job of the defense, not the prosecutor. Self defense cases are tougher, because they need to show all the elements of the crime and one of those elements is "it wasn't justified" but its still a really low bar. I think there is no way they could get a conviction, but the criticism that the prosecutor would not be giving the random joe the same level of deference is absolutely correct. He used the GJ for political cover instead of just saying "I don't think there is a case here" Political cover is not one of the appropriate roles for a GJ.McCulloch essentially had a trial, where he was both the prosecution and the defense. [[User:Gaijin42|Gaijin42]] ([[User talk:Gaijin42|talk]]) 23:01, 10 December 2014 (UTC)
+::The amount of time spent on a case is not controlled by a prosecutor, the time is controlled by the jurors themselves, as they are certainly allowed to ask questions of the witnesses and to individually examine the evidence as it suits them. And your explanation here on the talk page about how they dealt with dozens of cases with most of them being less than a day is great, but that explanation for the reader is absent from the table. The implication presently in the table is that a "typical" grand jury meets for a day or less, sans any explanation or context. Probable cause was never there for the prosecution, the physical evidence is in line with the officer's version of events.[[User:Isaidnoway|<font face="Times New Roman" color="blue"> '''''Isaidnoway''''' </font>]][[User talk:Isaidnoway|<font face="Times New Roman" color="blue">'''''(talk)'''''</font>]] 23:26, 10 December 2014 (UTC)
+:{{tq|" but it's not right for Wikipedia to contain information that is factually wrong"}} - Actually, the purpose of Wikipedia is to report what reliable sources say about a subject. If reliable source A said X, and X is factually incorrect because B says so, then we report what A said and what B said, and let our readers arrive to their own conclusions. But we can't avoid quoting A just because B said that A is factually incorrect. In addition, we can't use a primary source that contradicts A, unless the primary source refers to A's opinion. - [[User:Cwobeel|<span style="color:#339966">Cwobeel</span>]] [[User_talk:Cwobeel|<span style="font-size:80%">(talk)</span>]] 17:16, 10 December 2014 (UTC)
+::Policy doesn't say that we have to include questionable material. See the policy [https://en.wikipedia.org/w/index.php?title=Wikipedia:Verifiability&oldid=637531987#Verifiability_does_not_guarantee_inclusion Verifiability does not guarantee inclusion.]
+
+::There’s a false implication in the NYT table and ours that the prosecutor didn’t provide a range of charges. He provided five, from murder in the first degree to involuntary manslaughter.[http://abcnews.go.com/US/ferguson-grand-jury-indict-officer-darren-wilson-death/story?id=27146400][http://www.usatoday.com/story/news/nation/2014/11/24/ferguson-grand-jury-deliberations/19474907/]
+
+::In any case, I think we should summarize the information in the table with the following:
+:::According to ''The NY Times'', the grand jury proceedings were not typical of such proceedings in Missouri. They lasted much longer, the prosecutor did not recommend that the defendant be indicted, there was much more evidence presented, many more witnesses testified, the defendant testified, and all of the evidence and testimony was released to the public after the defendant was not indicted.
+::--[[User:Bob K31416|Bob K31416]] ([[User talk:Bob K31416|talk]]) 01:23, 11 December 2014 (UTC)
+::: Reverted per [[WP:BRD]]. I don't see any consensus emerging for this change. - [[User:Cwobeel|<span style="color:#339966">Cwobeel</span>]] [[User_talk:Cwobeel|<span style="font-size:80%">(talk)</span>]] 15:51, 11 December 2014 (UTC)
+::: Your summary is inaccurate, to say the least. Using generic terms such as "much longer" and "more evidence" when we have hard data that is measurable. I still believe the table is the best and easy to read and appreciate for our readers. - [[User:Cwobeel|<span style="color:#339966">Cwobeel</span>]] [[User_talk:Cwobeel|<span style="font-size:80%">(talk)</span>]] 15:54, 11 December 2014 (UTC)
+
+== On the issues raised on ANI ==
+
+I've posted replies under three sections that dealt with issues raised in the ANI discussion. Now, I'm going to voluntarily avoid this article and talk page for 48 hours, and after that I'll respond to any outstanding issues.
+
+For the editors who have worked on this article and who will be working on it, try to remember that this is one of the increasingly small number of places that people can go to even get a chance at not seeing news presented in the form of a top ten list. Your work is important, people read it, and it needs to be the best it can be. [[User:Roches|Roches]] ([[User talk:Roches|talk]]) 16:35, 10 December 2014 (UTC)
+
+== What gun was used? ==
+
+One of the key missing details is how the police officer's gun was wrested from him. I have tried to find the make and model gun used, as well as the make and model of holster. If this article was merely an overview, I could excuse it, but this article drills down to the level of "$48 worth of cigarillos." Not $47, not $49,but $48. I would like to see the same attention to detail for the gun issue.
+
+Was the gun a Glock, a Smith, etc.? Did the holster have a butt strap, or an internal locking device, etc.?
+
+Thanks for your attention. [[Special:Contributions/50.0.36.243|50.0.36.243]] ([[User talk:50.0.36.243|talk]]) 16:38, 10 December 2014 (UTC)
+
+:Not an answer to your question, but a while back I stumbled on this [https://www.youtube.com/watch?v=1PR9dAr9vDI YouTube video] that may be informative, or at the very least, interesting. (I'm not suggesting using it as a source nor suggesting the information contained is unimpeachable) &ndash;&nbsp;[[User:Jbarta|JBarta]] ([[User talk:Jbarta#top|talk]]) 16:50, 10 December 2014 (UTC)
+
+:It was a .40 cal [[SIG_Sauer_P226#P229]]. Its a 12+1 gun, and Wilson had several spare mags. To my knowledge we do not know the type of holster he was using, but I don't think its relevant as there is no assertion that Brown went for the gun while it was in the holster - Wilson freely says he drew the gun from the holster himself. We don't talk about the gun much, because it has not been discussed much in reliable sources.
+
+:One interesting (to me, not covered in any sources I am aware of) discrepancy is that there were 12 cases found near the scene. Wilson states that after the shooting there was one round left in the magazine, which he removed. If there was a round in the magazine, there should also have been a round chambered. That there wasn't means that either there was a [[Firearm_malfunction#Failure_to_feed]] or the remaining bullet was not in the magazine but in the chamber, but wilson explicitly said "I lock the slide back, take the magazine out, take the one round that’s left in it out. I put it all in that bag, seal it with evidence tape and then sign it.".
+
+:http://listverse.com/2014/11/25/10-of-the-most-important-pieces-of-evidence-from-darren-wilson-testimony/ [[User:Gaijin42|Gaijin42]] ([[User talk:Gaijin42|talk]]) 17:04, 10 December 2014 (UTC)
+
+:: {{yo|Gaijin42}} There are 15 rounds on a P299 magazine, so 12 cases + 1 in the magazine according to Wilson, that leaves two rounds not accounted for? - [[User:Cwobeel|<span style="color:#339966">Cwobeel</span>]] [[User_talk:Cwobeel|<span style="font-size:80%">(talk)</span>]] 23:07, 10 December 2014 (UTC)
+:::{{yo|Cwobeel}} The .40 model uses 12-round magazines, it's the 9mm variant that has 15 rounds. --[[User:RAN1|RAN1]] ([[User talk:RAN1|talk]]) 23:11, 10 December 2014 (UTC)
+
+:::{{u|Cwobeel}}There are both 10, 12, and 14 round magazines for a 229.[http://shop.sigsauerguns.com/Magazines_2/P229-Magazines/] You can see Wilson's specific magazine in the photo at that listverse article I posted, and that it is a 12 round mag. The 14 round mag is longer (duh) so is more difficult to wear while seated. Some cops have the 14 rounders as their backup mags tho since you can move them around more easily than the holstered gun (Wilson said he had 2 additional mags, but their size was not released anywhere)[[User:Gaijin42|Gaijin42]] ([[User talk:Gaijin42|talk]]) 23:14, 10 December 2014 (UTC)
+:::: In my time in the army (not in the US), we used to chamber an extra round in our small arms in addition to the mag. Is that not a practice in law enforcement the US? - [[User:Cwobeel|<span style="color:#339966">Cwobeel</span>]] [[User_talk:Cwobeel|<span style="font-size:80%">(talk)</span>]] 23:36, 10 December 2014 (UTC)
+:::::Yes, that is standard practice here too. Its a 12+1 gun, so the +1 is the "extra". That chambered round would have been the first one fired in the car. Wilson fired 12 times, so the final round should have been chambered in the end, but it could have stayed in the magazine if there was a failure to feed. Per wilson's testimony he also had 2 failure to fires in the car during the time he says Brown's hand was on the gun (see the video posted above for a technical explanation of how his particular gun works in that regard) [[User:Gaijin42|Gaijin42]] ([[User talk:Gaijin42|talk]]) 01:37, 11 December 2014 (UTC)
+
+Also to add to my discrepancy above "locking the slide back" prior to removing the magazine would have loaded the round from the mag into the chamber. (This is why you ALWAYS REMOVE THE MAG FIRST WHEN UNLOADING A GUN) So my assumption is that what he meant to say was that he ejected the round from the chamber and removed the mag, but it was a sloppy way to talk, and I'm surprised nobody (rs) mentioned it, especially with how some sources (Shaun King etc) were saying he might have reloaded, and therefore exactly what happened to each round would be very relevant. [[User:Gaijin42|Gaijin42]] ([[User talk:Gaijin42|talk]]) 23:28, 10 December 2014 (UTC)
+
+== Use of See also ==
+
+Resolution of [https://en.wikipedia.org/w/index.php?title=Shooting_of_Michael_Brown&diff=637514479&oldid=637511493 my edit] and its [https://en.wikipedia.org/w/index.php?title=Shooting_of_Michael_Brown&diff=637517371&oldid=637514479 revert] by {{u|Likeminas}}. Reason for revert was ''All these killings have been discussed as an overall recent trend in news articles''. I don't think that justifies the revert. The killings are included in the umbrella list article. &#8209;&#8209;[[User:Mandruss|<span style="color:#8E8278;">'''''Mandruss'''''</span>]]&nbsp;[[User talk:Mandruss|<span style="color:#AAA;">&#9742;</span>]] 20:22, 10 December 2014 (UTC)
+:With the exception of the Travon Martin shooting, all these cases are discussed in news articles as a recent trend of police abuse of force. i.e. Police officers killing people under questionable circumstances. In fact, there's a good amount of sources that mention them all in the same article.
+:The killings in the [[List of killings by law enforcement officers in the United States]] does not single out cases that have produced extensive news coverage and massive national outcry.
+:These cases are related and should be listed under 'See also' for readers that are interested in reading the most notorious cases in recent history. [[User:Likeminas|Likeminas]] ([[User talk:Likeminas|talk]]) 20:36, 10 December 2014 (UTC)
+
+:{{editconflict}} Garner, Rice and Gurley are at least related by timing. Martin and Diallo less so, since they aren't part of this recent chain of events. --[[User:RAN1|RAN1]] ([[User talk:RAN1|talk]]) 20:40, 10 December 2014 (UTC)
+::Agreed. Feel free to remove them, if chose to. Thanks [[User:Likeminas|Likeminas]] ([[User talk:Likeminas|talk]]) 20:44, 10 December 2014 (UTC)
+:::{{editconflict}} Done. Btw, should we keep the "hands up, don't shoot" in see also? We already have it in the navbox, having it in see also seems superfluous. --[[User:RAN1|RAN1]] ([[User talk:RAN1|talk]]) 20:48, 10 December 2014 (UTC)
+:Wikipedia has multiple articles addressing that topic, including [[Police brutality in the United States]] and [[Police misconduct]]. &#8209;&#8209;[[User:Mandruss|<span style="color:#8E8278;">'''''Mandruss'''''</span>]]&nbsp;[[User talk:Mandruss|<span style="color:#AAA;">&#9742;</span>]] 20:46, 10 December 2014 (UTC)
+::True, but the three deaths that are still in there are related by timing: The grand jury trial against the officer who killed Garner ended in non-indictment last week, and Rice and Gurley's deaths coincided with the grand jury case against Wilson. Brown's shooting at the very least had an influence on the reactions to these, so including them in 'see also' wouldn't be a bad idea. --[[User:RAN1|RAN1]] ([[User talk:RAN1|talk]]) 20:54, 10 December 2014 (UTC)
+
+== Common sense (wiki-linking Ferguson, Missouri) ==
+
+In the opening sentence, I [https://en.wikipedia.org/w/index.php?title=Shooting_of_Michael_Brown&oldid=637524325 linked] [[Missouri]], and unlinked "suburb" (edit summary: "some of us don't know where Missouri is; everyone knows what a suburb is"). I was reverted (twice), and instructed to "talk it to talk and stop edit warring". So, I leave it here for others to consider. Thanks. [[User:Signedzzz|zzz]] ([[User talk:Signedzzz|talk]]) 21:15, 10 December 2014 (UTC)
+
+:This is two separate issues, which I will address separately. First, the Missouri linking. I don't know of a policy or guideline about this, but there is [[User:Tony1/Build_your_linking_skills|this essay]] by an editor very experienced with linking. I would encourage any editor to read all of it before becoming involved in any disputes about linking. It says, ''Uniqueness: Is the linked topic reachable—directly or indirectly—through another link in the vicinity? (If so, consider not linking.)'' In other words, [[Missouri]] is easily reachable via [[Ferguson, Missouri]], so it probably doesn't need to be linked here. The general idea is the concept of overlinking, which says that having fewer links increases the value of the remaining ones. That concept is covered in the essay as well as guidelines.
+
+:As to "suburb", I don't think it's all that clear that everyone knows what a suburb is, but I feel less strongly about that. I might even support unlinking suburb on overlinking grounds. Frankly I didn't even notice that was part of what I was reverting. &#8209;&#8209;[[User:Mandruss|<span style="color:#8E8278;">'''''Mandruss'''''</span>]]&nbsp;[[User talk:Mandruss|<span style="color:#AAA;">&#9742;</span>]] 21:27, 10 December 2014 (UTC)
+::The idea that it's "overlinking" because the link is available on another article is clearly wrong. (Incidentally, it's only available there because [https://en.wikipedia.org/w/index.php?title=Ferguson,_Missouri&oldid=637510044 I just added it].) You should always check what your reverting, before accusing editors of edit-warring, (and quoting irrelevant essays and policies). [[User:Signedzzz|zzz]] ([[User talk:Signedzzz|talk]]) 21:35, 10 December 2014 (UTC)
+
+:::Please don't make statements about what's "clearly wrong" without some kind of backup; i.e., no matter how emphatically you present something as truth, that doesn't make it true. That's fundamental Wikipedia. And please don't lecture me about proper editing procedure while demonstrating complete ignorance of [[WP:BRD]]. The correct procedure was demonstrated in the dispute preceding this one. I was reverted once and I opened a talk discussion about it. You did not do that, instead re-reverting the revert, thereby starting an edit war. There is nothing gray or fuzzy about this area. &#8209;&#8209;[[User:Mandruss|<span style="color:#8E8278;">'''''Mandruss'''''</span>]]&nbsp;[[User talk:Mandruss|<span style="color:#AAA;">&#9742;</span>]] 21:42, 10 December 2014 (UTC)
+::::Firstly, I started this discussion, not you!
+::::Secondly, "overlinking" is best avoided for the reason that it draws attention away from the text. In this case, [[Ferguson, Missouri]] appeared entirely in blue, ie. identically to my edit, so this reason does not apply. And you apparently agree about "suburb". So, we are in agreement, then. [[User:Signedzzz|zzz]] ([[User talk:Signedzzz|talk]]) 21:52, 10 December 2014 (UTC)
+::::And thirdly, to reiterate, you should always check what you're reverting ("fundamental Wikipedia"). [[User:Signedzzz|zzz]] ([[User talk:Signedzzz|talk]]) 22:19, 10 December 2014 (UTC)
+
+I think [[Ferguson, Missouri]] is fine. No need to link the city and state separately. Regarding [[suburb]], I could go either way. I lean towards not linking it as relatively common knowledge. Then again, I'm from the U.S. If '"suburb" is not a commonly used term in oher English speaking countries then wikilink it. &ndash;&nbsp;[[User:Jbarta|JBarta]] ([[User talk:Jbarta#top|talk]]) 22:31, 10 December 2014 (UTC)
+:This will be my last comment. You failed to mention any reason why [[Ferguson, Missouri]] is better than [[Ferguson, Missouri|Ferguson]], [[Missouri]]. [[User:Signedzzz|zzz]] ([[User talk:Signedzzz|talk]]) 22:46, 10 December 2014 (UTC)
+::First, never say "this is my last comment" because it rarely is. There's really no need to... if you're done commenting, just don't comment any more. No need for a parting shot. And if (like so many do) you re-enter the discussion, you re-enter it looking a little silly. We all look silly sometimes accidentally. There's really no need to do it on purpose. At any rate, to answer your question, while I know of no policy that prefers one way or another, I see no need to offer two links where one will do. &ndash;&nbsp;[[User:Jbarta|JBarta]] ([[User talk:Jbarta#top|talk]]) 23:03, 10 December 2014 (UTC)
+
+== Washington Post Reception Source ==
+
+''The Boston Post'' source that was used in the reception section has a couple of problems. First, it's actually a repost of ''The Washington Post'', but ''The Washington Post'' doesn't allow the Internet Archive to preserve it. Should it still be sourced to Boston or to Washington? Second, it seems to be a lot of analysis that can't be summed up easily without trimming it out, and doesn't really fit with the reception section and should probably moved next to Wilson's testimony. Any suggestions? --[[User:RAN1|RAN1]] ([[User talk:RAN1|talk]]) 01:44, 11 December 2014 (UTC)
+
+== Grand jury no bill reception ==
+
+{{u|Bob K31416}} has started a process of summarizing that section, in a manner that I believe it to be counter productive. We have expert opinions from legal, law enforcement, politicians, and media outlets all of which are notable and informative. [[WP:NOTPAPER|Wikipedia is not paper]] – If the section is too long, the correct process to avoid losing good content that is well sources, is to create a sub-article with all the detail, and summarize here per [[WP:SUMMARY]]. But deleting useful and well sourced material, is not acceptable. We are here to build an encyclopedia. - [[User:Cwobeel|<span style="color:#339966">Cwobeel</span>]] [[User_talk:Cwobeel|<span style="font-size:80%">(talk)</span>]] 16:02, 11 December 2014 (UTC)
diff --git a/Echo/tests/phpunit/includes/revision_txt/646790570.txt b/Echo/tests/phpunit/includes/revision_txt/646790570.txt
new file mode 100644
index 00000000..5c4ee5ec
--- /dev/null
+++ b/Echo/tests/phpunit/includes/revision_txt/646790570.txt
@@ -0,0 +1,69 @@
+{{User:ClueBot III/ArchiveThis
+|age=2160
+|archiveprefix=User talk:PatHadley/Archive
+|numberstart=1
+|maxarchsize=100000
+|header={{Automatic archive navigator}}
+|minkeepthreads=4
+|minarchthreads=1
+|format= %%i
+}}
+{{archives}}
+{{Signpost-subscription|right}}
+
+
+==Site I mentioned==
+http://www.theverge.com/2013/8/9/4607240/fall-asleep-to-the-sound-of-wikipedia [[User:Shiningroad|Shiningroad]] ([[User talk:Shiningroad|talk]]) 11:31, 22 November 2014 (UTC)
+:Thanks! [[User:PatHadley|PatHadley]] ([[User talk:PatHadley#top|talk]]) 12:36, 22 November 2014 (UTC)
+
+== This is a demo! ==
+
+Demoing the user talk page [[User:PatHadley|PatHadley]] ([[User talk:PatHadley#top|talk]]) 11:44, 22 November 2014 (UTC)
+
+== Fortitude & Frailty: Reading the Human Condition Edit-a-Thon ==
+
+{| style="border: 1px solid gray; background-color: #fdffe7;"
+|rowspan="2" valign="middle" |{{#ifeq:alt|alt|[[File:SHUmanities Barnstar.png|100px]]|[[File:SHUmanities Barnstar.png|100px]]}}
+|rowspan="2" |
+|style="font-size: x-large; padding: 0; vertical-align: middle; height: 1.1em;" | '''SHUmanities Barnstar'''
+
+|-
+|style="vertical-align: middle; border-top: 1px solid gray;" | On behalf of Sheffield Hallam University's Humanities Department, thank you for your tireless efforts during the [[Wikipedia:Meetup/Sheffield_1|Fortitude and Frailty Edit-a-thon]]. Your contribution to the day, on and offline, was exemplary! &mdash; [[User:Mhbeals|Mhbeals]] ([[User talk:Mhbeals|talk]]) 13:16, 24 November 2014 (UTC)
+|}
+
+== ''Signpost'' ==
+
+Hey Pat, thanks for writing the ''Signpost'' article, and I apologize for not replying before. As you might be able to glean from my contribs, I've entered graduate school and unfortunately don't have much extra time for Wikipedia. I delayed [[Wikipedia:Wikipedia_Signpost/2014-12-10/Op-ed|your article]] by a week as we already had a feature for this week, but it will run next week. With it being an [[op-ed]], you could make it into the first person if you'd like (rather then referring to yourself by your username). [[User:The ed17|Ed]]&nbsp;<sup>[[User talk:The ed17|[talk]]]&nbsp;[[WP:OMT|[majestic titan]]]</sup> 21:38, 6 December 2014 (UTC)
+:Just saw the post - thanks, great piece. I'd like to explore opportunities to get the York Museums Trust involved with a Wikidata-focused research project, the proposal for which I am currently [[:d:Wikidata:WikiProject Wikidata for research|drafting]] (see [http://blog.wikimedia.de/2014/12/05/wikidata-for-research-a-grant-proposal-that-anyone-can-edit/ this blog post] for background). --<font style="font-family:Monotype Corsiva; font-size:15px;"> [[User:Daniel Mietchen|Daniel Mietchen]] ([[User talk:Daniel Mietchen|talk]]) </font> 05:22, 13 December 2014 (UTC)
+
+== Six degrees of separation ==
+
+Hello Pat. I was delighted to read the Signpost draft and realise that your work had touched on Sterne (whose lesser novel ''Travels'' inspired a C19 writer I'm fond of). I just love how Wikipedia joins up knowledge. [[User:Roberta Wedge (WMUK)|Roberta Wedge (WMUK)]] ([[User talk:Roberta Wedge (WMUK)|talk]]) 13:12, 9 December 2014 (UTC)
+
+==Yo Ho Ho==
+<div style="border-style:solid; border-color:blue; background-color:AliceBlue; border-width:1px; text-align:left; padding:8px;" class="plainlinks">[[File:Trialeti silver cup.JPG|250x100px|right]] [[File:Animal headed shallow bowl.jpg||150x100px|left]]
+
+''[[User:WereSpielChequers|<span style="color:DarkGreen">Ϣere</span>]][[User talk:WereSpielChequers|<span style="color:DarkRed">Spiel</span>]]<span style="color:#CC5500">Chequers''</span> is wishing you [[Wikipedia:WikiLove|Seasons Greetings]]! Whether you celebrate your hemisphere's [[Solstice]] or [[Christmas]], [[Diwali]], [[Hogmanay]], [[Hanukkah]], [[Lenaia]], [[Festivus]] or even the [[Saturnalia]], this is a special time of year for almost everyone! <br />
+
+<small>Spread the holiday cheer by adding {{[[WP:SUBST|subst]]:[[User:WereSpielChequers/Dec14c]]}} to your friends' talk pages</small>.
+{{clear}}
+</div>
+
+== Bradford request for volunteers ==
+Saw this via a BBC news item:-
+http://www.bradford.gov.uk/bmdc/government_politics_and_public_administration/news/volunteers_sought_for_museums
+
+Thought it might be within the GLAM sphere. [[User:ShakespeareFan00|ShakespeareFan00]] ([[User talk:ShakespeareFan00|talk]]) 12:26, 13 January 2015 (UTC)
+:Many thanks! I'll definitely follow it up. [[User:PatHadley|PatHadley]] ([[User talk:PatHadley#top|talk]]) 13:26, 13 January 2015 (UTC)
+
+== Thanks ==
+
+Many thanks for opening this new world for me [[User:HassanEbeid|HassanEbeid]] ([[User talk:HassanEbeid|talk]]) 15:03, 15 January 2015 (UTC)
+
+==York memorial==
+Yes, it's not that I worked on the image, though of course everyone hates to see their work lost. But I think I can overcome that twinge of pain. It was just that the image you added was rather "weird" to look at, as it had some very odd visual 'artefacts', especially at the right (streaks of unreadable shapes); and the base of the sculpture seemed to floating in a void, which gave it a distinctly eerie look. Yes the image was in one sense more useful. It had more visual ''information'' in it, but of course that's not the principal purpose the picture serves in the article. Thanks for the information on other images. [[User:Paul Barlow|Paul B]] ([[User talk:Paul Barlow|talk]]) 11:27, 23 January 2015 (UTC)
+
+==Wizardry required==
+Yo maestro, I cannot for the life of my figure out why my new and exciting [[Humber ware]] page auto alphabetises to being under 'Y' in Category:Medieval_Ceramics. Enlightenment? [[User:Zakhx150|Zakhx150]] ([[User talk:Zakhx150|talk]]) 12:34, 12 February 2015 (UTC)
+:{{talk page stalker}} {{ping|Zakhx150}} That would be because of the [[Template:DEFAULTSORT]] at the bottom of the page, which currently sorts the page as "York Glazed Ware". [[User:Samwalton9|'''S'''am '''W'''alton]] ([[User talk:Samwalton9|talk]]) 12:37, 12 February 2015 (UTC)
+:: {{ping|Samwalton9}} Ah the old 'copy and paste' fail. Cheers chief. Enlightenment acquired. [[User:Zakhx150|Zakhx150]] ([[User talk:Zakhx150|talk]]) 12:40, 12 February 2015 (UTC)
diff --git a/Echo/tests/phpunit/includes/revision_txt/646792804.txt b/Echo/tests/phpunit/includes/revision_txt/646792804.txt
new file mode 100644
index 00000000..ab91a79c
--- /dev/null
+++ b/Echo/tests/phpunit/includes/revision_txt/646792804.txt
@@ -0,0 +1,70 @@
+{{User:ClueBot III/ArchiveThis
+|age=2160
+|archiveprefix=User talk:PatHadley/Archive
+|numberstart=1
+|maxarchsize=100000
+|header={{Automatic archive navigator}}
+|minkeepthreads=4
+|minarchthreads=1
+|format= %%i
+}}
+{{archives}}
+{{Signpost-subscription|right}}
+
+
+==Site I mentioned==
+http://www.theverge.com/2013/8/9/4607240/fall-asleep-to-the-sound-of-wikipedia [[User:Shiningroad|Shiningroad]] ([[User talk:Shiningroad|talk]]) 11:31, 22 November 2014 (UTC)
+:Thanks! [[User:PatHadley|PatHadley]] ([[User talk:PatHadley#top|talk]]) 12:36, 22 November 2014 (UTC)
+
+== This is a demo! ==
+
+Demoing the user talk page [[User:PatHadley|PatHadley]] ([[User talk:PatHadley#top|talk]]) 11:44, 22 November 2014 (UTC)
+
+== Fortitude & Frailty: Reading the Human Condition Edit-a-Thon ==
+
+{| style="border: 1px solid gray; background-color: #fdffe7;"
+|rowspan="2" valign="middle" |{{#ifeq:alt|alt|[[File:SHUmanities Barnstar.png|100px]]|[[File:SHUmanities Barnstar.png|100px]]}}
+|rowspan="2" |
+|style="font-size: x-large; padding: 0; vertical-align: middle; height: 1.1em;" | '''SHUmanities Barnstar'''
+
+|-
+|style="vertical-align: middle; border-top: 1px solid gray;" | On behalf of Sheffield Hallam University's Humanities Department, thank you for your tireless efforts during the [[Wikipedia:Meetup/Sheffield_1|Fortitude and Frailty Edit-a-thon]]. Your contribution to the day, on and offline, was exemplary! &mdash; [[User:Mhbeals|Mhbeals]] ([[User talk:Mhbeals|talk]]) 13:16, 24 November 2014 (UTC)
+|}
+
+== ''Signpost'' ==
+
+Hey Pat, thanks for writing the ''Signpost'' article, and I apologize for not replying before. As you might be able to glean from my contribs, I've entered graduate school and unfortunately don't have much extra time for Wikipedia. I delayed [[Wikipedia:Wikipedia_Signpost/2014-12-10/Op-ed|your article]] by a week as we already had a feature for this week, but it will run next week. With it being an [[op-ed]], you could make it into the first person if you'd like (rather then referring to yourself by your username). [[User:The ed17|Ed]]&nbsp;<sup>[[User talk:The ed17|[talk]]]&nbsp;[[WP:OMT|[majestic titan]]]</sup> 21:38, 6 December 2014 (UTC)
+:Just saw the post - thanks, great piece. I'd like to explore opportunities to get the York Museums Trust involved with a Wikidata-focused research project, the proposal for which I am currently [[:d:Wikidata:WikiProject Wikidata for research|drafting]] (see [http://blog.wikimedia.de/2014/12/05/wikidata-for-research-a-grant-proposal-that-anyone-can-edit/ this blog post] for background). --<font style="font-family:Monotype Corsiva; font-size:15px;"> [[User:Daniel Mietchen|Daniel Mietchen]] ([[User talk:Daniel Mietchen|talk]]) </font> 05:22, 13 December 2014 (UTC)
+
+== Six degrees of separation ==
+
+Hello Pat. I was delighted to read the Signpost draft and realise that your work had touched on Sterne (whose lesser novel ''Travels'' inspired a C19 writer I'm fond of). I just love how Wikipedia joins up knowledge. [[User:Roberta Wedge (WMUK)|Roberta Wedge (WMUK)]] ([[User talk:Roberta Wedge (WMUK)|talk]]) 13:12, 9 December 2014 (UTC)
+
+==Yo Ho Ho==
+<div style="border-style:solid; border-color:blue; background-color:AliceBlue; border-width:1px; text-align:left; padding:8px;" class="plainlinks">[[File:Trialeti silver cup.JPG|250x100px|right]] [[File:Animal headed shallow bowl.jpg||150x100px|left]]
+
+''[[User:WereSpielChequers|<span style="color:DarkGreen">Ϣere</span>]][[User talk:WereSpielChequers|<span style="color:DarkRed">Spiel</span>]]<span style="color:#CC5500">Chequers''</span> is wishing you [[Wikipedia:WikiLove|Seasons Greetings]]! Whether you celebrate your hemisphere's [[Solstice]] or [[Christmas]], [[Diwali]], [[Hogmanay]], [[Hanukkah]], [[Lenaia]], [[Festivus]] or even the [[Saturnalia]], this is a special time of year for almost everyone! <br />
+
+<small>Spread the holiday cheer by adding {{[[WP:SUBST|subst]]:[[User:WereSpielChequers/Dec14c]]}} to your friends' talk pages</small>.
+{{clear}}
+</div>
+
+== Bradford request for volunteers ==
+Saw this via a BBC news item:-
+http://www.bradford.gov.uk/bmdc/government_politics_and_public_administration/news/volunteers_sought_for_museums
+
+Thought it might be within the GLAM sphere. [[User:ShakespeareFan00|ShakespeareFan00]] ([[User talk:ShakespeareFan00|talk]]) 12:26, 13 January 2015 (UTC)
+:Many thanks! I'll definitely follow it up. [[User:PatHadley|PatHadley]] ([[User talk:PatHadley#top|talk]]) 13:26, 13 January 2015 (UTC)
+
+== Thanks ==
+
+Many thanks for opening this new world for me [[User:HassanEbeid|HassanEbeid]] ([[User talk:HassanEbeid|talk]]) 15:03, 15 January 2015 (UTC)
+
+==York memorial==
+Yes, it's not that I worked on the image, though of course everyone hates to see their work lost. But I think I can overcome that twinge of pain. It was just that the image you added was rather "weird" to look at, as it had some very odd visual 'artefacts', especially at the right (streaks of unreadable shapes); and the base of the sculpture seemed to floating in a void, which gave it a distinctly eerie look. Yes the image was in one sense more useful. It had more visual ''information'' in it, but of course that's not the principal purpose the picture serves in the article. Thanks for the information on other images. [[User:Paul Barlow|Paul B]] ([[User talk:Paul Barlow|talk]]) 11:27, 23 January 2015 (UTC)
+
+==Wizardry required==
+Yo maestro, I cannot for the life of my figure out why my new and exciting [[Humber ware]] page auto alphabetises to being under 'Y' in Category:Medieval_Ceramics. Enlightenment? [[User:Zakhx150|Zakhx150]] ([[User talk:Zakhx150|talk]]) 12:34, 12 February 2015 (UTC)
+:{{talk page stalker}} {{ping|Zakhx150}} That would be because of the [[Template:DEFAULTSORT]] at the bottom of the page, which currently sorts the page as "York Glazed Ware". [[User:Samwalton9|'''S'''am '''W'''alton]] ([[User talk:Samwalton9|talk]]) 12:37, 12 February 2015 (UTC)
+:: {{ping|Samwalton9}} Ah the old 'copy and paste' fail. Cheers chief. Enlightenment acquired. [[User:Zakhx150|Zakhx150]] ([[User talk:Zakhx150|talk]]) 12:40, 12 February 2015 (UTC)
+:::Well that was a very relaxing way to sort out a query. :) Cheers {{ping|Samwalton9}}! [[User:PatHadley|PatHadley]] ([[User talk:PatHadley#top|talk]]) 13:08, 12 February 2015 (UTC)
diff --git a/Echo/tests/phpunit/includes/revision_txt/647258025.txt b/Echo/tests/phpunit/includes/revision_txt/647258025.txt
new file mode 100644
index 00000000..cfb39a8e
--- /dev/null
+++ b/Echo/tests/phpunit/includes/revision_txt/647258025.txt
@@ -0,0 +1,473 @@
+<div style="margin-bottom: 4.25em; position: absolute; bottom: -5em; right: 1em; "><div style="font-style: roman; background-color: #CBEBFF; font-weight:bold; border: 1px steelblue solid; color:black; padding:5px 5px">Please sign your message.</div></div>
+{{Statustop|offset=250}}
+{{administrator topicon|icon_nr=3}}
+{{Online Ambassador}}
+<!-- {{Attempting wikibreak|[[User:Kudpung|Kudpung]]| sometime|I}}
+ -->
+{{editnotice
+| header = Hi, welcome to my talk page!
+| headerstyle = font-size: 150%; color: #9900FF; font-family: 'Copperplate Gothic Light'
+| text =
+*I make plenty of errors - if you are here to complain about a tag, a warning, a deletion, or a block, please [[WP:AGF|'''assume good faith''']].
+*If I ''have'' erred, don't hesitate to tell me, but being '''rude''' will [[WP:BAIT|get you nowhere]].
+*If ''you'' have erred, chances are I'll help you get round it and over it, but [[WP:GAME|'''I don't suffer fools gladly''']] ;)
+*'''Please''' <span class="plainlinks">[http://en.wikipedia.org/w/index.php?title=User_talk:Kudpung&action=edit&section=new click here]</span> '''to leave a new message'''.
+[[Image:Crystal Clear app clock.svg|25px]] On line now? It is '''{{#time:g:i A|{{CURRENTHOUR}}:{{CURRENTMINUTE}} {{#if:{{{1|}}}|{{{1}}}|+7}} hours}}''' where this user lives near [[Udon Thani]], '''Thailand'''
+| textstyle = font-size: 100%; color: #555555; background-color: #DDDDDD
+| image = [[File:Nuvola apps edu languages.svg]]
+| textstyle = font-size: 100%; color: #555555; background-color: #DDDDDD
+| image = [[File:Nuvola apps edu languages.svg]]
+}}
+{{collapsetop|Archives}}
+{{archive box|auto=no|search=yes|style=background-color:lightBlue; border:1px solid black;|
+{{flatlist}}
+2006-2009
+*[[/Archive 1|Start - Jun 2009]]
+*[[/Archive 2|July-Aug]]
+*[[/Archive Aug 2009|Aug]]
+*[[/Archive Aug - Dec 2009|Sep - Dec]]
+*<hr>
+2010
+*[[/Archive Jan 2010|Jan]]
+*[[/Archive Feb 2010|Feb]]
+*[[/Archive Mar 2010|Mar]]
+*[[/Archive Apr 2010|Apr]]
+*[[/Archive May 2010|May]]
+*[[/Archive Jun 2010|Jun]]
+*[[/Archive July 2010|Jul]]
+*[[/Archive Aug (1) 2010|Aug]]
+*[[/Archive Sep 2010|Sep ]]
+*[[/Archive Oct 2010|Oct]]
+*[[/Archive Nov 2010|Nov]]
+*[[/Archive Dec 2010|Dec]]
+*<hr>
+2011
+*[[/Archive Jan 2011|Jan]]
+*[[/Archive Feb 2011|Feb]]
+*[[/Archive Mar 2011|Mar]]
+*[[/Archive Apr 2011|Apr]]
+*[[/Archive May 2011|May]]
+*[[/Archive Jun 2011|Jun]]
+*[[/Archive Jul 2011|Jul]]
+*[[/Archive Aug 2011|Aug]]
+*[[/Archive Sep 2011|Sep]]
+*[[/Archive 01-15 Oct 2011|01-14 Oct]] • [[/Archive 15-30 Oct 2011|15-30 Oct]]
+*[[/Archive Nov 2011|Nov]]
+*[[/Archive Dec 2011|Dec]]
+*<hr>
+2012
+*[[/Archive Jan 2012|Jan]]
+*[[/Archive Feb 2012|Feb]]
+*[[/Archive March-June 2012|Mar-Jun]]
+*[[/Archive Jul 2012|Jul]]
+*[[/Archive Aug 2012|Aug]]
+*[[/Archive Sep 2012|Sep]]
+*[[/Archive Oct 2012|Oct]]
+*[[/Archive Nov 2012|Nov]]
+*[[/Archive Dec 2012|Dec]]
+*<hr>
+2013
+*[[/Archive Jan 2013|Jan]]
+*[[/Archive Feb 2013|Feb]]
+*[[/Archive Mar 2013|Mar]]
+*[[/Archive Apr 2013|Apr]]
+*[[/Archive May 2013|May]]
+*[[/Archive Jun 2013|Jun]]
+*[[/Archive Jul 2013|Jul]]
+*[[/Archive Aug 2013|Aug]]
+*[[/Archive Sep 2013|Sep]]
+*[[/Archive Oct 2013|Oct]]
+*[[/Archive Nov 2013|Nov]]
+*[[/Archive Dec 2013|Dec]]
+*<hr>
+2014
+*[[/Archive Jan 2014|Jan]]
+*[[/Archive Feb, Mar, Apr, May 2014|Feb, Mar, Apr, May]]
+*[[/Archive Jun 2014|Jun]]
+*[[/Archive Jul 2014|Jul]]
+*[[/Archive Aug 2014|Aug]]
+*[[/Archive Sep 2014|Sep]]
+*[[/Archive Oct 2014|Oct]]
+*[[/Archive Nov 2014|Nov]]
+*[[/Archive Dec 2014|Dec]]
+*<hr>
+2015
+*[[/Archive Jan 2015|Jan]]
+{{endflatlist}}
+}}
+{{collapsebottom}}
+{{messagebox|'''NOT even in semi-retirement, but I am only very sporadically available for the time being. I may throw in the occasional edit, but I cannot for the moment get involved in issues that would require my undivided attention, or participation in anything over a number of consecutive days. Thanks.'''
+}}
+== Final warning on Awesomeninja's talk page ==
+
+Hi Kudpung,
+
+I noticed that you put a final warning for disruption on Awesomeninja's talk page. While I must admit that I vehemently despise "cool teen talk", it's my understanding that a final warning was only to be used ''after'' several warnings had been previously issued, ''or'' when a first instance of vandalism is so gross and severe that it deserves an almost immediate block. I don't see any previous warnings on Awesomeninja's talk page, and I hardly think that a NOTNOW RfA is such a severe offense to require a final warning right off the bat. --[[User:Biblioworm|<span style="color:#6F4E37;">'''''Biblio'''''</span>]][[User_talk:Biblioworm|<span style="color:#6F4E37;">'''''worm'''''</span>]] 15:36, 31 January 2015 (UTC)
+:That's your opinion, {{U|Biblioworm|}}. I have been around in life and on Wikipedia a long time and I use my judgement ''very'' carefully and do a lot of research before I do anything or criticise anyone's work or actions. I helped rewrite and develop many of the warning templates - I think I understand the guidelines for their use. --[[User:Kudpung|Kudpung กุดผึ้ง]] ([[User talk:Kudpung#top|talk]]) 00:23, 1 February 2015 (UTC)
+::Thanks for your reply, but it does not seem to directly address the point. This is the description for the level 4 template: "Assumes bad faith; strong cease and desist, last warning". How is a newbie (presumably unaware of what admins really are) filing a NOTNOW RfA editing in bad faith? Isn't it policy that users should [[WP:AGF|assume good faith]] unless there is a very good reason not to? Besides, three users (myself included) messaged the user in almost immediate succession after he transcluded his RfA. I think three rapid-fire messages and a speedy deletion notice was enough to get the point across. In any case, I have no desire to argue, so I won't say any more. --[[User:Biblioworm|<span style="color:#6F4E37;">'''''Biblio'''''</span>]][[User_talk:Biblioworm|<span style="color:#6F4E37;">'''''worm'''''</span>]] 00:51, 1 February 2015 (UTC)
+:::It does address the point because it states: ''do a lot of research before I do anything or criticise anyone's work or actions''. That's good advice for anyone, particularly users who have been around for only a relatively short time and start criticising the work of admins who, contrary to what you may have been led to believe, are ''not'' all bad, do ''not'' all misuse their tools, and do ''not'' all apply poor judgement. [[WP:IAR|Experience is the key]]. Now let's both get back to work, {{U|Biblioworm|}}. --[[User:Kudpung|Kudpung กุดผึ้ง]] ([[User talk:Kudpung#top|talk]]) 00:59, 1 February 2015 (UTC)
+
+== The RfC for AfC reviewer requirement ==
+
+Hey Kudpung, is there any new information on that? I don't think I was actually around when it happened (oops) but... yeah... where can I find the infos...? Thanks! <span style="text-shadow:#A2E1FC 2px -2px 9px;">&mdash;&nbsp;[[User:Kikichugirl|<font face="Georgia" color="#000000">kikichugirl</font>]]&nbsp;<sup>[[User talk:Kikichugirl|<font color="#8A37F0">speak&nbsp;up!</font>]]</sup></span> 01:47, 1 February 2015 (UTC)
+
+Hi {{U|Kikichugirl}}. It was based on two RfC that I started. One was for a requirement for qualifications, followed up with one to establish the actual requirement and enact it. Both were carried by consensus. It's all history now.
+*[[Wikipedia:WikiProject Articles for creation/RfC Reviewer permission]]
+*[[Wikipedia:WikiProject Articles for creation/RfC for AfC reviewer permission criteria]]
+There was another one proposed by {{U|Anne Delong}} which was an attempt to get the imp;ementation sharpened up, but although I supported it, the RfC was not heavily subscribed:
+*[[Wikipedia:WikiProject Articles for creation/RfC for AfC reviewer permission implementation]]
+That said, we have reached the stage now where the technical implementation needs to be seriously reviewd, or to implement the consensus of April last year to scrap AfC and either replace it with a software package similar to that of NPP, or to merge the whole process to NPP entirely. I support both proposals wholeheartedly and the community just needs to decide which one they want. The problem we are currently faced with is that AfC has become a battleground for volunteer programmers vying for first place, and is fast turning into a walled garden. --[[User:Kudpung|Kudpung กุดผึ้ง]] ([[User talk:Kudpung#top|talk]]) 02:10, 1 February 2015 (UTC)
+:Thanks. I might be elitist or have high standards, but the dubious reviews I've seen today, from several users, make me want to quit the project and cry instead... we definitely need to fix up the criteria. <span style="text-shadow:#A2E1FC 2px -2px 9px;">&mdash;&nbsp;[[User:Kikichugirl|<font face="Georgia" color="#000000">kikichugirl</font>]]&nbsp;<sup>[[User talk:Kikichugirl|<font color="#8A37F0">speak&nbsp;up!</font>]]</sup></span> 08:24, 1 February 2015 (UTC)
+::{{U|Kikichugirl}} check out the current discussion at [[WT:AFC]], and if you can, provide diffs for the poor reviews, something is going to break soon if DGG and I can convince the stone wallers at AfC that someting needs to be done. --[[User:Kudpung|Kudpung กุดผึ้ง]] ([[User talk:Kudpung#top|talk]]) 08:30, 1 February 2015 (UTC)
+:::I've seen it. My question is: Why is AfC so complicated? When I did NPP, I felt myself getting increasingly bitey (I'm increasingly lenient at AfC) but AfC is starting to seem like a mess of blah. If there's a bad patrol at NPP, you stick the CSD tag on right where someone else didn't see it. If there's a bad review, then you gotta revert the review, confuse the newbie, and badness all around. Ugh. <span style="text-shadow:#A2E1FC 2px -2px 9px;">&mdash;&nbsp;[[User:Kikichugirl|<font face="Georgia" color="#000000">kikichugirl</font>]]&nbsp;<sup>[[User talk:Kikichugirl|<font color="#8A37F0">speak&nbsp;up!</font>]]</sup></span> 08:34, 1 February 2015 (UTC)
+::::{{tps}} - One particularly bad review I can think of is here: [[Brad Craddock]]. The reviewer declined it as "unnotable" when the topic clearly passes [[WP:ATHLETE]] and [[WP:GNG]]. It was written like an advertisement but extensive copyeditting turned it into a viable article. It's going to be shown on the Main Page (DYK) in a few days. AfC reviewers have a lot of power in their hands: In many cases, you can either uplift or destroy the spirit of a newbie and their willingness to contribute to Wikipedia. A bad review and a new editor may never want to come back or they get deep misconceptions about Wikipedia. To tell you the truth, the Brad Craddock, article made me rather sad. [[User talk:Wikifanman37#Brad Craddock article|I had to go into full damage control]]. --'''[[User:Ceradon|ceradon]]''' ([[User talk:Ceradon|<font color="#036">talk</font>]] • [[Special:Contributions/Ceradon|<font color="#036">contribs</font>]]) 08:42, 1 February 2015 (UTC)
+{{od}}{{U|Ceradon}}. {{U|Kikichugirl}}. I can only reiterate that AfC is only a very tiny project when compared with the workload at NPP which is a serious vetting process and not a cosy little hobby for some who want to save a handfull of crap articles every day. Sure, the quality of patrolling at NPP is lousy, and it will remain so until the community stops refusing to believe that we need some criteria of competency for patrollers . --[[User:Kudpung|Kudpung กุดผึ้ง]] ([[User talk:Kudpung#top|talk]]) 08:52, 1 February 2015 (UTC)
+* {{Tps}} I support scrapping AfC and merging it into NPP or replacing it with and extension/guidedTour replacement as well. — <code class="nowrap">&#123;&#123;U&#124;[[User:Technical 13|Technical 13]]&#125;&#125; <sup>([[Special:EmailUser/Technical 13|e]] • [[User talk:Technical 13|t]] • [[Special:Contribs/Technical 13|c]])</sup></code> 16:42, 1 February 2015 (UTC)
+::In which case {{U|Technical 13}}, you've done yourself and us a misfavour by voting as you did [[Wikipedia:WikiProject Articles for creation/RfC to physically restrict access to the Helper Script|here]]. Scrapping AfC is the obvious solution but before we get there we have to prove to the community that AfC is not working in its present concept. History has shown that on Wikipedia, little changes lead to bigger ones. This would have been a valuable stepping stone, and still can be if you would reconsider. --[[User:Kudpung|Kudpung กุดผึ้ง]] ([[User talk:Kudpung#top|talk]]) 17:58, 1 February 2015 (UTC)
+::* [[Special:Diff/645188517|Fair enough]]. — <code class="nowrap">&#123;&#123;U&#124;[[User:Technical 13|Technical 13]]&#125;&#125; <sup>([[Special:EmailUser/Technical 13|e]] • [[User talk:Technical 13|t]] • [[Special:Contribs/Technical 13|c]])</sup></code> 18:11, 1 February 2015 (UTC)
+* I am not against ''merging'' the AfC and NPP processes, but the reason I have support AfC for now is, as Kudpung says, due to bad patrolling at NPP. Some NPPers (eg: Mr X, WikiDan61, RandyKitty, SL93) do good work, but there is still [[WP:BITE]]ing going on, so I really think that if we want to put up a hard barrier to reviewing new articles, we apply it consistently across the board. I have some shortcuts on my userpage to check articles nominated for CSD, particularly A7 and G11, and try and salvage anything that I can where possible. ([https://en.wikipedia.org/w/index.php?title=Köpenicker_Blues_und_Jazz_Festival&diff=645333548&oldid=645294851 example]) However, where I can't I consistently see confused newbies who don't understand why their work will be deleted. As long as a reasonable explanation is given, ideally suggesting another article or website where some of the content could go, is a better approach. Unfortunately it's a more time consuming one. [[User:Ritchie333|<b style="color:#7F007F">Ritchie333</b>]] [[User talk:Ritchie333|<sup style="color:#7F007F">(talk)</sup>]] [[Special:Contributions/Ritchie333|<sup style="color:#7F007F">(cont)</sup>]] 18:04, 2 February 2015 (UTC)
+::I can't argue with that, {{U|Ritchie333|Ritchie}}. That's why it's a total paradox that NPPers don't require any qualifications at all. They refuse to read what instructions there are (the ones {{U|Scottywong}} and I wrote at [[WP:NPP]]), rarely make use of the handwritten note feature of the curation tool, and never move an article to Draft namespace. That said, in a way, AfC and NPP are almost identical processes with NPP being by far the most important of the two. Merging would be ideal if the regular experienced AfC reviewers would migrate with the move. That way, we would have the best of both worlds. --[[User:Kudpung|Kudpung กุดผึ้ง]] ([[User talk:Kudpung#top|talk]]) 23:09, 2 February 2015 (UTC)
+:::I'm going to start moving stuff to draft ([[Draft:Le Trouble (musician)|first example]]) and see if takes up. [[User:Ritchie333|<b style="color:#7F007F">Ritchie333</b>]] [[User talk:Ritchie333|<sup style="color:#7F007F">(talk)</sup>]] [[Special:Contributions/Ritchie333|<sup style="color:#7F007F">(cont)</sup>]] 17:17, 3 February 2015 (UTC)
+
+== Buster7 ==
+
+Hello there. I would appreciate it of you could keep me informed of the case I buster7. I would appreciate it if there could be a sutiable warning for violation rules and his extra rights as a rollbacker. How could there be an accidental rollback? Thank you very much[[User:TheMagikCow|TheMagikCow]] ([[User talk:TheMagikCow|talk]]) 14:55, 1 February 2015 (UTC)
+
+:Hi {{U|TheMagikCow|Magic Cow}} It's a very strict rule that editors should not refactor, re-edit, or remove anything from other users' talk pages or user pages. It is in fact quite easy to click a Rollback button by mistake, that's why we're so strict about handing out Rollback rights. In view of the events of earlier today (or tonight according to wherever you are) {{U|Buster7}} could have every reason to take a swipe at one of my edits. It would be a huge coincidence if it were an accident, but I guess we have to stretch the rubber band of AGF and presume it was. --[[User:Kudpung|Kudpung กุดผึ้ง]] ([[User talk:Kudpung#top|talk]]) 15:14, 1 February 2015 (UTC)
+
+== RfC: AfC Helper Script access ==
+
+An RfC has been opened at [[Wikipedia:WikiProject Articles for creation/RfC to physically restrict access to the Helper Script|RfC to physically restrict access to the Helper Script]]. You are invited to comment. --[[User:Kudpung|Kudpung กุดผึ้ง]] ([[User talk:Kudpung#top|talk]]) 18:09, 1 February 2015 (UTC)
+
+== A barnstar for you! ==
+
+{| style="background-color: #fdffe7; border: 1px solid #fceb92;"
+|rowspan="2" style="vertical-align: middle; padding: 5px;" | [[File:Brilliant Idea Barnstar Hires.png|100px]]
+|style="font-size: x-large; padding: 3px 3px 0 3px; height: 1.5em;" | '''The Brilliant Idea Barnstar'''
+|-
+|style="vertical-align: middle; padding: 3px;" | For all your work with AfC reform. <span style="text-shadow:#A2E1FC 2px -2px 9px;">&mdash;&nbsp;[[User:Kikichugirl|<font face="Georgia" color="#000000">kikichugirl</font>]]&nbsp;<sup>[[User talk:Kikichugirl|<font color="#8A37F0">speak&nbsp;up!</font>]]</sup></span> 00:02, 2 February 2015 (UTC)
+|}
+;Thank you ! --[[User:Kudpung|Kudpung กุดผึ้ง]] ([[User talk:Kudpung#top|talk]]) 00:56, 2 February 2015 (UTC)
+
+== WP:ER ==
+
+You're always welcomed at [[WP:RETENTION]] -- [[User:GoodDay|GoodDay]] ([[User talk:GoodDay|talk]]) 03:18, 2 February 2015 (UTC)
+
+== Shane Ferguson ==
+
+Hello, could you please semi-protect [[Shane Ferguson]] as it's getting a lot of disruptive editors at the moment. Thanks, [[User:JMHamo|JMHamo]] ([[User talk:JMHamo|talk]]) 00:59, 3 February 2015 (UTC)
+:{{done}} --[[User:Kudpung|Kudpung กุดผึ้ง]] ([[User talk:Kudpung#top|talk]]) 01:03, 3 February 2015 (UTC)
+
+== Paracommunications ==
+
+Hi Kudpung
+
+I don't understand your reasons for proposing deletion of my Paracommunications entry. Please would you explain, as this is my first entry to Wikipedia. What does dicdef mean? And, how should I edit this entry so it is not deleted. Thank you.
+
+David <small><span class="autosigned">—&nbsp;Preceding [[Wikipedia:Signatures|unsigned]] comment added by [[User:Batmanolan|Batmanolan]] ([[User talk:Batmanolan|talk]] • [[Special:Contributions/Batmanolan|contribs]]) 03:28, 3 February 2015 (UTC)</span></small><!-- Template:Unsigned --> <!--Autosigned by SineBot-->
+
+:Hi {{U|Batmanolan|David}}. Well, Wikipedia is an encyclopedia and not a dictionary. There is a very big difference (dicdef = dictionary definition). That said, the page will not be suitable for Wikipedia at all, even the more so that the word is not to be found anywhere else. You could try publishing it at [[Wiktionary]] which is a Wikimedia web site., but although [[Wiktionary]] is in the same group, we here don't work there. Regards, --[[User:Kudpung|Kudpung กุดผึ้ง]] ([[User talk:Kudpung#top|talk]])
+
+Done, thanks for the tip. Please feel free to delete, now. <small><span class="autosigned">—&nbsp;Preceding [[Wikipedia:Signatures|unsigned]] comment added by [[User:Batmanolan|Batmanolan]] ([[User talk:Batmanolan|talk]] • [[Special:Contributions/Batmanolan|contribs]]) 03:52, 3 February 2015 (UTC)</span></small><!-- Template:Unsigned --> <!--Autosigned by SineBot-->
+== Edit summary usage ==
+Hi Kudpung! I just need some advice. Is it okay to use words like "Fu*k off" in edit summaries when directing other users? Isn't it violates our core policy, [[WP:CIVILITY]]? Today, I came across an editor who often uses those words in edit summaries. See [[Special:Diff/645405716|this]]. When I asked him not to use such words, he said [[Special:MobileDiff/645410610|this]]. It is not the first time he is using profanity when talking about other fellow editors. [[Special:MobileDiff/642443657|Here]] some one warned him too when he said someone a "miserable shit". You will get to see more such things in his talk page history and elsewhere. I think it's time for an admin to step in and warn. What you think? '''[[User:Jim Carter|<span style="color:#000000">Jim</span> <span style="color:#FF0000">Car</span><span style="color:#FFCC00">ter</span>]]''' 06:17, 3 February 2015 (UTC)
+
+:It's ''never'' alright to use such language either on edit summaries or anywhere else. But remember, I am very old fashioned and come from a British background where such language was never used. It might be more modern and more tolerated nowadays, but I don't really think it is, and it's certainly not the kind of language that should be used on Wikipedia. I looked at the edit history and it seems you may have done something wrong but I guess it wasn't intentional. I very much liked one comment of yours I came across (I seem to have seen something very similar before...), you should use it more often, but carefully of course, and only if you are sure that the person is a child (well, under 18 or so). I made myself a golden rule many years ago: always check out an editor's user page before you hit them with anything. If the page looks like a teenager's bedroom wall, chances ar that they are a teenager (or even younger), but on the other hand, while there are lots of children who act like mature adults on Wikipedia, there are lots of adults who behave like children ;) Keep up the good work, {{U|Jim Carter|Jim}}! --[[User:Kudpung|Kudpung กุดผึ้ง]] ([[User talk:Kudpung#top|talk]]) 06:38, 3 February 2015 (UTC)--[[User:Kudpung|Kudpung กุดผึ้ง]] ([[User talk:Kudpung#top|talk]]) 06:38, 3 February 2015 (UTC)
+::Yes, indeed. I strongly condemn the use of such language on Wikipedia. Actually, I don't know what exactly happened but I guess his comment was removed due to an edit conflict. His behavior was so childish that I didn't have to check his user page. Anyway, thank you. I'm just trying to follow your commands :) Cheers, '''[[User:Jim Carter|<span style="color:#000000">Jim</span> <span style="color:#FF0000">Car</span><span style="color:#FFCC00">ter</span>]]''' 10:06, 3 February 2015 (UTC)
+
+:::{{u|Jim Carter|Jim}} - Your comment had gone from polite to and I quote "''This is not a playground for kids. You're here to build an encyclopedia, why don’t you just grow up and behave as if you are working on the world’s biggest single source of information? A huge number of users are much older than you might think. Try to give others respect in talk pages as well as in edit summaries'' - How do you expect me to react?,
+:::Had you left it at the section where you said you disagreed with my use of words I'd of been more than happy to apologize, As for my "miserable shit" comment elsewhere ... I realized I was wrong and had removed it[https://en.wikipedia.org/w/index.php?title=Wikipedia:Requests_for_adminship/Titodutta&diff=642463191&oldid=642449018] so it's not really relevant here<br>
+:::Sorry Kudpung for barging in here hope you don't mind :) –[[User:Davey2010|<span style="color: blue;">'''Davey'''</span><span style="color: orange;">'''2010'''</span>]]<sup>[[User talk:Davey2010|<span style="color: navy;">'''Talk'''</span>]]</sup> 10:31, 3 February 2015 (UTC)
+
+::::Hi {{U|Davey2010|Davey}}. I don't really mind - if it helps clear the air. However, '' "This is not a playground for kids. You're here to build an encyclopedia, why don’t you just grow up and behave as if you are working on the world’s biggest single source of information? A huge number of users are much older than you might think." '' is is a brilliant statement if used wisely and one I would recommend being used more often by young editors who are concerned about the crap and strife caused by other young editors. Someone like me though, and an admin to boot, would get shot down in flames as a child hater if we said it. Even the word ''children'' is considered taboo on Wikipedia - by the children of course. You're probably not aware of it yet, but as one of the most regular contrubutors to [[WP:WER]] I have retired from that project - namely due to the antics of some younger editors and three or four adults who behave like kids a lot of the time. --[[User:Kudpung|Kudpung กุดผึ้ง]] ([[User talk:Kudpung#top|talk]]) 10:48, 3 February 2015 (UTC)
+
+:::::Hiya Kudpung, I agree with the statement providing its used wisely, Everyone knows I'm the least patient/short tempered person here so It was obvious saying something like that would tick me off easily,
+:::::I've not really dealt with any kids really but then again you're alot more active in other areas like NPP etc :)
+:::::When you overwritten my comment twice, Being very confused and without thinking I simply asked myself "what I stated in the edit summary" ...
+:::::Anyway I apologize to both Kudpung and to {{u|Jim Carter|Jim}} if they were offended/upset - Despite it may not seem like it at times - It's never my intention to offend or upset anyone,
+:::::Life's too short to start arguments & all that :)
+:::::Anyway I admit I shouldn't of said it and I sincerely apologize,
+:::::Thanks –[[User:Davey2010|<span style="color: blue;">'''Davey'''</span><span style="color: orange;">'''2010'''</span>]]<sup>[[User talk:Davey2010|<span style="color: navy;">'''Talk'''</span>]]</sup> 13:08, 3 February 2015 (UTC)
+
+== Little experience ==
+
+She ([[Kristin Sutton]]) doesn't look like she needs a wiki page. And who said I had little experience? It sounds like you're saying I'm dumb. --[[User:Satouyoukun|Satouyoukun]] ([[User talk:Satouyoukun|talk]]) 13:54, 3 February 2015 (UTC)
+:{{U|Satouyoukun}}, I am saying that with only 182 edits to the encycolpedia pages and wthout having read and thoroughly understood our deletion policies, you are not ready to be doing such maintenance tasks. --[[User:Kudpung|Kudpung กุดผึ้ง]] ([[User talk:Kudpung#top|talk]]) 14:02, 3 February 2015 (UTC)
+
+== You mentioned HJ mitchen ==
+
+http://theralphretort.com/wikipedia-blocks-veteran-editor-for-being-pro-gamergate-off-site-1715/ Check this article please <small><span class="autosigned">—&nbsp;Preceding [[Wikipedia:Signatures|unsigned]] comment added by [[User:IntelligenceMonkey|IntelligenceMonkey]] ([[User talk:IntelligenceMonkey|talk]] • [[Special:Contributions/IntelligenceMonkey|contribs]]) 14:13, 3 February 2015 (UTC)</span></small><!-- Template:Unsigned --> <!--Autosigned by SineBot-->
+::So what? And who are you, if I may ask? I do not take any notice of any crap that is written about Wikipedia on other websites. Also I have every confidence in the adminstrative acts and decisions of {{U|HJ Mitchell}}. --[[User:Kudpung|Kudpung กุดผึ้ง]] ([[User talk:Kudpung#top|talk]]) 14:21, 3 February 2015 (UTC)
+::::Oh yes, the block was based completely on something he said somewhere else on the Internet and on a site I don't even read. It wouldn't have anything at all to do with the [[Special:Contributions/Xander756|series of nasty BLP violations and personal attacks]]! ;) [[User:HJ Mitchell|<font color="Teal" face="Tahoma">'''HJ&nbsp;Mitchell'''</font>]] &#124; [[User talk:HJ Mitchell|<font color="Navy" face= "Times New Roman">Penny for your thoughts? </font>]] 14:37, 3 February 2015 (UTC)
+
+== Problematic new page patroller ==
+
+Kudpung,
+
+You, I, and about five other editors have cautioned [[User:Kges1901|Kges1901]] that he or she is making serious mistakes patrolling and speedying new pages. I just noticed another incorrect speedy nom on [[Yashvardhan Shukla]] (I converted it to an AfD). Obviously the cautions have not gotten through—do you know what the next step should be?
+
+Thanks!—[[User:Neil P. Quinn|Neil P. Quinn]] ([[User talk:Neil P. Quinn|talk]]) 16:58, 3 February 2015 (UTC)
+
+Sorry, but wasn't the page previously deleted using the same cause because a nomination by me? and wasn't it also exactly the same content on the page? I tried my best after reading the cautions to not make any mistakes, but... [[User:Kges1901|Kges1901]] ([[User talk:Kges1901|talk]]) 21:18, 3 February 2015 (UTC)
+:{{ping|Neil P. Quinn}}. The problem with {{U|Kges1901}}'s patrolling is that he has been asked by an administrator to stop patrolling but in defiance of the request he is continuing to do so. It took me nearly an hour this morning to check his last 100 or so patrolls and while most of them are OK the accuracy rate is still too low. Thus the issue is not whether or not his patrols are accurate but the enormous work he is creating for admins and other editors in having to check his work. His editing history shows that he cannot normaly have accumulated sufficient experience for this type of work. The alternatives are that he either stops patrolling, or it will be discussed at ANI with a risk of him being blocked or at least T-banned from patrolling. Perhaps however, a couple more warnings may do the trick-. -[[User:Kudpung|Kudpung กุดผึ้ง]] ([[User talk:Kudpung#top|talk]]) 00:27, 4 February 2015 (UTC)
+
+* {{ping|Kges1901}} now that you mention it, I see that [[Yashvardhan Shukla]] [https://en.wikipedia.org/w/index.php?title=Special:Log&page=Yashvardhan+Shukla was speedy deleted before], but if the content was the same, I would also consider that deletion incorrect. The problem is that the criterion you used, [[WP:A7|A7]], is for pages that don't make a "[[WP:credible claim of significance|credible claim of significance]]." That page does: it claims that Shukla is significant because he published a novel at age 13, which is certainly credible (young authors ''do'' exist) and could theoretically make him notable (the author actually included a link to [http://www.outlookindia.com/news/article/13YrOld-Yashwardhan-Shukla-Pens-Gods-of-Antarctica/857080 a profile of him in a national magazine]). I around five minutes searching for other sources to check whether he was actually notable, and decided he wasn't—but I had to use [[Wikipedia:Articles for deletion|articles for deletion process]] because it didn't meet any of the speedy deletion criteria. There's a good reason for this—if it doesn't meet the criteria, it's worth using AfD, which takes more time but makes more sure that we didn't miss any reasons to keep the article.
+:Also, Kges, one of the reasons I was concerned was that you didn't seem interested in talking to any of the people who cautioned you so you could learn more about how to avoid mistakes. I feel a bit better since you responded here. I'd advise you to be '''much''' more careful, read the [[Wikipedia:Criteria for speedy deletion|guidelines for speedy deletion]] very carefully, and above all, ask someone like me or Kupung for advice if you have ''any'' doubts about whether an article can be speedy deleted. This will allow you to keep contributing to the encyclopedia without creating unnecessary work for other editors.—[[User:Neil P. Quinn|Neil P. Quinn]] ([[User talk:Neil P. Quinn|talk]]) 21:34, 4 February 2015 (UTC)
+::{{reply to|Neil P. Quinn}} - again apologies for barging in here. Just wanted to say something in regards to: "didn't seem interested in talking to any of the people who cautioned you". I am often accused of the same wiki-crime, so I am wondering if you may be interested in my perspective? [[User:Ottawahitech|Ottawahitech]] ([[User talk:Ottawahitech|talk]]) 15:21, 6 February 2015 (UTC)
+Sorry for barging in. As someone who has lost countless articles to [[wp:CSD]]s, I always assumed that it is the admin's job to make sure that articles they are deleting are being deleted for the right reason. Is my assumption correct ? [[User:Ottawahitech|Ottawahitech]] ([[User talk:Ottawahitech|talk]]) 15:05, 4 February 2015 (UTC)
+:In theory, yes. At least that's what *I* do - and willingly too because I like to catch those clueless patrollers and bend them over my knee. That said, even if some sloppy admins do not check what they are deleting, there's always Delrev where anything worth keeping is generally refunded without much fuss. More difficult of course if the deletion was on a community consensus at XfD. --[[User:Kudpung|Kudpung กุดผึ้ง]] ([[User talk:Kudpung#top|talk]]) 16:29, 4 February 2015 (UTC)
+::Thanks for responding, Kudpung. I am just wondering if there are statistics kept somewhere about the number of "sloppy admins do not check what they are deleting"? [[User:Ottawahitech|Ottawahitech]] ([[User talk:Ottawahitech|talk]]) 15:25, 6 February 2015 (UTC)
+
+:::I doubt it, {{U|Ottawahitech}}. I can't see how it would be possible to extract suc a statistic. --[[User:Kudpung|Kudpung กุดผึ้ง]] ([[User talk:Kudpung#top|talk]]) 15:45, 6 February 2015 (UTC)
+
+:::: A good place to start would be on my own talkpage :-) [[User:Ottawahitech|Ottawahitech]] ([[User talk:Ottawahitech|talk]]) 15:55, 7 February 2015 (UTC)
+
+== [[King's Norton Boys' School]] ==
+
+Hi,
+In response to the message you sent me the only thing I have added is the school logo change, and a picture of the head for the news sake. If these are against the rules that you sent me I will gladly change the box to meet the required expectations of a schools Wikipedia Page. The whole page has been restored, is there a huge problem with adding texts of information. I understand the quotes but why can't there be other history, details about the curriculum. Also the motto box was already there, so why is it removed.
+
+Thanks
+James Byford <small><span class="autosigned">—&nbsp;Preceding [[Wikipedia:Signatures|unsigned]] comment added by [[User:Ja5by101|Ja5by101]] ([[User talk:Ja5by101|talk]] • [[Special:Contributions/Ja5by101|contribs]]) 19:30, 4 February 2015 (UTC)</span></small><!-- Template:Unsigned --> <!--Autosigned by SineBot-->
+
+:{{U|Ja5by101}} Hi James. I don't think the photo is appropriate, Wikipedia is not a news site and such content gets quickly out of date. It would be good if you could restore the original formal school logo. I have also removed some text from the article but I can't remember if it was added by you. You are most welcome to continue to expand the article but do check out [[WP:WPSCH]] first. I am the coordinator there so if you have any questions don't hesitate to contact me. --[[User:Kudpung|Kudpung กุดผึ้ง]] ([[User talk:Kudpung#top|talk]]) 19:41, 4 February 2015 (UTC)
+
+::Hi yes sorry for the inconvenience. I currently go to the school and they have changed the logo to the one I have put on there. The reason why I put the news on there is because I was planning on updating it. I will remove the content. Also the school motto, is that aloud to be put back up? I am really really sorry. Thanks for Your Help
+James <small><span class="autosigned">—&nbsp;Preceding [[Wikipedia:Signatures|unsigned]] comment added by [[User:Ja5by101|Ja5by101]] ([[User talk:Ja5by101|talk]] • [[Special:Contributions/Ja5by101|contribs]]) 19:44, 4 February 2015 (UTC)</span></small><!-- Template:Unsigned --> <!--Autosigned by SineBot-->
+
+:::Don't worry James, I have restored everything the way it should be. By all means add the motto to the motto section in the infobox, but preferably don't add any content to the article body before asking me first if you are not sure. Do check out [[WP:WPSCH/AG]] too - you'll soon get the hang of things and you'll soon be improving other articles. Make yourself a user page too. --[[User:Kudpung|Kudpung กุดผึ้ง]] ([[User talk:Kudpung#top|talk]]) 20:13, 4 February 2015 (UTC)
+
+
+Thank you so much for your help, I actually really appreciate things and I am sincerely sorry for the inconvience I have caused for you! I will add the motto but I shall not add anything else as it does cause an inconvenience and I can understand why the changes were made now and I do appreciate it!
+
+Thank you so much again!
+James
+
+[[User:Ja5by101|Ja5by101]] ([[User talk:Ja5by101|talk]] • [[Special:Contributions/Ja5by101|contribs]]) 20:17, 4 February 2015 (UTC)</span></small><!-- Template:Unsigned --> <!--Autosigned by SineBot-->
+
+==RAN==
+
+Actually, proxying Mr. Norton's new starts is permitted under terms of his original sanction, as I recall, so long as the person moving the start into mainspace accepts full responsibility for any possible copyright violation it contains. The logical and obvious solution for the betterment of the encyclopedia is to get rid of his punitive topic ban against direct new creations, of course, but as long as CCI is hot and bothered about 10 year old copyvios that nobody can or will ever fix, that doesn't seem too likely either. It's a stupid situation. [[User:Carrite|Carrite]] ([[User talk:Carrite|talk]]) 06:40, 5 February 2015 (UTC)
+
+== ''The Signpost'': 04 February 2015 ==
+
+<div lang="en" dir="ltr" class="mw-content-ltr"><div style="-moz-column-count:2; -webkit-column-count:2; column-count:2;">
+{{Wikipedia:Wikipedia Signpost/2015-02-04}}
+</div><!--Volume 11, Issue 5-->
+<div class="hlist" style="margin-top:10px; font-size:90%; padding-left:5px; font-family:Georgia, Palatino, Palatino Linotype, Times, Times New Roman, serif;">
+* '''[[Wikipedia:Wikipedia Signpost|Read this Signpost in full]]'''
+* [[Wikipedia:Signpost/Single/2015-02-04|Single-page]]
+* [[Wikipedia:Wikipedia Signpost/Subscribe|Unsubscribe]]
+* [[User:MediaWiki message delivery|MediaWiki message delivery]] ([[User talk:MediaWiki message delivery|talk]]) 00:43, 6 February 2015 (UTC)
+</div></div>
+<!-- Message sent by User:LivingBot@enwiki using the list at http://en.wikipedia.org/w/index.php?title=Wikipedia:Wikipedia_Signpost/Tools/Spamlist&oldid=645566867 -->
+
+== Bitey? ==
+
+How about you try not to be, eh? [[User:Squinge|Squinge]] ([[User talk:Squinge|talk]]) 12:21, 6 February 2015 (UTC)
+:{{ping|Squinge}} No, not in the slightest. A bit direct maybe, but only with those who should know better. I don't bite newcomers. If you are trying to do maintenance tasks you are hardly a newcomer, so how about you [[WP:NPP|reading the instructions]] before you do anything and perhaps also talk page headers. --[[User:Kudpung|Kudpung กุดผึ้ง]] ([[User talk:Kudpung#top|talk]]) 12:40, 6 February 2015 (UTC)
+::I'm not doing NPP - its not a <s>fucking</s> new page! [[User:Squinge|Squinge]] ([[User talk:Squinge|talk]]) 12:41, 6 February 2015 (UTC)
+:::{{ping|Squinge}} Nobody, just nobody, uses language like that on ''my'' talk page and never has in 9 years. Read the instructions, in particular [[WP:CIVIL|these too]] and do not come here again - under an circumstances. --[[User:Kudpung|Kudpung กุดผึ้ง]] ([[User talk:Kudpung#top|talk]]) 12:49, 6 February 2015 (UTC)
+::::Apologies for the rude word, I withdraw it and I've struck it now. If you'd like to discuss the fact that you were wrong about it being a new page then I'll be happy to do so, or I'll never post here again (other than when mandatory) as you wish - just let me know. [[User:Squinge|Squinge]] ([[User talk:Squinge|talk]]) 12:55, 6 February 2015 (UTC)
+{{talkback|Squinge}}
+{{ygm}}
+
+== Help understanding a chart ==
+
+The most recent vote concerning RfA at VPR included a chart, the first one at [[Wikipedia:Village_pump_(proposals)/Archive_115#Time to replace RfA]]. Can you help me interpret the numbers? Have they been updated? - Dank ([[User talk:Dank|push to talk]]) 13:33, 6 February 2015 (UTC)
+:Hi {{U|Dank}}, how are you doin'? Nice to see you. I'm still not quite sure which chart you mean, but all the graphs and tables are pretty accurate. The discussion was only 3 months ago so not much will have changed since. Reading through it, I still stand by all my comments which, summa sumarum, is that RfA is now as good as it's ever going to get, doesn't need any major changes except perhaps for more consequent removal of inapropriate questions, votes, and comments, but it's a start. RfA is actually doing a good job, demonstrated by one candidate whom I dragged kicking and screaming to the process and who then skipped through it like a lamb through a field of buttercups. If you are thinking of starting a new reform campaign, you'll probably have my support, but I think we need to give RfA time now for people to realise that it's no longer the horrible & brioken process that I and Wales suggested it was four years ago, and we need to make more publicity for it. --[[User:Kudpung|Kudpung กุดผึ้ง]] ([[User talk:Kudpung#top|talk]]) 13:56, 6 February 2015 (UTC)
+::Oh ... wasn't thinking of starting an RfA reform discussion, I've got something else in mind, a followup to the current RfC at VPR on user-rights. Not disputing that the chart is accurate ... I just don't know what the numbers mean. Here it is. - Dank ([[User talk:Dank|push to talk]]) 14:21, 6 February 2015 (UTC)
+
+{| class="wikitable"
+! !!2008!!2009!!2010!!2011!!2012!!2013!!2014 (projected)
+|-
+
+!Active admins
+||943||870||766||744||674||633||570
+|-
+
+!Admin promotions
+||201||121||78||52||28||34||21
+|-
+
+!Admin attrition (actual, not net)
+||<span style="color:Red">263</span>||<span style="color:Red">194</span>||<span style="color:Red">182</span>||<span style="color:Red">74</span>||<span style="color:Red">98</span>||<span style="color:Red">75</span>||<span style="color:Red">85</span>
+|}
+
+Dank, do you by any chance mean any of the graphs or charts I uploaded from my Excel spreadsheet? I'm pretty sure I still have that spreadsheet if you want me to email it to you or something, just let me know. — <code class="nowrap">&#123;&#123;U&#124;[[User:Technical 13|Technical 13]]&#125;&#125; <sup>([[Special:EmailUser/Technical 13|e]] • [[User talk:Technical 13|t]] • [[Special:Contribs/Technical 13|c]])</sup></code> 14:35, 6 February 2015 (UTC)
+:Thanks for your work on that, but I think if I can find out what the numbers above represent, I'm good. (I get what the middle row means.) - Dank ([[User talk:Dank|push to talk]]) 14:47, 6 February 2015 (UTC)
+
+{{ec}} {{U|Dank}}, most of these charts are created and maintained by {{U|WereSpielChequers}}. I don't find the figures particularly difficult to understand. Active admins are those who by some some silly criterion (not created by WereSpielChequers) that gives a totally false picture. IMO the actual number of truly active admins is about one tenth of that. Promotions is of course the actual number who passed an fA, and attrition is the total number lost through all kinds of desysoping. The projected number for 2014 was pretty accurate, in fact the actual number was 22. --[[User:Kudpung|Kudpung กุดผึ้ง]] ([[User talk:Kudpung#top|talk]]) 14:50, 6 February 2015 (UTC)
+:Agreed that it would be nice to have numbers that are based on a higher bar for activity ... do either of you happen to have numbers that reflect that? I'll ask WSC too. - Dank ([[User talk:Dank|push to talk]]) 15:01, 6 February 2015 (UTC)
+::{{U|Dank}}, I don't but anyone who knows how to run a regex through the actual admin action logs can soon find out. I would suggest that a truly active admin should be based on the uses of the admin tools over the previous 60 days, plus the number of edits to ANI over the same period and then divide by 2. If the answer is 40 or greater, then I would consider them as active, {{U|Scottywong}} used to be brilliant at pulling stats but he's gone AWOL as far as I can see. He did most of the stats for us at [[WP:RFA2011]]. --[[User:Kudpung|Kudpung กุดผึ้ง]] ([[User talk:Kudpung#top|talk]]) 15:14, 6 February 2015 (UTC)
+:::Thanks, I've asked WSC if he has numbers. - Dank ([[User talk:Dank|push to talk]]) 15:19, 6 February 2015 (UTC)
+
+== AfC ==
+
+Hi. You removed me from Articles for Creation participants list because you thought I was too inexperienced. When do I know if I am experienced enough? When I reach 1000 edits? Thanks. [[User:William2001|William2001]] ([[User talk:William2001|talk]]) 04:01, 7 February 2015 (UTC)
+:Well, {{U|William2001|William}} that's something else which you have misunderstood. If you had read the page before putting your name on it and my comments on your talk page you would have seen that 500 edits / 90 days are only a starting point and that more important is having sufficient experience that can't simply be measured by an edit count. We are shorly going to change the system and reviewers will have to request an admin to include them on the list just as we do for PC Reviewer, Rollbacker, and AWB user. I suggest that you might like to do some less complex maintenance tasks until the new system is up and running and make a new application then. --[[User:Kudpung|Kudpung กุดผึ้ง]] ([[User talk:Kudpung#top|talk]]) 05:27, 7 February 2015 (UTC)
+::OK. Thank you. [[User:William2001|William2001]] ([[User talk:William2001|talk]]) 16:39, 7 February 2015 (UTC)
+
+== Recreated ==
+
+Hi just letting you know that I have recreated the pre-speedy tag. This is for purpose of demonstration for the discussion started '''[[Wikipedia:Village_pump_(proposals)#Pre-Speedy_Deletion_tag|here]].''' Please know that until the discussion has ended I will not use the tag. If a consensus is not reached I will tag it for deletion myself - Thanks. [[User:Unit388|Unit388]] ([[User talk:Unit388|talk]]) 05:31, 7 February 2015 (UTC)
+:Replied on your talk page.--[[User:Kudpung|Kudpung กุดผึ้ง]] ([[User talk:Kudpung#top|talk]]) 05:55, 7 February 2015 (UTC)
+::Kudpung, you owe this user an apology. You already have 4 editors at criteria for speedy deletion who consider this deletion inappropriate. What's described at that page is not an ambiguous misrepresentation of policy (altho I can't speak for the template itself). Deleting a template so quickly while it's still under discussion at the appropriate page because you personally disagree is, in my opinion, a mis-use of administrator tools. [[User:Oiyarbepsy|Oiyarbepsy]] ([[User talk:Oiyarbepsy|talk]]) 07:16, 7 February 2015 (UTC)
+:::{{U|Oiyarbepsy}}, I don't really care for your opinion. It hasn't gone unnoticed by several editors that since you arrived at Wikipedia recently, you appear to have a disproportionate interest in policing the product to adding content to its articles. You are not likely to be an admin any time soon so if you don't understand our policies, kindly stay out of them. --[[User:Kudpung|Kudpung กุดผึ้ง]] ([[User talk:Kudpung#top|talk]]) 08:16, 7 February 2015 (UTC)
+
+== Something came in my mind ==
+Is it possible some how to physically hide [[Special:NewPages|this page]] from new editors. I mean restricting new editors (who have less than 200 mainspace) to visit that page. I was thinking maybe WMF can do this but we need consensus first. What you say? '''[[User:Jim Carter|<span style="color:#000000">Jim</span> <span style="color:#FF0000">Car</span><span style="color:#FFCC00">ter</span>]]''' 06:28, 7 February 2015 (UTC)
+:{{U|Jim Carter| Hi Jim}}. Well, theoretically that old feed ought to be deprecated. If the new NPP system has been in operation for a full two years (and if it hasn't it will be soon) the best way would be to start a major RfC to get it deprecated. At the moment, paradoxically, there are no requirements of minimm experiemce to patrol new pages but if the RfC for AfC goes through in a few days I will be starting a similar one for NPP and that will be the one to ask the Foundation how they can deny access to the curation system for non privileged patrollers. --[[User:Kudpung|Kudpung กุดผึ้ง]] ([[User talk:Kudpung#top|talk]]) 06:39, 7 February 2015 (UTC)
+::Actually, I started drafting an RfC. Currently there are two ways to see the log of new pages. 1) [[Special:NewPages]] and 2) [[Special:NewPagesFeed]]. As there are no requirements of minimum experience so my proposal would be: an editor with a minimum of 500 mainspace edits, account 90 days old will be able to view those two pages. The old feed cannot be shut down because older browsers are not able to open [[Special:NewPagesFeed]] page as the curation system uses JavaScript. So my RfC will ask the Foundation to set a filter such that users with less experience than the requirement will not be able access that page. I will be setting the RfC by tomorrow. I will inform you before it goes live. Cheers, '''[[User:Jim Carter|<span style="color:#000000">Jim</span> <span style="color:#FF0000">Car</span><span style="color:#FFCC00">ter</span>]]''' 09:34, 7 February 2015 (UTC)
+
+== .js page ==
+
+Hello. When you need to put a template on a javascript page please put two slashes '''//''' before the template so that the browser does no try to interpret it as code. The slashed tell the interpreter what follows is a comment and not code. Remember when you edit another persons javascript page you are effecting the code ran on their browser, given the shear number of browsers and their idiosyncratic interpretation of javascript it can be problematic. [[User talk:Chillum|<b style="color:DarkRed">Chillum</b>]] 07:19, 7 February 2015 (UTC)
+
+:Hi. I have no idea what you are talking about except that I know that two slashes signifies a comment that is not part of the code. All the js sripts in my vector.js page have been copied and pasted as is and I have not tried to modify them. If you see something there that is not correct I would appreciate a hint rather than a vague message. Thanks. --[[User:Kudpung|Kudpung กุดผึ้ง]] ([[User talk:Kudpung#top|talk]]) 07:28, 7 February 2015 (UTC)
+
+::I may have communicated poorly, I was referring to [https://en.wikipedia.org/w/index.php?title=Special:Undelete&target=User%3AUnit388%2Ftwinklespeedy.js&timestamp=20150207060549&diff=prev this edit]. To put it simply pages that end in .js have the potential to run code on the users browsers. While administrators are able to edit these pages they should only do so if they understand javascript enough to not screw things up. The tip about putting the slashes in front of the template was my 5 cent lesson on not messing up scripts.
+
+::When a javascript interpreter sees '''<nowiki>{{mfd}}</nowiki>''' it goes '''SYNTAX ERROR''' and depending on the browser various difficult to predict symptoms can arise. [[User talk:Chillum|<b style="color:DarkRed">Chillum</b>]] 07:39, 7 February 2015 (UTC)
+
+:::Sorry, {{U|Chillum}}, but I still have no idea what you are talking about. I followed the link but it did not provide any clues that I understand either. Perhaps the Twinkle MfD script is not working correctly but that is nothing to do with me, and I'm too old to be learning javascript - I am a common or garden admin, and nothing about adminship (and believe me, I know says sysops have to be computer programmers to get the mop. --[[User:Kudpung|Kudpung กุดผึ้ง]] ([[User talk:Kudpung#top|talk]]) 07:50, 7 February 2015 (UTC)
+
+::::You don't have to learn javascript, but you are responsible for the edits you make with javascript tools like twinkle. Tools like twinkle save a lot of time but they aren't perfect. I cannot explain it any simpler than this: you made an edit to another users javascript page that would result in the script crashing on their browser, if you don't understand javascript then do not edit those pages.
+
+::::As I said the only reason you were able to edit it at all is because you are an admin and admins have been given special access to other users javascript pages. If it is a problem with twinkle then you may wish to report a bug, stop using it, or audit the edits it makes for you. [[User talk:Chillum|<b style="color:DarkRed">Chillum</b>]] 07:57, 7 February 2015 (UTC)
+
+:::::{{U|Chillum}}, You are not being very helpful. Are you suggesting that I am in someway in misuse of my admin tools for innocently using a broken Twinkle script available to anyone that I had not edited? If all you come here to do is to continue to stalk my work, I suggest you start worrying about your own admin attitude. --[[User:Kudpung|Kudpung กุดผึ้ง]] ([[User talk:Kudpung#top|talk]]) 08:05, 7 February 2015 (UTC)
+::::::He actually is being helpful, Kudpung. Don't add non-code stuff to any .js page without sticking // in front of it, or else you can break the code and weird things can happen. - Dank ([[User talk:Dank|push to talk]]) 14:53, 7 February 2015 (UTC)
+:::::::{{tps}As I see it, Kudpung '''did not''' add non-code stuff to a .js page, he simply nominated a .js page for deletion using Twinkle and '''Twinkle''' edited the .js page to add stuff to it - that's hardly Kudpung's fault! People, try talking '''to''' each other and not '''past''' each other, eh? [[User:Squinge|Squinge]] ([[User talk:Squinge|talk]]) 14:58, 7 February 2015 (UTC)
+
+You don't have to learn javascript, but you are responsible for the edits you make with javascript tools like twinkle. Tools like twinkle save a lot of time but they aren't perfect. I cannot explain it any simpler than this: you made an edit to another users javascript page that would result in the script crashing on their browser, if you don't understand javascript then do not edit those pages.
+
+As I said the only reason you were able to edit it at all is because you are an admin and admins have been given special access to other users javascript pages. If it is a problem with twinkle then you may wish to report a bug, stop using it, or audit the edits it makes for you}
+* {{Tps}} Kudpung, I understand what chillium was attempting to relay to you from the start as a JavaScript capable person, and I can entirely see why you were missing what was attempting to be relayed. I can't see the deleted edit, but based on this discussion I have a fairly good understanding of the core issue here. I'm away from home until next Tuesday or Wednesday but will test and work on a fix then as I get home. — <code class="nowrap">&#123;&#123;U&#124;[[User:Technical 13|Technical 13]]&#125;&#125; <sup>([[Special:EmailUser/Technical 13|e]] • [[User talk:Technical 13|t]] • [[Special:Contribs/Technical 13|c]])</sup></code> 16:27, 7 February 2015 (UTC)
+
+Jesus Kudpung I am not accusing you of anything much less you abusing your admin tools. The only reason I mentioned admin tools was that if you were not an admin you would have been prevented from editing that page. I understand and accept that you did not do it on purpose and it was the result of a tool you used. All I am asking is the you either do not change other users javascript pages or that you put '''//''' before your change. This is a reasonable request, not some sort of attack on you. I am asking this of you for technical reasons not because I think you have done something wrong. [[User talk:Chillum|<b style="color:DarkRed">Chillum</b>]] 18:03, 7 February 2015 (UTC)
+
+Regardless it is not my intent to carry on about this matter, it is minor. Please just use more care in the future when it comes to javascript pages or avoid them altogether. I have notified the maintainers of twinkle here: [[Wikipedia_talk:Twinkle#Javascript_pages_and_admins]]. [[User talk:Chillum|<b style="color:DarkRed">Chillum</b>]] 18:11, 7 February 2015 (UTC)
+:{{tps}}Hi Chillum, I hope you don't mind a comment from me here. It's not what was said, but the way it was said that's caused the aggravation here, I think. Perhaps something like "''You might not be aware of it, but when you nominated X for deletion Twinkle did something wrong''" rather than just the "''It's your responsibility...''" approach might have worked better? [[User:Squinge|Squinge]] ([[User talk:Squinge|talk]]) 18:32, 7 February 2015 (UTC)
+
+== CSD Criteria ==
+
+What would a page like [[Aswin mukundan]] qualify for deletion under? I'm not sure. --[[User:Kges1901|Kges1901]] ([[User talk:Kges1901|talk]]) 08:57, 7 February 2015 (UTC)
+:{{U|Kges1901}} Both A7 ''and'' G11. Take a look at the article now while it's still there. --[[User:Kudpung|Kudpung กุดผึ้ง]] ([[User talk:Kudpung#top|talk]]) 09:00, 7 February 2015 (UTC)
+
+== Righto ==
+
+:better start earning my pay and start digging into some NPP. I still have the tool and full guidance. I think I've only ever done about 12, but there were no disasters generated as I recall. Keep a subtle eye out if you would be so kind. I assume you have the tools which give you a general overview of the day's or week's NPP output. Regards, Simon. [[User:Irondome|Irondome]] ([[User talk:Irondome|talk]]) 14:32, 7 February 2015 (UTC)
+
+== February 2015 GOCE newsletter ==
+
+{| style="position: relative; margin-left: 2em; margin-right: 2em; padding: 0.5em 1em; background-color: #dfeff3; border: 2px solid #bddff2; border-color: rgba( 109, 193, 240, 0.75 ); {{border-radius}} {{box-shadow|8px|8px|12px|rgba( 0, 0, 0, 0.7 )}}"
+
+| <span style="font-size: 110%;">'''[[WP:GOCE|Guild of Copy Editors]] February 2015 Newsletter</span>
+
+<div style="float:right; width: 75px; height: 60px;"></div>
+<div style="position: absolute; top: -20px; right: -12px;">[[File:Writing Magnifying.PNG|100px|link=]]</div>
+<hr style="border-bottom: 1px solid rgba( 109, 193, 240, 0.75 );" />
+[[File:Copyeditors progress.png|right|thumb]]
+
+'''Drive:''' Thanks to everyone who participated in [[Wikipedia:WikiProject Guild of Copy Editors/Backlog elimination drives/January 2015|'''January's Backlog Elimination Drive''']]. Of the 38 people who signed up for this drive, 21 copyedited at least one article. Final results, including barnstars awarded, are available [[Wikipedia:WikiProject Guild of Copy Editors/Backlog elimination drives/January 2015/Barnstars|'''here''']].
+
+'''Progress report:''' We were able to remove August 2013 from the general copyediting backlog and November 2014 from the request-page backlog. Many thanks, everyone!
+
+'''Blitz''': The [[Wikipedia:WikiProject Guild of Copy Editors/Blitzes/February 2015|'''February Blitz''']] will run from February 15–21 and again focuses on the [[WP:GOCE/REQ|requests page]]. Awards will be given to everyone who copyedits at least one request article. [[Wikipedia:WikiProject_Guild_of_Copy_Editors/Blitzes/February_2015#Signing_up|'''Sign up here''']]!
+
+Thank you all again for your participation; we wouldn't be able to achieve what we have without you! Cheers from your GOCE coordinators {{noping|Miniapolis}}, {{noping|Jonesey95}}, {{noping|Biblioworm}} and {{noping|Philg88}}.
+
+{{center
+| <small>To discontinue receiving GOCE newsletters, please remove your name from [[Wikipedia:WikiProject Guild of Copy Editors/Mailing List|our mailing list]].</small>
+}}
+|}
+[[User:MediaWiki message delivery|MediaWiki message delivery]] ([[User talk:MediaWiki message delivery|talk]]) 15:52, 7 February 2015 (UTC)
+<!-- Message sent by User:Miniapolis@enwiki using the list at http://en.wikipedia.org/w/index.php?title=Wikipedia:WikiProject_Guild_of_Copy_Editors/Mailing_List&oldid=645586491 -->
+
+==Talkback==
+{{talkback|Jim Carter|ts=10:44, 8 February 2015 (UTC)}}
+'''[[User:Jim Carter|<span style="color:#000000">Jim</span> <span style="border:1px solid White; border-radius:99px; background-color:Black"><span style="color:White">Car</span></span><span style="color:#FF0000">ter</span>]]''' 10:44, 8 February 2015 (UTC)
+
+== Please can you check my NPP quality ==
+
+Hi Kudpung. Dunno if you in bed, or busy, but if you have a minute, could you please give a brief glance at my NPP efforts so far? There are not many of them so It should not take long. I am very aware that there are some powerful tools available to the NPP'er, and I just want to know if my basic "feel" and methodology is acceptable. I am very aware of the responsibilities and potential to do inadvertant damage, so I just need some reassurance really. You can be as blunt as you wish. Regards Simon aka [[User:Irondome|Irondome]] ([[User talk:Irondome|talk]]) 19:19, 8 February 2015 (UTC)
+:I've looked at some of your more recent patrols. As usual for most new patrollers you have a tendency to over-tag. This is both a negative ''and'' a positive criticism: it shows tha you are seeing what is wrong with the articles and it shows that you know what tags are available for use. Don't tag relatively harmless articles to soon, but of course any which are blatantly toxic must be tagged as quickly as possible for deletion to rapidly attract the attention of admins. If you are working from the back of the queue remember that some articles may be months or even years old - do check their histories very carefully. Here ae some things that you might like to look at again which illustrate some of my comments:
+*[[Tooker & Marsh]] tage for CSD A7 if you can't find sources
+*[[Nicholas Irving]] Overtagging - tagging the blatantly obvious. Good though because it caught the creator online
+*[[Hitler Stalingrad Speech]] older article. Probably not worth tagging at all. Seems to be factually accurate.
+*[[Under Electric Clouds]] Overtagging - tagging the blatantly obvious.
+:Be sure to make use of the 'message to the creator' feature (this may have less effect on older articles where the creator was an SPA who will probably never return, but do it nevertheless. You are on the right track - keep up the good work. --[[User:Kudpung|Kudpung กุดผึ้ง]] ([[User talk:Kudpung#top|talk]]) 12:46, 9 February 2015 (UTC)
+::Noted and much appreciated. S. [[User:Irondome|Irondome]] ([[User talk:Irondome|talk]]) 14:41, 9 February 2015 (UTC)
+::I am noting some peculiar phenomena as I work from the back of the queue. A proposal for deletion on a long-dormant unworked on article will suddenly provoke a flurry of activity. The original creator suddenly beginning to add cites, or otherwise begin work on the article. This process can be measured in minutes. Odd, but rather encouraging. I am closely following Jim's NPP proposals and the debate being generated from that by the way. I shall be commenting. I feel it is the article creation, rather than the patrollers that may be the issue. Just initial thoughts. Will be revisiting the patrolled examples you highlighted above. I am becoming much lighter on the tagging. Regards as always. S [[User:Irondome|Irondome]] ([[User talk:Irondome|talk]]) 21:29, 9 February 2015 (UTC)
+:::{{U|Irondome|Simon}}, you are right about the flurries of activity - it happens at AfC too when drafts get tagged G13 for not having been edited for 6 months. Nevetheless, check that the improvements are relevant and if the creator has simply fremoved maintenance tags (which often happens) simply restore them.
+:::The problem with NPP is most certainly the patrollers. I've been researching and patrolling the patrollers for 5 years. That said, although I favour a set of criteria of competency for users to be allowed to patrol new pages, it is too soon to be launching that proposal. I wish people wouldn't jump the gun but that's also what enthusiastic newcomers often do. They may not be entirely wrong but they will probably not be aware of what is already being done. A substandard RfC can set its own goals back ''years''. Before anything can be done with NPP it is essential that we get consensus to disband AfC and that could take at least another year. AfC has a terrible 'ownership' syndrome to be conquered first. Yes, being lighter on the tagging, especially when the faults in the articles and stubs are evident is a good idea. Keep reading [[WP:NPP]] over and over again, you'll always find you missed something. --[[User:Kudpung|Kudpung กุดผึ้ง]] ([[User talk:Kudpung#top|talk]]) 21:45, 9 February 2015 (UTC)
+::::Of course, {{U|Kudpung|Chris}}. I have completed overlooked the rather bizarre entity that is AfC, which I am now belatedly researching. I see nowhere where it actually fits into the grand scheme, if you will. Certainly a minimum skills set in patrollers can only be a positive, but I fully endorse your policy of gradualism. A premature RfC can be literally devastating for an otherwise good attempt to improve the project, and can set back months of intensive (and unpaid!) research and diplomacy to naught. I am beginning to notice instances of premature RfC's in my brief tenure that have gone horribly wrong. A poorly planned RfC seems to have a strange "souring" effect on the community, where the merits of the proposal are sublimated by an irritation that the case has not been competely or thouroughly presented. Much like a jury. This prejudice can last years in contributors to these tainted RfCs'. A similar thing to the old grudges issue in the RfA process. I am beginning to join the dots, and to begin to appreciate how bloody hard it is and how subtle and patient one has to be to actually get things done. Your encouragement on my modest patrolling efforts is greatly appreciated Chris. I hope we all can meet up in London some time and have a doubtless very interesting conversation. Be good to meet Harry too! Simon. [[User:Irondome|Irondome]] ([[User talk:Irondome|talk]]) 22:05, 9 February 2015 (UTC)
+
+Hi Kudpung, I was going to start a new thread but this related to the above conversation. I agree that AfC has got too over-complicated and empirical evidence has now shown me that, far from being kinder and more compassionate as I had assumed, an AfC decline seems to be just as [[WP:BITE]]y for newbies as a PROD or CSD tag, though I'd be interested to see some statistics of how many "one decline" AfC drafts get abandoned and deleted per G13. I still review the odd AfC submission, but nowadays take each one as a cue to improve it and pass it.
+
+Anyway, I was discussing with [[User:Rhondamerrick|my other half]] why Wikipedia can still appear hostile to newcomers, and the consensus came back, once again, to badly called CSDs. I'm thinking specifically of [[The Mariposa Trust]] and [[Le QuecumBar]], which were both quickly tagged for A7 (multiple times in the case of the Mariposa Trust), but where a simple search for the article's title on Google News returned more than one page of hits, easily allowing me to expand these articles with proper referencing. Would it be possible to change Twinkle (where the majority of CSDs get called from) to bring up a message along the lines of "STOP! Have you followed [[WP:BEFORE]]" as some sort of edit notice if a Google News or Books search on the article's title returns, say, more than 10 hits. The problem with the scenarios above is that looking from hindsight it seems poor from the newcomer's point of view to be slapped about, and when they read up on policies, conclude they shouldn't have been. [[User:Ritchie333|<b style="color:#7F007F">Ritchie333</b>]] [[User talk:Ritchie333|<sup style="color:#7F007F">(talk)</sup>]] [[Special:Contributions/Ritchie333|<sup style="color:#7F007F">(cont)</sup>]] 12:27, 10 February 2015 (UTC)
+
+:Maybe the instructions at the top of [[WP:NPP]] could be changed to emphasise the importance of [[WP:BEFORE]]? I've lost count of the number of times I've caught pages which have been tagged, usually as A7, where a quick google search would either establish notability or at least make it iffy enough for the page to go for more scrutiny at [[WP:AFD]] instead. I also think there's a case for making pages ineligible for A7 until about 30-45 minutes have passed, to give creators enough time to add their content, though people opposing could probably point to pages like [[Karim Badie|this]] though. Unless the page is obviously problematic, vandalism, attack pages etc, there's nothing to be lost by watchlisting the page and returning to it later to see if it has improved or not. Unfortunately, a lot of patrollers seem to be in a rush to get there first (I was guilty of those mistakes myself in my early days of NPP) when a little more digging would be more productive for all concerned. [[User:Valenciano|Valenciano]] ([[User talk:Valenciano|talk]]) 15:15, 10 February 2015 (UTC)
+
+::I like that idea, and if there's traction it would be nice to make it into a guideline, I have a [https://en.wikipedia.org/w/index.php?title=Special%3AWhatLinksHere&target=Template%3ADb-a7&namespace=0 link to active A7s] that I use all the time, hoping I can spot one that is salvageable. Of the two examples I gave, in both cases I was unsure if they would survive an AfD until I'd expanded up to about 7-8 sources, which was about half an hour's worth of work, and I know what I'm doing. I don't see anything wrong with taking some A7s to AfD, as they do not cause immediate harm to Wikipedia by existing, unlike attack pages and copyvios, a week's grace won't hurt us. [[User:Ritchie333|<b style="color:#7F007F">Ritchie333</b>]] [[User talk:Ritchie333|<sup style="color:#7F007F">(talk)</sup>]] [[Special:Contributions/Ritchie333|<sup style="color:#7F007F">(cont)</sup>]] 16:16, 10 February 2015 (UTC)
+
+:::{{U| Ritchie333}}. {{U|Valenciano}}, I spend several ''hours'' every week patrolling the patrollers and I've been doing this for around 4 years. There is so much poor tagging nowadays that I only bother now to contact the patrollers whom I really have to ask to stop patrolling and deven that is far, far too many. I would hesitate to say that the majority of patrollers arfe still working from the old feed. The New pages Feed and the Curation tool have been running now for around two years, so I'm going to make a move soon to get the old feed cdeprecated - to do any good anywhere on Wikipedia, one needs to get maintenance workers singing from the same page and applying the same judgement and criteria.
+:::NPP is not an article hospital or the ARSollers should ''not'' be taking the time to improve or repair artic les. If they do the backlog will be even longer than the current 30,000. Indeed, they should do a 'before' before tagging, but if they find refs they should tell the creator that there are refs out there so would they pleazse add them or have their article slated for deletion. What ever Wikipedia guidelines say, there are very definitely moments when we have to be cruel to be kind, gthe most important thing is to avoid being blunt and bitey when we do it. I could go on and on and on about NPP, but I'm slowly getting totally fed up with say ing the same thing to 20 users a week. This is the kind of thing that one day will cause me to retire for good from Wikipedia. --[[User:Kudpung|Kudpung กุดผึ้ง]] ([[User talk:Kudpung#top|talk]]) 07:23, 11 February 2015 (UTC)
+:::BTW getting A7 delayed for 40 minutes won't wash. It's been suggested before. People who propose such ideas may need somewhat more experience with patrolling and won't have noticed that that the majority of A7 are articles that ''must'' be deleted almost as quickly as spam or attach pages - or are you really going to make a mockery of the process by allowing : '' 'I am Johm Doe and me and Jim are the students in Grade 7 at Mrs Bingo's class' stand for an hour before hammering it - and its creator - into the floor? --[[User:Kudpung|Kudpung กุดผึ้ง]] ([[User talk:Kudpung#top|talk]]) 07:34, 11 February 2015 (UTC)
+::::I don't agree with that sentiment, I'm afraid. What do you mean by "hammering its creator into the floor"? The spam folder on my Gmail account has a grace period of 30 days, I don't think there's a single message I want to read, and that's just one account out of 425 million, that's about a hundred times as many articles on Wikipedia. Google does not generally bring Wikipedia articles to the top of search results until about a week, based on my tracking of [[pink cat]], which despite being created nearly a month ago and having 12 hours linked off the main page via a DYK, does not appear in the first page of hits on a Google Search. These type of articles (which from my experience are more likely to be things like "Advanced Solutions inc is an Indian derivitives analysis company founded in January 2015" or "Bringers of Darkness is a doom metal band from Boise, Idaho") cause no legal harm to the WMF by existing, unlike attack pages or copyvios, and is unlikely to be linked from anywhere in the hour or two it may exist. So my evidence suggests that hastily deleting these types of articles has no obvious benefit, and should not be necessary. [[WP:DEADLINE|Why the rush]]? [[User:Ritchie333|<b style="color:#7F007F">Ritchie333</b>]] [[User talk:Ritchie333|<sup style="color:#7F007F">(talk)</sup>]] [[Special:Contributions/Ritchie333|<sup style="color:#7F007F">(cont)</sup>]] 09:49, 11 February 2015 (UTC)
+:::Overall it's a fine line. We need new contributors and new articles and some of the creators of the latter do get scared away by over hasty tagging, but on the other hand sloppy articles about some "up and coming" band that the creator plays bongos for do create work which takes regulars' time away from adding content and it's often for the sake of an SPA that has no other interest in Wikipedia. There are two issues, firstly, there does need to be more guidance for those new here and submitting the first articles and AFC doesn't seem to have fulfilled that. That could come in the form of technical tweaks to give more advice and guidance when new users are submitting their first articles. Secondly, NPPatrollers need to understand that speedy deletion doesn't necessarily mean nominating pages as quickly as possible, it means that the article deletion process, which would normally take 7-10 days through PROD and AFD, can be done in a matter of hours. The latter could be done by changing the instructions at the top of NPP. You're right regarding the A7 issue and I did acknowledge that above, but I also believe that a lot of A7s could do with a bit more time. The "Danny X is the coolest kid in my class" ones can be nuked fairly quickly, but the ones like "company X is a famous travel agent in India" can be given a little more time just in case there are offline sources covering the company's services or products. [[User:Valenciano|Valenciano]] ([[User talk:Valenciano|talk]]) 08:20, 11 February 2015 (UTC)
+::::{{U| Ritchie333}}. {{U|Valenciano}}. Valenciano, have you lived and worked in India? I have. --[[User:Kudpung|Kudpung กุดผึ้ง]] ([[User talk:Kudpung#top|talk]]) 10:04, 11 February 2015 (UTC)
+::::{{U| Ritchie333}}. {{U|Valenciano}}. With all due respect, what it boils down to is that neither of you have properly read what I wrote above. That will of course teach me not to TL;DR... --[[User:Kudpung|Kudpung กุดผึ้ง]] ([[User talk:Kudpung#top|talk]]) 10:07, 11 February 2015 (UTC)
+:::::I did read what you wrote, but I simply do not agree with your views. There is no reason to disparage anyone with terms such as "trash" or "trolls". I think our conversation is done, and I fear we will continue to lose editors, which is a shame. Happy editing. [[User:Ritchie333|<b style="color:#7F007F">Ritchie333</b>]] [[User talk:Ritchie333|<sup style="color:#7F007F">(talk)</sup>]] [[Special:Contributions/Ritchie333|<sup style="color:#7F007F">(cont)</sup>]] 10:31, 11 February 2015 (UTC)
+::::Also, I fail to understand the value pf providing links to deleted G3s when we're disscussing A7. I have aqccess to deleted material, and take it from me, I've been here long enoigh to know the difference between a blatant vandalism and an A7 for an article that stands absolutely no chance whatsoever and should be flagged for deketion as soon as a patroller sees it. It doesn't matter if the creator might have stayed around to create a proper article about something else (let's not kid ourselves, the VAST majority of them don't), what NPP is for is to do a triage of articles, not to read the creator's mind or assess hi/her position and maturity in RL. We are an encyclopedioa, not a psychological counselling service (unless one is here for the pure social networking, but I am not - I'm here to build an encyclopedia and keep it free of trash and trolls, and actually I'm very much an inclusionist). --[[User:Kudpung|Kudpung กุดผึ้ง]] ([[User talk:Kudpung#top|talk]]) 10:16, 11 February 2015 (UTC)
+:::::I read everything you wrote and agree with some, but not all of it, I don't get your point about India. However, there does remain the issue of editor retention and the need to have new blood coming through. You don't throw the baby out with the trash and sometimes that is what NP patrollers are doing, as yes there will be cases, especially in the A7 area, where naive newbies will have posted a worthy topic but will have failed to reference it adequately. Incidentally, if the redlink you are speaking about is [[Karim Badie]], that was an A7 when I posted it as an example and was indeed deleted as such. The fact that a subsequent version was deleted as G3 doesn't change that or the fact that I specifically highlighted that as an example of an article which didn't deserve to stick around. [[User:Valenciano|Valenciano]] ([[User talk:Valenciano|talk]]) 14:25, 11 February 2015 (UTC)
+::::::I think things have got a little at cross-purposes. [[The Mariposa Trust]] was a good result. Have a look at [[User talk:Charliallpress|the creator's talk page]]. Couple of cliched bitey twinkle tags, a few ''really'' bitey block warnings, I go in, add 6 reliable sources, everyone says "oops, sorry" and things calm down. That's the stuff I'm talking about. I maybe need to get some metrics of "CSD saves", but it can't be that many (I would guess about 70% - 90% of A7s are generally impossible for me to salvage) and most I do salvage go to BLP prod or AfD. Certainly there were about 20 articles tagged for A7 this morning that I thought "clear cut A7; bin now". But, going back to my original point that seems to have been lost a bit, a script would almost certainly (I haven't checked) report 0 or few news hits for all of those, giving the tagger a "clean" bill of health to CSD it. [[User:Ritchie333|<b style="color:#7F007F">Ritchie333</b>]] [[User talk:Ritchie333|<sup style="color:#7F007F">(talk)</sup>]] [[Special:Contributions/Ritchie333|<sup style="color:#7F007F">(cont)</sup>]] 14:50, 11 February 2015 (UTC)
+
+{{od}}The first tagging was A7. It was blatant trolling and could have been tagged as hoax/vandalism, or even with just a tiny stretch of imagination as an attack page. Some of us admins would accord 2% AGF and delete it as a test page to save the creator's face -in which case however an L1 warning about creating inappropriate pages might be conceivable.
+
+The second tagging (on recreation) of the same content by {{U|J man708}} as G3 was perfectly accurate. In both instances the tagging took place within 5 mins or so of creation - and most rightly so - even a raw newbie patroller would know (well, mostly) that you are not going to make a regular Wikipedian out of that author. Sorry to continue to be a damp squid for anyone advocating a delay for tagging of articles that are pure nonense.--[[User:Kudpung|Kudpung กุดผึ้ง]] ([[User talk:Kudpung#top|talk]]) 18:58, 11 February 2015 (UTC)
+
+:As I'm not an admin I can't view the page in question, so will take your word for it, but as I cited that as a specific example of a page which *should* be quickly nuked I'm not sure what point you're trying to make. No one is advocating a delay for nonsense articles. I nominate quite a few myself as soon as I see them and those should quickly go, but there are pages on other topics such as companies which are less obviously problematic, could theoretically have coverage not immediately obvious from google searches like offline sources or through paywalls and articles like that don't need to bite the dust so quickly. How to gain a little more time for those is one of several issues I see at NPP along with the [[WP:BEFORE]] issue of people not even bothering to check for sources. We do need a wider discussion on it. [[User:Valenciano|Valenciano]] ([[User talk:Valenciano|talk]]) 19:26, 11 February 2015 (UTC)
+
+''All'' new articles are referenced and cached by Google within seconds of being posted on Wikipedia - that's part of the deal for Google's $1 mio donation, so that Internet searches ''always'' return Wikipedia articles at the top of the list. Your Gmail content is not referenced at all so I fail totally to see what it has to do with our problems at NPP. Fortunately, when I got the Draft namespace (yes, another of my proposals) created, we stipulated hat drafts will be 'no index, no follow'. That's what should have been included for new pages at NPP until they had been 'patrolled' but somehow the devs failed to do it and now it's an uphil battle to get it done in retro. --[[User:Kudpung|Kudpung กุดผึ้ง]] ([[User talk:Kudpung#top|talk]]) 18:58, 11 February 2015 (UTC)
+: I'm sure we're not talking about the same articles. Anyway, WP articles ''used'' to be the top Google search hit, but recently I've found that's not the case so much, they take a while to catch up. [http://www.google.co.uk/search?client=safari&rls=en&q=%22pink+cat%22&ie=UTF-8&oe=UTF-8&gfe_rd=cr&ei=0rrbVJGnNILFaNv1gIAK pink cat] isn't on the first page. [http://www.google.co.uk/search?client=safari&rls=en&q=mariposa+trust&ie=UTF-8&oe=UTF-8&gfe_rd=cr&ei=87rbVMGSC8-DaID3gNgN The Mariposa Trust] is hit #6. I created [[Tape op]] (the term, not the magazine) yesterday and while the magazine might drown that out, I've just been through [http://www.google.com/search?q=%22tape+op%22&client=safari&rls=en&oq=&gs_l= five pages of Google] and not found it. So something has changed somewhere, but as Google never release pagerank algorithms, who knows. Maybe it now takes page views into the equation; obviously older articles will have had lots of views anyway because of their prominence, so will self-weight towards the top. [[User:Ritchie333|<b style="color:#7F007F">Ritchie333</b>]] [[User talk:Ritchie333|<sup style="color:#7F007F">(talk)</sup>]] [[Special:Contributions/Ritchie333|<sup style="color:#7F007F">(cont)</sup>]] 20:33, 11 February 2015 (UTC)
+::{{U| Ritchie333}}. {{U|Valenciano}}, [[The Mariposa Trust]] was tagged A7 by {{U|Harry the Dirty Dog}} in '''less than a minute''' of its creation. The patroller, around since 2007 with an EC of 13,569, should have known better than to tag so quickly and should have applied other maintenance tags and made use of the message feature. Contrary to policy, the creator {{U|Charliallpress}} almost instantly removed the CSD themself and within less than a minute the tag was restored, again by {{U|Harry the Dirty Dog}} - this should have been an alert to the patroller who seems to patrol with a vengeance. However, the first and second pages of Google did not return any RS, and that's all a patroller is expected to as a ''Before'', apart from checking for COPYVIO. I would therefore probably have tagged ''that'' page for A7 but certainly not within less than 20 minutes. I click to add such pages to my watchlist and go back to then after 20 minutes or so. I will soon find out later if it is still a blue link and if it is I will look to see why.
+
+::The fiasco of a discussion on the creator’s talk page starts of being rather bitey and only after a lot of kerfuffle does it start to get any nicer. Admittedly it pays to remember that Charliallpress is not here to become a regular Wikipedia contributor but nevertheless their article was neither a hoax/vandalism or otherwise toxic and they deserved to be treated in GF. Lessons to be learned all round (except {{U|MelanieN}} who I recently [[Wikipedia:Requests for adminship/MelanieN|turned into an admin|| and will be one of the best we have).
+
+::This article and its creator are classic examples of the Foundation’s mammoth failure after all these years to address the lack of a proper landing page for new users - I believe this to be a WMF mandate even more than the creation of the new page feed and it curation thing. Indeed,development of the Article Creation Flow began but when things cooled down it was swept under the carpet. Follow up talks every 6 - 12 months have received vague promises but still nothing has been done. While the WMF will refuse, even with overwhelming community consensus, to introduce any mechanism to restrict creation of articles to [[WP:Autoconfirmed|auto confirmed]] users, there is nothing in that policy that says we cannot force all new users to build their first article through the [[Article Wizard]] - and that’s what IMO should be done. What needs to be done is:
+:::*Significantly improve the quality of NPP and either introduce a technically imposed qualification for doing it or significantly step up the control of those who patrol.
+:::*Create a proper landing page for new users, trolls, spammers, SPa, and who ever else, so that they have a clearer idea of what an [[encyclopedia]] is.
+:::*''Force'' at least all non confirmed users to choose to create either through the Article Wizard or to create a Draft first for submission to AfC (bearing in mind that there is a growing movement to migrate AfC to NPP and not without reason.
+:::*Maintain the new quality of voting at RfA and continue our campaign to get users of the right calibre to run for adminship.
+:::*Get regular editors more involved in the RfA voting process.
+:::*Make it much quicker and easier to desysop the admins (probably pre-2007 promotions) who have a pattern of abusing their mandate.
+::None of the above is impossible and I can't see anyone seriously disagreeing. Just needs aforethought and some careful planning. --[[User:Kudpung|Kudpung กุดผึ้ง]] ([[User talk:Kudpung#top|talk]]) 02:27, 12 February 2015 (UTC)
+
+== Thai user ==
+
+Hi Kudpung, not sure how much Thai you speak, but we have a bit of an issue with a Thai user. {{u|RKC Vakwai}} is uploading a lot of Thai football club logos, which in and of itself is not the issue, if they were properly licenced. The user is claiming they are the creator, and copyright holder, which is obviously not the case, having a look at their talk page, you can see the mass amount of messages, warnings, etc. that he/she has received. There was even a not so in depth discussion at AN/I a year ago which, really only resulted in a short message by another user. I dropped the last one, with a stop sign (presuming English as not a first language, visuals are good), saying don't upload anything without the correct licence. I am sure the actual message got lost in translation, but the concept is understood, based on [https://en.wikipedia.org/w/index.php?title=User%3AKelapstick&diff=646825765&oldid=643405902 this edit] on my talk page. If you do know any Thai (or someone who does), could you explain the concept of fair use logos to this user? Really we can save a lot of time, work, and hassle if they just upload the images as fair use, but I personally cannot explain that in a way they will understand (my rather stern warning was really just to get them to stop uploading temporarily, lest they actually get blocked). Ta, --[[User:kelapstick|kelapstick]]<sup>([[User talk:Kelapstick#top|bainuu]]) </sup> 21:01, 12 February 2015 (UTC)
+:Also you seem to have a fan - {{noping|Reptiles Birds Exotic AnimalsYes Bad UsersNo}}... --[[User:kelapstick|kelapstick]]<sup>([[User talk:Kelapstick#top|bainuu]]) </sup> 21:14, 12 February 2015 (UTC)
+
+:Hi {{U|kelapstick}}. sorry to disappoint you but while I ''speak'' relatively fluent Thai, and can read it just a tiny bit, it's worlds away from discussing anything in that language with anyone on Wikipedia.--[[User:Kudpung|Kudpung กุดผึ้ง]] ([[User talk:Kudpung#top|talk]]) 12:54, 13 February 2015 (UTC)
+::No worries, thanks anyway Kudpung. --[[User:kelapstick|kelapstick]]<sup>([[User talk:Kelapstick#top|bainuu]]) </sup> 13:03, 13 February 2015 (UTC)
+
+== Valentine Greets!!! ==
+{| style="background-color: #FA8072; border: 4px solid #DC143C;"
+|rowspan="2" style="vertical-align: middle; padding: 1px;" | [[File:Wikilove2 new.png|211px]]
+|style="font-size: x-large; padding: 2px 2px 0 2px; height: 1.5em;" | '''Valentine Greets!!!'''
+|-
+|style="vertical-align: middle; padding: 3px;" |
+----
+'''Hello Kudpung, [[love]] is the language of hearts and is the feeling that joins two souls and brings two hearts together in a bond. Taking love to the level of [[Wikipedia]], spread the [[Wikipedia:WikiLove|WikiLove]] by wishing each other [[Valentine's Day|Happy Valentine's Day]], whether it be someone you have had disagreements with in the past, a good friend, or just some random person.<br />
+Sending you a heartfelt and warm love on the eve, <br>
+Happy editing,<br>
+&nbsp;-&nbsp;[[User:The Herald|'''T H''']] ([[User talk:The Herald|''here I am'']]) 12:08, 13 February 2015 (UTC)
+
+''{{resize|96%|Spread the love by adding {{tls|Valentine Greetings}} to other user talk pages.}}''
+|}
+== Me? ==
+[[Special:Diff/647199277|<s>Is</s> Are you]] referring me among those unhelpful editors? '''[[User:Jim Carter|<span style="color:#000000">Jim</span> <span style="color:#FF0000">Car</span><span style="color:#FFCC00">ter</span>]]''' 15:01, 15 February 2015 (UTC)
+:{{U|Jim Carter|Jim}}, It's not 'Is you' it's 'Are you', and I'm referring to users who have been around since long before you joined Wikipedia, and who have a particularly nasty disposition - remember some of us have been around here for 10 years or more. Stop being so paranoid. --[[User:Kudpung|Kudpung กุดผึ้ง]] ([[User talk:Kudpung#top|talk]]) 15:10, 15 February 2015 (UTC)
+::Oh! I started this thread with "Is" as I wanted to say something else but later changed it but forgot to change that word. Don't count my grammatical mistakes, I make plenty; though I'm able to write two GAs and a FL. I'm asking you because I'm a bit confused as your comment there didn't made it clear to whom you're referring. Best, '''[[User:Jim Carter|<span style="color:#000000">Jim</span> <span style="color:#FF0000">Car</span><span style="color:#FFCC00">ter</span>]]''' 16:05, 15 February 2015 (UTC)
diff --git a/Echo/tests/phpunit/includes/revision_txt/647260329.txt b/Echo/tests/phpunit/includes/revision_txt/647260329.txt
new file mode 100644
index 00000000..d7b7c21f
--- /dev/null
+++ b/Echo/tests/phpunit/includes/revision_txt/647260329.txt
@@ -0,0 +1,474 @@
+<div style="margin-bottom: 4.25em; position: absolute; bottom: -5em; right: 1em; "><div style="font-style: roman; background-color: #CBEBFF; font-weight:bold; border: 1px steelblue solid; color:black; padding:5px 5px">Please sign your message.</div></div>
+{{Statustop|offset=250}}
+{{administrator topicon|icon_nr=3}}
+{{Online Ambassador}}
+<!-- {{Attempting wikibreak|[[User:Kudpung|Kudpung]]| sometime|I}}
+ -->
+{{editnotice
+| header = Hi, welcome to my talk page!
+| headerstyle = font-size: 150%; color: #9900FF; font-family: 'Copperplate Gothic Light'
+| text =
+*I make plenty of errors - if you are here to complain about a tag, a warning, a deletion, or a block, please [[WP:AGF|'''assume good faith''']].
+*If I ''have'' erred, don't hesitate to tell me, but being '''rude''' will [[WP:BAIT|get you nowhere]].
+*If ''you'' have erred, chances are I'll help you get round it and over it, but [[WP:GAME|'''I don't suffer fools gladly''']] ;)
+*'''Please''' <span class="plainlinks">[http://en.wikipedia.org/w/index.php?title=User_talk:Kudpung&action=edit&section=new click here]</span> '''to leave a new message'''.
+[[Image:Crystal Clear app clock.svg|25px]] On line now? It is '''{{#time:g:i A|{{CURRENTHOUR}}:{{CURRENTMINUTE}} {{#if:{{{1|}}}|{{{1}}}|+7}} hours}}''' where this user lives near [[Udon Thani]], '''Thailand'''
+| textstyle = font-size: 100%; color: #555555; background-color: #DDDDDD
+| image = [[File:Nuvola apps edu languages.svg]]
+| textstyle = font-size: 100%; color: #555555; background-color: #DDDDDD
+| image = [[File:Nuvola apps edu languages.svg]]
+}}
+{{collapsetop|Archives}}
+{{archive box|auto=no|search=yes|style=background-color:lightBlue; border:1px solid black;|
+{{flatlist}}
+2006-2009
+*[[/Archive 1|Start - Jun 2009]]
+*[[/Archive 2|July-Aug]]
+*[[/Archive Aug 2009|Aug]]
+*[[/Archive Aug - Dec 2009|Sep - Dec]]
+*<hr>
+2010
+*[[/Archive Jan 2010|Jan]]
+*[[/Archive Feb 2010|Feb]]
+*[[/Archive Mar 2010|Mar]]
+*[[/Archive Apr 2010|Apr]]
+*[[/Archive May 2010|May]]
+*[[/Archive Jun 2010|Jun]]
+*[[/Archive July 2010|Jul]]
+*[[/Archive Aug (1) 2010|Aug]]
+*[[/Archive Sep 2010|Sep ]]
+*[[/Archive Oct 2010|Oct]]
+*[[/Archive Nov 2010|Nov]]
+*[[/Archive Dec 2010|Dec]]
+*<hr>
+2011
+*[[/Archive Jan 2011|Jan]]
+*[[/Archive Feb 2011|Feb]]
+*[[/Archive Mar 2011|Mar]]
+*[[/Archive Apr 2011|Apr]]
+*[[/Archive May 2011|May]]
+*[[/Archive Jun 2011|Jun]]
+*[[/Archive Jul 2011|Jul]]
+*[[/Archive Aug 2011|Aug]]
+*[[/Archive Sep 2011|Sep]]
+*[[/Archive 01-15 Oct 2011|01-14 Oct]] • [[/Archive 15-30 Oct 2011|15-30 Oct]]
+*[[/Archive Nov 2011|Nov]]
+*[[/Archive Dec 2011|Dec]]
+*<hr>
+2012
+*[[/Archive Jan 2012|Jan]]
+*[[/Archive Feb 2012|Feb]]
+*[[/Archive March-June 2012|Mar-Jun]]
+*[[/Archive Jul 2012|Jul]]
+*[[/Archive Aug 2012|Aug]]
+*[[/Archive Sep 2012|Sep]]
+*[[/Archive Oct 2012|Oct]]
+*[[/Archive Nov 2012|Nov]]
+*[[/Archive Dec 2012|Dec]]
+*<hr>
+2013
+*[[/Archive Jan 2013|Jan]]
+*[[/Archive Feb 2013|Feb]]
+*[[/Archive Mar 2013|Mar]]
+*[[/Archive Apr 2013|Apr]]
+*[[/Archive May 2013|May]]
+*[[/Archive Jun 2013|Jun]]
+*[[/Archive Jul 2013|Jul]]
+*[[/Archive Aug 2013|Aug]]
+*[[/Archive Sep 2013|Sep]]
+*[[/Archive Oct 2013|Oct]]
+*[[/Archive Nov 2013|Nov]]
+*[[/Archive Dec 2013|Dec]]
+*<hr>
+2014
+*[[/Archive Jan 2014|Jan]]
+*[[/Archive Feb, Mar, Apr, May 2014|Feb, Mar, Apr, May]]
+*[[/Archive Jun 2014|Jun]]
+*[[/Archive Jul 2014|Jul]]
+*[[/Archive Aug 2014|Aug]]
+*[[/Archive Sep 2014|Sep]]
+*[[/Archive Oct 2014|Oct]]
+*[[/Archive Nov 2014|Nov]]
+*[[/Archive Dec 2014|Dec]]
+*<hr>
+2015
+*[[/Archive Jan 2015|Jan]]
+{{endflatlist}}
+}}
+{{collapsebottom}}
+{{messagebox|'''NOT even in semi-retirement, but I am only very sporadically available for the time being. I may throw in the occasional edit, but I cannot for the moment get involved in issues that would require my undivided attention, or participation in anything over a number of consecutive days. Thanks.'''
+}}
+== Final warning on Awesomeninja's talk page ==
+
+Hi Kudpung,
+
+I noticed that you put a final warning for disruption on Awesomeninja's talk page. While I must admit that I vehemently despise "cool teen talk", it's my understanding that a final warning was only to be used ''after'' several warnings had been previously issued, ''or'' when a first instance of vandalism is so gross and severe that it deserves an almost immediate block. I don't see any previous warnings on Awesomeninja's talk page, and I hardly think that a NOTNOW RfA is such a severe offense to require a final warning right off the bat. --[[User:Biblioworm|<span style="color:#6F4E37;">'''''Biblio'''''</span>]][[User_talk:Biblioworm|<span style="color:#6F4E37;">'''''worm'''''</span>]] 15:36, 31 January 2015 (UTC)
+:That's your opinion, {{U|Biblioworm|}}. I have been around in life and on Wikipedia a long time and I use my judgement ''very'' carefully and do a lot of research before I do anything or criticise anyone's work or actions. I helped rewrite and develop many of the warning templates - I think I understand the guidelines for their use. --[[User:Kudpung|Kudpung กุดผึ้ง]] ([[User talk:Kudpung#top|talk]]) 00:23, 1 February 2015 (UTC)
+::Thanks for your reply, but it does not seem to directly address the point. This is the description for the level 4 template: "Assumes bad faith; strong cease and desist, last warning". How is a newbie (presumably unaware of what admins really are) filing a NOTNOW RfA editing in bad faith? Isn't it policy that users should [[WP:AGF|assume good faith]] unless there is a very good reason not to? Besides, three users (myself included) messaged the user in almost immediate succession after he transcluded his RfA. I think three rapid-fire messages and a speedy deletion notice was enough to get the point across. In any case, I have no desire to argue, so I won't say any more. --[[User:Biblioworm|<span style="color:#6F4E37;">'''''Biblio'''''</span>]][[User_talk:Biblioworm|<span style="color:#6F4E37;">'''''worm'''''</span>]] 00:51, 1 February 2015 (UTC)
+:::It does address the point because it states: ''do a lot of research before I do anything or criticise anyone's work or actions''. That's good advice for anyone, particularly users who have been around for only a relatively short time and start criticising the work of admins who, contrary to what you may have been led to believe, are ''not'' all bad, do ''not'' all misuse their tools, and do ''not'' all apply poor judgement. [[WP:IAR|Experience is the key]]. Now let's both get back to work, {{U|Biblioworm|}}. --[[User:Kudpung|Kudpung กุดผึ้ง]] ([[User talk:Kudpung#top|talk]]) 00:59, 1 February 2015 (UTC)
+
+== The RfC for AfC reviewer requirement ==
+
+Hey Kudpung, is there any new information on that? I don't think I was actually around when it happened (oops) but... yeah... where can I find the infos...? Thanks! <span style="text-shadow:#A2E1FC 2px -2px 9px;">&mdash;&nbsp;[[User:Kikichugirl|<font face="Georgia" color="#000000">kikichugirl</font>]]&nbsp;<sup>[[User talk:Kikichugirl|<font color="#8A37F0">speak&nbsp;up!</font>]]</sup></span> 01:47, 1 February 2015 (UTC)
+
+Hi {{U|Kikichugirl}}. It was based on two RfC that I started. One was for a requirement for qualifications, followed up with one to establish the actual requirement and enact it. Both were carried by consensus. It's all history now.
+*[[Wikipedia:WikiProject Articles for creation/RfC Reviewer permission]]
+*[[Wikipedia:WikiProject Articles for creation/RfC for AfC reviewer permission criteria]]
+There was another one proposed by {{U|Anne Delong}} which was an attempt to get the imp;ementation sharpened up, but although I supported it, the RfC was not heavily subscribed:
+*[[Wikipedia:WikiProject Articles for creation/RfC for AfC reviewer permission implementation]]
+That said, we have reached the stage now where the technical implementation needs to be seriously reviewd, or to implement the consensus of April last year to scrap AfC and either replace it with a software package similar to that of NPP, or to merge the whole process to NPP entirely. I support both proposals wholeheartedly and the community just needs to decide which one they want. The problem we are currently faced with is that AfC has become a battleground for volunteer programmers vying for first place, and is fast turning into a walled garden. --[[User:Kudpung|Kudpung กุดผึ้ง]] ([[User talk:Kudpung#top|talk]]) 02:10, 1 February 2015 (UTC)
+:Thanks. I might be elitist or have high standards, but the dubious reviews I've seen today, from several users, make me want to quit the project and cry instead... we definitely need to fix up the criteria. <span style="text-shadow:#A2E1FC 2px -2px 9px;">&mdash;&nbsp;[[User:Kikichugirl|<font face="Georgia" color="#000000">kikichugirl</font>]]&nbsp;<sup>[[User talk:Kikichugirl|<font color="#8A37F0">speak&nbsp;up!</font>]]</sup></span> 08:24, 1 February 2015 (UTC)
+::{{U|Kikichugirl}} check out the current discussion at [[WT:AFC]], and if you can, provide diffs for the poor reviews, something is going to break soon if DGG and I can convince the stone wallers at AfC that someting needs to be done. --[[User:Kudpung|Kudpung กุดผึ้ง]] ([[User talk:Kudpung#top|talk]]) 08:30, 1 February 2015 (UTC)
+:::I've seen it. My question is: Why is AfC so complicated? When I did NPP, I felt myself getting increasingly bitey (I'm increasingly lenient at AfC) but AfC is starting to seem like a mess of blah. If there's a bad patrol at NPP, you stick the CSD tag on right where someone else didn't see it. If there's a bad review, then you gotta revert the review, confuse the newbie, and badness all around. Ugh. <span style="text-shadow:#A2E1FC 2px -2px 9px;">&mdash;&nbsp;[[User:Kikichugirl|<font face="Georgia" color="#000000">kikichugirl</font>]]&nbsp;<sup>[[User talk:Kikichugirl|<font color="#8A37F0">speak&nbsp;up!</font>]]</sup></span> 08:34, 1 February 2015 (UTC)
+::::{{tps}} - One particularly bad review I can think of is here: [[Brad Craddock]]. The reviewer declined it as "unnotable" when the topic clearly passes [[WP:ATHLETE]] and [[WP:GNG]]. It was written like an advertisement but extensive copyeditting turned it into a viable article. It's going to be shown on the Main Page (DYK) in a few days. AfC reviewers have a lot of power in their hands: In many cases, you can either uplift or destroy the spirit of a newbie and their willingness to contribute to Wikipedia. A bad review and a new editor may never want to come back or they get deep misconceptions about Wikipedia. To tell you the truth, the Brad Craddock, article made me rather sad. [[User talk:Wikifanman37#Brad Craddock article|I had to go into full damage control]]. --'''[[User:Ceradon|ceradon]]''' ([[User talk:Ceradon|<font color="#036">talk</font>]] • [[Special:Contributions/Ceradon|<font color="#036">contribs</font>]]) 08:42, 1 February 2015 (UTC)
+{{od}}{{U|Ceradon}}. {{U|Kikichugirl}}. I can only reiterate that AfC is only a very tiny project when compared with the workload at NPP which is a serious vetting process and not a cosy little hobby for some who want to save a handfull of crap articles every day. Sure, the quality of patrolling at NPP is lousy, and it will remain so until the community stops refusing to believe that we need some criteria of competency for patrollers . --[[User:Kudpung|Kudpung กุดผึ้ง]] ([[User talk:Kudpung#top|talk]]) 08:52, 1 February 2015 (UTC)
+* {{Tps}} I support scrapping AfC and merging it into NPP or replacing it with and extension/guidedTour replacement as well. — <code class="nowrap">&#123;&#123;U&#124;[[User:Technical 13|Technical 13]]&#125;&#125; <sup>([[Special:EmailUser/Technical 13|e]] • [[User talk:Technical 13|t]] • [[Special:Contribs/Technical 13|c]])</sup></code> 16:42, 1 February 2015 (UTC)
+::In which case {{U|Technical 13}}, you've done yourself and us a misfavour by voting as you did [[Wikipedia:WikiProject Articles for creation/RfC to physically restrict access to the Helper Script|here]]. Scrapping AfC is the obvious solution but before we get there we have to prove to the community that AfC is not working in its present concept. History has shown that on Wikipedia, little changes lead to bigger ones. This would have been a valuable stepping stone, and still can be if you would reconsider. --[[User:Kudpung|Kudpung กุดผึ้ง]] ([[User talk:Kudpung#top|talk]]) 17:58, 1 February 2015 (UTC)
+::* [[Special:Diff/645188517|Fair enough]]. — <code class="nowrap">&#123;&#123;U&#124;[[User:Technical 13|Technical 13]]&#125;&#125; <sup>([[Special:EmailUser/Technical 13|e]] • [[User talk:Technical 13|t]] • [[Special:Contribs/Technical 13|c]])</sup></code> 18:11, 1 February 2015 (UTC)
+* I am not against ''merging'' the AfC and NPP processes, but the reason I have support AfC for now is, as Kudpung says, due to bad patrolling at NPP. Some NPPers (eg: Mr X, WikiDan61, RandyKitty, SL93) do good work, but there is still [[WP:BITE]]ing going on, so I really think that if we want to put up a hard barrier to reviewing new articles, we apply it consistently across the board. I have some shortcuts on my userpage to check articles nominated for CSD, particularly A7 and G11, and try and salvage anything that I can where possible. ([https://en.wikipedia.org/w/index.php?title=Köpenicker_Blues_und_Jazz_Festival&diff=645333548&oldid=645294851 example]) However, where I can't I consistently see confused newbies who don't understand why their work will be deleted. As long as a reasonable explanation is given, ideally suggesting another article or website where some of the content could go, is a better approach. Unfortunately it's a more time consuming one. [[User:Ritchie333|<b style="color:#7F007F">Ritchie333</b>]] [[User talk:Ritchie333|<sup style="color:#7F007F">(talk)</sup>]] [[Special:Contributions/Ritchie333|<sup style="color:#7F007F">(cont)</sup>]] 18:04, 2 February 2015 (UTC)
+::I can't argue with that, {{U|Ritchie333|Ritchie}}. That's why it's a total paradox that NPPers don't require any qualifications at all. They refuse to read what instructions there are (the ones {{U|Scottywong}} and I wrote at [[WP:NPP]]), rarely make use of the handwritten note feature of the curation tool, and never move an article to Draft namespace. That said, in a way, AfC and NPP are almost identical processes with NPP being by far the most important of the two. Merging would be ideal if the regular experienced AfC reviewers would migrate with the move. That way, we would have the best of both worlds. --[[User:Kudpung|Kudpung กุดผึ้ง]] ([[User talk:Kudpung#top|talk]]) 23:09, 2 February 2015 (UTC)
+:::I'm going to start moving stuff to draft ([[Draft:Le Trouble (musician)|first example]]) and see if takes up. [[User:Ritchie333|<b style="color:#7F007F">Ritchie333</b>]] [[User talk:Ritchie333|<sup style="color:#7F007F">(talk)</sup>]] [[Special:Contributions/Ritchie333|<sup style="color:#7F007F">(cont)</sup>]] 17:17, 3 February 2015 (UTC)
+
+== Buster7 ==
+
+Hello there. I would appreciate it of you could keep me informed of the case I buster7. I would appreciate it if there could be a sutiable warning for violation rules and his extra rights as a rollbacker. How could there be an accidental rollback? Thank you very much[[User:TheMagikCow|TheMagikCow]] ([[User talk:TheMagikCow|talk]]) 14:55, 1 February 2015 (UTC)
+
+:Hi {{U|TheMagikCow|Magic Cow}} It's a very strict rule that editors should not refactor, re-edit, or remove anything from other users' talk pages or user pages. It is in fact quite easy to click a Rollback button by mistake, that's why we're so strict about handing out Rollback rights. In view of the events of earlier today (or tonight according to wherever you are) {{U|Buster7}} could have every reason to take a swipe at one of my edits. It would be a huge coincidence if it were an accident, but I guess we have to stretch the rubber band of AGF and presume it was. --[[User:Kudpung|Kudpung กุดผึ้ง]] ([[User talk:Kudpung#top|talk]]) 15:14, 1 February 2015 (UTC)
+
+== RfC: AfC Helper Script access ==
+
+An RfC has been opened at [[Wikipedia:WikiProject Articles for creation/RfC to physically restrict access to the Helper Script|RfC to physically restrict access to the Helper Script]]. You are invited to comment. --[[User:Kudpung|Kudpung กุดผึ้ง]] ([[User talk:Kudpung#top|talk]]) 18:09, 1 February 2015 (UTC)
+
+== A barnstar for you! ==
+
+{| style="background-color: #fdffe7; border: 1px solid #fceb92;"
+|rowspan="2" style="vertical-align: middle; padding: 5px;" | [[File:Brilliant Idea Barnstar Hires.png|100px]]
+|style="font-size: x-large; padding: 3px 3px 0 3px; height: 1.5em;" | '''The Brilliant Idea Barnstar'''
+|-
+|style="vertical-align: middle; padding: 3px;" | For all your work with AfC reform. <span style="text-shadow:#A2E1FC 2px -2px 9px;">&mdash;&nbsp;[[User:Kikichugirl|<font face="Georgia" color="#000000">kikichugirl</font>]]&nbsp;<sup>[[User talk:Kikichugirl|<font color="#8A37F0">speak&nbsp;up!</font>]]</sup></span> 00:02, 2 February 2015 (UTC)
+|}
+;Thank you ! --[[User:Kudpung|Kudpung กุดผึ้ง]] ([[User talk:Kudpung#top|talk]]) 00:56, 2 February 2015 (UTC)
+
+== WP:ER ==
+
+You're always welcomed at [[WP:RETENTION]] -- [[User:GoodDay|GoodDay]] ([[User talk:GoodDay|talk]]) 03:18, 2 February 2015 (UTC)
+
+== Shane Ferguson ==
+
+Hello, could you please semi-protect [[Shane Ferguson]] as it's getting a lot of disruptive editors at the moment. Thanks, [[User:JMHamo|JMHamo]] ([[User talk:JMHamo|talk]]) 00:59, 3 February 2015 (UTC)
+:{{done}} --[[User:Kudpung|Kudpung กุดผึ้ง]] ([[User talk:Kudpung#top|talk]]) 01:03, 3 February 2015 (UTC)
+
+== Paracommunications ==
+
+Hi Kudpung
+
+I don't understand your reasons for proposing deletion of my Paracommunications entry. Please would you explain, as this is my first entry to Wikipedia. What does dicdef mean? And, how should I edit this entry so it is not deleted. Thank you.
+
+David <small><span class="autosigned">—&nbsp;Preceding [[Wikipedia:Signatures|unsigned]] comment added by [[User:Batmanolan|Batmanolan]] ([[User talk:Batmanolan|talk]] • [[Special:Contributions/Batmanolan|contribs]]) 03:28, 3 February 2015 (UTC)</span></small><!-- Template:Unsigned --> <!--Autosigned by SineBot-->
+
+:Hi {{U|Batmanolan|David}}. Well, Wikipedia is an encyclopedia and not a dictionary. There is a very big difference (dicdef = dictionary definition). That said, the page will not be suitable for Wikipedia at all, even the more so that the word is not to be found anywhere else. You could try publishing it at [[Wiktionary]] which is a Wikimedia web site., but although [[Wiktionary]] is in the same group, we here don't work there. Regards, --[[User:Kudpung|Kudpung กุดผึ้ง]] ([[User talk:Kudpung#top|talk]])
+
+Done, thanks for the tip. Please feel free to delete, now. <small><span class="autosigned">—&nbsp;Preceding [[Wikipedia:Signatures|unsigned]] comment added by [[User:Batmanolan|Batmanolan]] ([[User talk:Batmanolan|talk]] • [[Special:Contributions/Batmanolan|contribs]]) 03:52, 3 February 2015 (UTC)</span></small><!-- Template:Unsigned --> <!--Autosigned by SineBot-->
+== Edit summary usage ==
+Hi Kudpung! I just need some advice. Is it okay to use words like "Fu*k off" in edit summaries when directing other users? Isn't it violates our core policy, [[WP:CIVILITY]]? Today, I came across an editor who often uses those words in edit summaries. See [[Special:Diff/645405716|this]]. When I asked him not to use such words, he said [[Special:MobileDiff/645410610|this]]. It is not the first time he is using profanity when talking about other fellow editors. [[Special:MobileDiff/642443657|Here]] some one warned him too when he said someone a "miserable shit". You will get to see more such things in his talk page history and elsewhere. I think it's time for an admin to step in and warn. What you think? '''[[User:Jim Carter|<span style="color:#000000">Jim</span> <span style="color:#FF0000">Car</span><span style="color:#FFCC00">ter</span>]]''' 06:17, 3 February 2015 (UTC)
+
+:It's ''never'' alright to use such language either on edit summaries or anywhere else. But remember, I am very old fashioned and come from a British background where such language was never used. It might be more modern and more tolerated nowadays, but I don't really think it is, and it's certainly not the kind of language that should be used on Wikipedia. I looked at the edit history and it seems you may have done something wrong but I guess it wasn't intentional. I very much liked one comment of yours I came across (I seem to have seen something very similar before...), you should use it more often, but carefully of course, and only if you are sure that the person is a child (well, under 18 or so). I made myself a golden rule many years ago: always check out an editor's user page before you hit them with anything. If the page looks like a teenager's bedroom wall, chances ar that they are a teenager (or even younger), but on the other hand, while there are lots of children who act like mature adults on Wikipedia, there are lots of adults who behave like children ;) Keep up the good work, {{U|Jim Carter|Jim}}! --[[User:Kudpung|Kudpung กุดผึ้ง]] ([[User talk:Kudpung#top|talk]]) 06:38, 3 February 2015 (UTC)--[[User:Kudpung|Kudpung กุดผึ้ง]] ([[User talk:Kudpung#top|talk]]) 06:38, 3 February 2015 (UTC)
+::Yes, indeed. I strongly condemn the use of such language on Wikipedia. Actually, I don't know what exactly happened but I guess his comment was removed due to an edit conflict. His behavior was so childish that I didn't have to check his user page. Anyway, thank you. I'm just trying to follow your commands :) Cheers, '''[[User:Jim Carter|<span style="color:#000000">Jim</span> <span style="color:#FF0000">Car</span><span style="color:#FFCC00">ter</span>]]''' 10:06, 3 February 2015 (UTC)
+
+:::{{u|Jim Carter|Jim}} - Your comment had gone from polite to and I quote "''This is not a playground for kids. You're here to build an encyclopedia, why don’t you just grow up and behave as if you are working on the world’s biggest single source of information? A huge number of users are much older than you might think. Try to give others respect in talk pages as well as in edit summaries'' - How do you expect me to react?,
+:::Had you left it at the section where you said you disagreed with my use of words I'd of been more than happy to apologize, As for my "miserable shit" comment elsewhere ... I realized I was wrong and had removed it[https://en.wikipedia.org/w/index.php?title=Wikipedia:Requests_for_adminship/Titodutta&diff=642463191&oldid=642449018] so it's not really relevant here<br>
+:::Sorry Kudpung for barging in here hope you don't mind :) –[[User:Davey2010|<span style="color: blue;">'''Davey'''</span><span style="color: orange;">'''2010'''</span>]]<sup>[[User talk:Davey2010|<span style="color: navy;">'''Talk'''</span>]]</sup> 10:31, 3 February 2015 (UTC)
+
+::::Hi {{U|Davey2010|Davey}}. I don't really mind - if it helps clear the air. However, '' "This is not a playground for kids. You're here to build an encyclopedia, why don’t you just grow up and behave as if you are working on the world’s biggest single source of information? A huge number of users are much older than you might think." '' is is a brilliant statement if used wisely and one I would recommend being used more often by young editors who are concerned about the crap and strife caused by other young editors. Someone like me though, and an admin to boot, would get shot down in flames as a child hater if we said it. Even the word ''children'' is considered taboo on Wikipedia - by the children of course. You're probably not aware of it yet, but as one of the most regular contrubutors to [[WP:WER]] I have retired from that project - namely due to the antics of some younger editors and three or four adults who behave like kids a lot of the time. --[[User:Kudpung|Kudpung กุดผึ้ง]] ([[User talk:Kudpung#top|talk]]) 10:48, 3 February 2015 (UTC)
+
+:::::Hiya Kudpung, I agree with the statement providing its used wisely, Everyone knows I'm the least patient/short tempered person here so It was obvious saying something like that would tick me off easily,
+:::::I've not really dealt with any kids really but then again you're alot more active in other areas like NPP etc :)
+:::::When you overwritten my comment twice, Being very confused and without thinking I simply asked myself "what I stated in the edit summary" ...
+:::::Anyway I apologize to both Kudpung and to {{u|Jim Carter|Jim}} if they were offended/upset - Despite it may not seem like it at times - It's never my intention to offend or upset anyone,
+:::::Life's too short to start arguments & all that :)
+:::::Anyway I admit I shouldn't of said it and I sincerely apologize,
+:::::Thanks –[[User:Davey2010|<span style="color: blue;">'''Davey'''</span><span style="color: orange;">'''2010'''</span>]]<sup>[[User talk:Davey2010|<span style="color: navy;">'''Talk'''</span>]]</sup> 13:08, 3 February 2015 (UTC)
+
+== Little experience ==
+
+She ([[Kristin Sutton]]) doesn't look like she needs a wiki page. And who said I had little experience? It sounds like you're saying I'm dumb. --[[User:Satouyoukun|Satouyoukun]] ([[User talk:Satouyoukun|talk]]) 13:54, 3 February 2015 (UTC)
+:{{U|Satouyoukun}}, I am saying that with only 182 edits to the encycolpedia pages and wthout having read and thoroughly understood our deletion policies, you are not ready to be doing such maintenance tasks. --[[User:Kudpung|Kudpung กุดผึ้ง]] ([[User talk:Kudpung#top|talk]]) 14:02, 3 February 2015 (UTC)
+
+== You mentioned HJ mitchen ==
+
+http://theralphretort.com/wikipedia-blocks-veteran-editor-for-being-pro-gamergate-off-site-1715/ Check this article please <small><span class="autosigned">—&nbsp;Preceding [[Wikipedia:Signatures|unsigned]] comment added by [[User:IntelligenceMonkey|IntelligenceMonkey]] ([[User talk:IntelligenceMonkey|talk]] • [[Special:Contributions/IntelligenceMonkey|contribs]]) 14:13, 3 February 2015 (UTC)</span></small><!-- Template:Unsigned --> <!--Autosigned by SineBot-->
+::So what? And who are you, if I may ask? I do not take any notice of any crap that is written about Wikipedia on other websites. Also I have every confidence in the adminstrative acts and decisions of {{U|HJ Mitchell}}. --[[User:Kudpung|Kudpung กุดผึ้ง]] ([[User talk:Kudpung#top|talk]]) 14:21, 3 February 2015 (UTC)
+::::Oh yes, the block was based completely on something he said somewhere else on the Internet and on a site I don't even read. It wouldn't have anything at all to do with the [[Special:Contributions/Xander756|series of nasty BLP violations and personal attacks]]! ;) [[User:HJ Mitchell|<font color="Teal" face="Tahoma">'''HJ&nbsp;Mitchell'''</font>]] &#124; [[User talk:HJ Mitchell|<font color="Navy" face= "Times New Roman">Penny for your thoughts? </font>]] 14:37, 3 February 2015 (UTC)
+
+== Problematic new page patroller ==
+
+Kudpung,
+
+You, I, and about five other editors have cautioned [[User:Kges1901|Kges1901]] that he or she is making serious mistakes patrolling and speedying new pages. I just noticed another incorrect speedy nom on [[Yashvardhan Shukla]] (I converted it to an AfD). Obviously the cautions have not gotten through—do you know what the next step should be?
+
+Thanks!—[[User:Neil P. Quinn|Neil P. Quinn]] ([[User talk:Neil P. Quinn|talk]]) 16:58, 3 February 2015 (UTC)
+
+Sorry, but wasn't the page previously deleted using the same cause because a nomination by me? and wasn't it also exactly the same content on the page? I tried my best after reading the cautions to not make any mistakes, but... [[User:Kges1901|Kges1901]] ([[User talk:Kges1901|talk]]) 21:18, 3 February 2015 (UTC)
+:{{ping|Neil P. Quinn}}. The problem with {{U|Kges1901}}'s patrolling is that he has been asked by an administrator to stop patrolling but in defiance of the request he is continuing to do so. It took me nearly an hour this morning to check his last 100 or so patrolls and while most of them are OK the accuracy rate is still too low. Thus the issue is not whether or not his patrols are accurate but the enormous work he is creating for admins and other editors in having to check his work. His editing history shows that he cannot normaly have accumulated sufficient experience for this type of work. The alternatives are that he either stops patrolling, or it will be discussed at ANI with a risk of him being blocked or at least T-banned from patrolling. Perhaps however, a couple more warnings may do the trick-. -[[User:Kudpung|Kudpung กุดผึ้ง]] ([[User talk:Kudpung#top|talk]]) 00:27, 4 February 2015 (UTC)
+
+* {{ping|Kges1901}} now that you mention it, I see that [[Yashvardhan Shukla]] [https://en.wikipedia.org/w/index.php?title=Special:Log&page=Yashvardhan+Shukla was speedy deleted before], but if the content was the same, I would also consider that deletion incorrect. The problem is that the criterion you used, [[WP:A7|A7]], is for pages that don't make a "[[WP:credible claim of significance|credible claim of significance]]." That page does: it claims that Shukla is significant because he published a novel at age 13, which is certainly credible (young authors ''do'' exist) and could theoretically make him notable (the author actually included a link to [http://www.outlookindia.com/news/article/13YrOld-Yashwardhan-Shukla-Pens-Gods-of-Antarctica/857080 a profile of him in a national magazine]). I around five minutes searching for other sources to check whether he was actually notable, and decided he wasn't—but I had to use [[Wikipedia:Articles for deletion|articles for deletion process]] because it didn't meet any of the speedy deletion criteria. There's a good reason for this—if it doesn't meet the criteria, it's worth using AfD, which takes more time but makes more sure that we didn't miss any reasons to keep the article.
+:Also, Kges, one of the reasons I was concerned was that you didn't seem interested in talking to any of the people who cautioned you so you could learn more about how to avoid mistakes. I feel a bit better since you responded here. I'd advise you to be '''much''' more careful, read the [[Wikipedia:Criteria for speedy deletion|guidelines for speedy deletion]] very carefully, and above all, ask someone like me or Kupung for advice if you have ''any'' doubts about whether an article can be speedy deleted. This will allow you to keep contributing to the encyclopedia without creating unnecessary work for other editors.—[[User:Neil P. Quinn|Neil P. Quinn]] ([[User talk:Neil P. Quinn|talk]]) 21:34, 4 February 2015 (UTC)
+::{{reply to|Neil P. Quinn}} - again apologies for barging in here. Just wanted to say something in regards to: "didn't seem interested in talking to any of the people who cautioned you". I am often accused of the same wiki-crime, so I am wondering if you may be interested in my perspective? [[User:Ottawahitech|Ottawahitech]] ([[User talk:Ottawahitech|talk]]) 15:21, 6 February 2015 (UTC)
+Sorry for barging in. As someone who has lost countless articles to [[wp:CSD]]s, I always assumed that it is the admin's job to make sure that articles they are deleting are being deleted for the right reason. Is my assumption correct ? [[User:Ottawahitech|Ottawahitech]] ([[User talk:Ottawahitech|talk]]) 15:05, 4 February 2015 (UTC)
+:In theory, yes. At least that's what *I* do - and willingly too because I like to catch those clueless patrollers and bend them over my knee. That said, even if some sloppy admins do not check what they are deleting, there's always Delrev where anything worth keeping is generally refunded without much fuss. More difficult of course if the deletion was on a community consensus at XfD. --[[User:Kudpung|Kudpung กุดผึ้ง]] ([[User talk:Kudpung#top|talk]]) 16:29, 4 February 2015 (UTC)
+::Thanks for responding, Kudpung. I am just wondering if there are statistics kept somewhere about the number of "sloppy admins do not check what they are deleting"? [[User:Ottawahitech|Ottawahitech]] ([[User talk:Ottawahitech|talk]]) 15:25, 6 February 2015 (UTC)
+
+:::I doubt it, {{U|Ottawahitech}}. I can't see how it would be possible to extract suc a statistic. --[[User:Kudpung|Kudpung กุดผึ้ง]] ([[User talk:Kudpung#top|talk]]) 15:45, 6 February 2015 (UTC)
+
+:::: A good place to start would be on my own talkpage :-) [[User:Ottawahitech|Ottawahitech]] ([[User talk:Ottawahitech|talk]]) 15:55, 7 February 2015 (UTC)
+
+== [[King's Norton Boys' School]] ==
+
+Hi,
+In response to the message you sent me the only thing I have added is the school logo change, and a picture of the head for the news sake. If these are against the rules that you sent me I will gladly change the box to meet the required expectations of a schools Wikipedia Page. The whole page has been restored, is there a huge problem with adding texts of information. I understand the quotes but why can't there be other history, details about the curriculum. Also the motto box was already there, so why is it removed.
+
+Thanks
+James Byford <small><span class="autosigned">—&nbsp;Preceding [[Wikipedia:Signatures|unsigned]] comment added by [[User:Ja5by101|Ja5by101]] ([[User talk:Ja5by101|talk]] • [[Special:Contributions/Ja5by101|contribs]]) 19:30, 4 February 2015 (UTC)</span></small><!-- Template:Unsigned --> <!--Autosigned by SineBot-->
+
+:{{U|Ja5by101}} Hi James. I don't think the photo is appropriate, Wikipedia is not a news site and such content gets quickly out of date. It would be good if you could restore the original formal school logo. I have also removed some text from the article but I can't remember if it was added by you. You are most welcome to continue to expand the article but do check out [[WP:WPSCH]] first. I am the coordinator there so if you have any questions don't hesitate to contact me. --[[User:Kudpung|Kudpung กุดผึ้ง]] ([[User talk:Kudpung#top|talk]]) 19:41, 4 February 2015 (UTC)
+
+::Hi yes sorry for the inconvenience. I currently go to the school and they have changed the logo to the one I have put on there. The reason why I put the news on there is because I was planning on updating it. I will remove the content. Also the school motto, is that aloud to be put back up? I am really really sorry. Thanks for Your Help
+James <small><span class="autosigned">—&nbsp;Preceding [[Wikipedia:Signatures|unsigned]] comment added by [[User:Ja5by101|Ja5by101]] ([[User talk:Ja5by101|talk]] • [[Special:Contributions/Ja5by101|contribs]]) 19:44, 4 February 2015 (UTC)</span></small><!-- Template:Unsigned --> <!--Autosigned by SineBot-->
+
+:::Don't worry James, I have restored everything the way it should be. By all means add the motto to the motto section in the infobox, but preferably don't add any content to the article body before asking me first if you are not sure. Do check out [[WP:WPSCH/AG]] too - you'll soon get the hang of things and you'll soon be improving other articles. Make yourself a user page too. --[[User:Kudpung|Kudpung กุดผึ้ง]] ([[User talk:Kudpung#top|talk]]) 20:13, 4 February 2015 (UTC)
+
+
+Thank you so much for your help, I actually really appreciate things and I am sincerely sorry for the inconvience I have caused for you! I will add the motto but I shall not add anything else as it does cause an inconvenience and I can understand why the changes were made now and I do appreciate it!
+
+Thank you so much again!
+James
+
+[[User:Ja5by101|Ja5by101]] ([[User talk:Ja5by101|talk]] • [[Special:Contributions/Ja5by101|contribs]]) 20:17, 4 February 2015 (UTC)</span></small><!-- Template:Unsigned --> <!--Autosigned by SineBot-->
+
+==RAN==
+
+Actually, proxying Mr. Norton's new starts is permitted under terms of his original sanction, as I recall, so long as the person moving the start into mainspace accepts full responsibility for any possible copyright violation it contains. The logical and obvious solution for the betterment of the encyclopedia is to get rid of his punitive topic ban against direct new creations, of course, but as long as CCI is hot and bothered about 10 year old copyvios that nobody can or will ever fix, that doesn't seem too likely either. It's a stupid situation. [[User:Carrite|Carrite]] ([[User talk:Carrite|talk]]) 06:40, 5 February 2015 (UTC)
+
+== ''The Signpost'': 04 February 2015 ==
+
+<div lang="en" dir="ltr" class="mw-content-ltr"><div style="-moz-column-count:2; -webkit-column-count:2; column-count:2;">
+{{Wikipedia:Wikipedia Signpost/2015-02-04}}
+</div><!--Volume 11, Issue 5-->
+<div class="hlist" style="margin-top:10px; font-size:90%; padding-left:5px; font-family:Georgia, Palatino, Palatino Linotype, Times, Times New Roman, serif;">
+* '''[[Wikipedia:Wikipedia Signpost|Read this Signpost in full]]'''
+* [[Wikipedia:Signpost/Single/2015-02-04|Single-page]]
+* [[Wikipedia:Wikipedia Signpost/Subscribe|Unsubscribe]]
+* [[User:MediaWiki message delivery|MediaWiki message delivery]] ([[User talk:MediaWiki message delivery|talk]]) 00:43, 6 February 2015 (UTC)
+</div></div>
+<!-- Message sent by User:LivingBot@enwiki using the list at http://en.wikipedia.org/w/index.php?title=Wikipedia:Wikipedia_Signpost/Tools/Spamlist&oldid=645566867 -->
+
+== Bitey? ==
+
+How about you try not to be, eh? [[User:Squinge|Squinge]] ([[User talk:Squinge|talk]]) 12:21, 6 February 2015 (UTC)
+:{{ping|Squinge}} No, not in the slightest. A bit direct maybe, but only with those who should know better. I don't bite newcomers. If you are trying to do maintenance tasks you are hardly a newcomer, so how about you [[WP:NPP|reading the instructions]] before you do anything and perhaps also talk page headers. --[[User:Kudpung|Kudpung กุดผึ้ง]] ([[User talk:Kudpung#top|talk]]) 12:40, 6 February 2015 (UTC)
+::I'm not doing NPP - its not a <s>fucking</s> new page! [[User:Squinge|Squinge]] ([[User talk:Squinge|talk]]) 12:41, 6 February 2015 (UTC)
+:::{{ping|Squinge}} Nobody, just nobody, uses language like that on ''my'' talk page and never has in 9 years. Read the instructions, in particular [[WP:CIVIL|these too]] and do not come here again - under an circumstances. --[[User:Kudpung|Kudpung กุดผึ้ง]] ([[User talk:Kudpung#top|talk]]) 12:49, 6 February 2015 (UTC)
+::::Apologies for the rude word, I withdraw it and I've struck it now. If you'd like to discuss the fact that you were wrong about it being a new page then I'll be happy to do so, or I'll never post here again (other than when mandatory) as you wish - just let me know. [[User:Squinge|Squinge]] ([[User talk:Squinge|talk]]) 12:55, 6 February 2015 (UTC)
+{{talkback|Squinge}}
+{{ygm}}
+
+== Help understanding a chart ==
+
+The most recent vote concerning RfA at VPR included a chart, the first one at [[Wikipedia:Village_pump_(proposals)/Archive_115#Time to replace RfA]]. Can you help me interpret the numbers? Have they been updated? - Dank ([[User talk:Dank|push to talk]]) 13:33, 6 February 2015 (UTC)
+:Hi {{U|Dank}}, how are you doin'? Nice to see you. I'm still not quite sure which chart you mean, but all the graphs and tables are pretty accurate. The discussion was only 3 months ago so not much will have changed since. Reading through it, I still stand by all my comments which, summa sumarum, is that RfA is now as good as it's ever going to get, doesn't need any major changes except perhaps for more consequent removal of inapropriate questions, votes, and comments, but it's a start. RfA is actually doing a good job, demonstrated by one candidate whom I dragged kicking and screaming to the process and who then skipped through it like a lamb through a field of buttercups. If you are thinking of starting a new reform campaign, you'll probably have my support, but I think we need to give RfA time now for people to realise that it's no longer the horrible & brioken process that I and Wales suggested it was four years ago, and we need to make more publicity for it. --[[User:Kudpung|Kudpung กุดผึ้ง]] ([[User talk:Kudpung#top|talk]]) 13:56, 6 February 2015 (UTC)
+::Oh ... wasn't thinking of starting an RfA reform discussion, I've got something else in mind, a followup to the current RfC at VPR on user-rights. Not disputing that the chart is accurate ... I just don't know what the numbers mean. Here it is. - Dank ([[User talk:Dank|push to talk]]) 14:21, 6 February 2015 (UTC)
+
+{| class="wikitable"
+! !!2008!!2009!!2010!!2011!!2012!!2013!!2014 (projected)
+|-
+
+!Active admins
+||943||870||766||744||674||633||570
+|-
+
+!Admin promotions
+||201||121||78||52||28||34||21
+|-
+
+!Admin attrition (actual, not net)
+||<span style="color:Red">263</span>||<span style="color:Red">194</span>||<span style="color:Red">182</span>||<span style="color:Red">74</span>||<span style="color:Red">98</span>||<span style="color:Red">75</span>||<span style="color:Red">85</span>
+|}
+
+Dank, do you by any chance mean any of the graphs or charts I uploaded from my Excel spreadsheet? I'm pretty sure I still have that spreadsheet if you want me to email it to you or something, just let me know. — <code class="nowrap">&#123;&#123;U&#124;[[User:Technical 13|Technical 13]]&#125;&#125; <sup>([[Special:EmailUser/Technical 13|e]] • [[User talk:Technical 13|t]] • [[Special:Contribs/Technical 13|c]])</sup></code> 14:35, 6 February 2015 (UTC)
+:Thanks for your work on that, but I think if I can find out what the numbers above represent, I'm good. (I get what the middle row means.) - Dank ([[User talk:Dank|push to talk]]) 14:47, 6 February 2015 (UTC)
+
+{{ec}} {{U|Dank}}, most of these charts are created and maintained by {{U|WereSpielChequers}}. I don't find the figures particularly difficult to understand. Active admins are those who by some some silly criterion (not created by WereSpielChequers) that gives a totally false picture. IMO the actual number of truly active admins is about one tenth of that. Promotions is of course the actual number who passed an fA, and attrition is the total number lost through all kinds of desysoping. The projected number for 2014 was pretty accurate, in fact the actual number was 22. --[[User:Kudpung|Kudpung กุดผึ้ง]] ([[User talk:Kudpung#top|talk]]) 14:50, 6 February 2015 (UTC)
+:Agreed that it would be nice to have numbers that are based on a higher bar for activity ... do either of you happen to have numbers that reflect that? I'll ask WSC too. - Dank ([[User talk:Dank|push to talk]]) 15:01, 6 February 2015 (UTC)
+::{{U|Dank}}, I don't but anyone who knows how to run a regex through the actual admin action logs can soon find out. I would suggest that a truly active admin should be based on the uses of the admin tools over the previous 60 days, plus the number of edits to ANI over the same period and then divide by 2. If the answer is 40 or greater, then I would consider them as active, {{U|Scottywong}} used to be brilliant at pulling stats but he's gone AWOL as far as I can see. He did most of the stats for us at [[WP:RFA2011]]. --[[User:Kudpung|Kudpung กุดผึ้ง]] ([[User talk:Kudpung#top|talk]]) 15:14, 6 February 2015 (UTC)
+:::Thanks, I've asked WSC if he has numbers. - Dank ([[User talk:Dank|push to talk]]) 15:19, 6 February 2015 (UTC)
+
+== AfC ==
+
+Hi. You removed me from Articles for Creation participants list because you thought I was too inexperienced. When do I know if I am experienced enough? When I reach 1000 edits? Thanks. [[User:William2001|William2001]] ([[User talk:William2001|talk]]) 04:01, 7 February 2015 (UTC)
+:Well, {{U|William2001|William}} that's something else which you have misunderstood. If you had read the page before putting your name on it and my comments on your talk page you would have seen that 500 edits / 90 days are only a starting point and that more important is having sufficient experience that can't simply be measured by an edit count. We are shorly going to change the system and reviewers will have to request an admin to include them on the list just as we do for PC Reviewer, Rollbacker, and AWB user. I suggest that you might like to do some less complex maintenance tasks until the new system is up and running and make a new application then. --[[User:Kudpung|Kudpung กุดผึ้ง]] ([[User talk:Kudpung#top|talk]]) 05:27, 7 February 2015 (UTC)
+::OK. Thank you. [[User:William2001|William2001]] ([[User talk:William2001|talk]]) 16:39, 7 February 2015 (UTC)
+
+== Recreated ==
+
+Hi just letting you know that I have recreated the pre-speedy tag. This is for purpose of demonstration for the discussion started '''[[Wikipedia:Village_pump_(proposals)#Pre-Speedy_Deletion_tag|here]].''' Please know that until the discussion has ended I will not use the tag. If a consensus is not reached I will tag it for deletion myself - Thanks. [[User:Unit388|Unit388]] ([[User talk:Unit388|talk]]) 05:31, 7 February 2015 (UTC)
+:Replied on your talk page.--[[User:Kudpung|Kudpung กุดผึ้ง]] ([[User talk:Kudpung#top|talk]]) 05:55, 7 February 2015 (UTC)
+::Kudpung, you owe this user an apology. You already have 4 editors at criteria for speedy deletion who consider this deletion inappropriate. What's described at that page is not an ambiguous misrepresentation of policy (altho I can't speak for the template itself). Deleting a template so quickly while it's still under discussion at the appropriate page because you personally disagree is, in my opinion, a mis-use of administrator tools. [[User:Oiyarbepsy|Oiyarbepsy]] ([[User talk:Oiyarbepsy|talk]]) 07:16, 7 February 2015 (UTC)
+:::{{U|Oiyarbepsy}}, I don't really care for your opinion. It hasn't gone unnoticed by several editors that since you arrived at Wikipedia recently, you appear to have a disproportionate interest in policing the product to adding content to its articles. You are not likely to be an admin any time soon so if you don't understand our policies, kindly stay out of them. --[[User:Kudpung|Kudpung กุดผึ้ง]] ([[User talk:Kudpung#top|talk]]) 08:16, 7 February 2015 (UTC)
+
+== Something came in my mind ==
+Is it possible some how to physically hide [[Special:NewPages|this page]] from new editors. I mean restricting new editors (who have less than 200 mainspace) to visit that page. I was thinking maybe WMF can do this but we need consensus first. What you say? '''[[User:Jim Carter|<span style="color:#000000">Jim</span> <span style="color:#FF0000">Car</span><span style="color:#FFCC00">ter</span>]]''' 06:28, 7 February 2015 (UTC)
+:{{U|Jim Carter| Hi Jim}}. Well, theoretically that old feed ought to be deprecated. If the new NPP system has been in operation for a full two years (and if it hasn't it will be soon) the best way would be to start a major RfC to get it deprecated. At the moment, paradoxically, there are no requirements of minimm experiemce to patrol new pages but if the RfC for AfC goes through in a few days I will be starting a similar one for NPP and that will be the one to ask the Foundation how they can deny access to the curation system for non privileged patrollers. --[[User:Kudpung|Kudpung กุดผึ้ง]] ([[User talk:Kudpung#top|talk]]) 06:39, 7 February 2015 (UTC)
+::Actually, I started drafting an RfC. Currently there are two ways to see the log of new pages. 1) [[Special:NewPages]] and 2) [[Special:NewPagesFeed]]. As there are no requirements of minimum experience so my proposal would be: an editor with a minimum of 500 mainspace edits, account 90 days old will be able to view those two pages. The old feed cannot be shut down because older browsers are not able to open [[Special:NewPagesFeed]] page as the curation system uses JavaScript. So my RfC will ask the Foundation to set a filter such that users with less experience than the requirement will not be able access that page. I will be setting the RfC by tomorrow. I will inform you before it goes live. Cheers, '''[[User:Jim Carter|<span style="color:#000000">Jim</span> <span style="color:#FF0000">Car</span><span style="color:#FFCC00">ter</span>]]''' 09:34, 7 February 2015 (UTC)
+
+== .js page ==
+
+Hello. When you need to put a template on a javascript page please put two slashes '''//''' before the template so that the browser does no try to interpret it as code. The slashed tell the interpreter what follows is a comment and not code. Remember when you edit another persons javascript page you are effecting the code ran on their browser, given the shear number of browsers and their idiosyncratic interpretation of javascript it can be problematic. [[User talk:Chillum|<b style="color:DarkRed">Chillum</b>]] 07:19, 7 February 2015 (UTC)
+
+:Hi. I have no idea what you are talking about except that I know that two slashes signifies a comment that is not part of the code. All the js sripts in my vector.js page have been copied and pasted as is and I have not tried to modify them. If you see something there that is not correct I would appreciate a hint rather than a vague message. Thanks. --[[User:Kudpung|Kudpung กุดผึ้ง]] ([[User talk:Kudpung#top|talk]]) 07:28, 7 February 2015 (UTC)
+
+::I may have communicated poorly, I was referring to [https://en.wikipedia.org/w/index.php?title=Special:Undelete&target=User%3AUnit388%2Ftwinklespeedy.js&timestamp=20150207060549&diff=prev this edit]. To put it simply pages that end in .js have the potential to run code on the users browsers. While administrators are able to edit these pages they should only do so if they understand javascript enough to not screw things up. The tip about putting the slashes in front of the template was my 5 cent lesson on not messing up scripts.
+
+::When a javascript interpreter sees '''<nowiki>{{mfd}}</nowiki>''' it goes '''SYNTAX ERROR''' and depending on the browser various difficult to predict symptoms can arise. [[User talk:Chillum|<b style="color:DarkRed">Chillum</b>]] 07:39, 7 February 2015 (UTC)
+
+:::Sorry, {{U|Chillum}}, but I still have no idea what you are talking about. I followed the link but it did not provide any clues that I understand either. Perhaps the Twinkle MfD script is not working correctly but that is nothing to do with me, and I'm too old to be learning javascript - I am a common or garden admin, and nothing about adminship (and believe me, I know says sysops have to be computer programmers to get the mop. --[[User:Kudpung|Kudpung กุดผึ้ง]] ([[User talk:Kudpung#top|talk]]) 07:50, 7 February 2015 (UTC)
+
+::::You don't have to learn javascript, but you are responsible for the edits you make with javascript tools like twinkle. Tools like twinkle save a lot of time but they aren't perfect. I cannot explain it any simpler than this: you made an edit to another users javascript page that would result in the script crashing on their browser, if you don't understand javascript then do not edit those pages.
+
+::::As I said the only reason you were able to edit it at all is because you are an admin and admins have been given special access to other users javascript pages. If it is a problem with twinkle then you may wish to report a bug, stop using it, or audit the edits it makes for you. [[User talk:Chillum|<b style="color:DarkRed">Chillum</b>]] 07:57, 7 February 2015 (UTC)
+
+:::::{{U|Chillum}}, You are not being very helpful. Are you suggesting that I am in someway in misuse of my admin tools for innocently using a broken Twinkle script available to anyone that I had not edited? If all you come here to do is to continue to stalk my work, I suggest you start worrying about your own admin attitude. --[[User:Kudpung|Kudpung กุดผึ้ง]] ([[User talk:Kudpung#top|talk]]) 08:05, 7 February 2015 (UTC)
+::::::He actually is being helpful, Kudpung. Don't add non-code stuff to any .js page without sticking // in front of it, or else you can break the code and weird things can happen. - Dank ([[User talk:Dank|push to talk]]) 14:53, 7 February 2015 (UTC)
+:::::::{{tps}As I see it, Kudpung '''did not''' add non-code stuff to a .js page, he simply nominated a .js page for deletion using Twinkle and '''Twinkle''' edited the .js page to add stuff to it - that's hardly Kudpung's fault! People, try talking '''to''' each other and not '''past''' each other, eh? [[User:Squinge|Squinge]] ([[User talk:Squinge|talk]]) 14:58, 7 February 2015 (UTC)
+
+You don't have to learn javascript, but you are responsible for the edits you make with javascript tools like twinkle. Tools like twinkle save a lot of time but they aren't perfect. I cannot explain it any simpler than this: you made an edit to another users javascript page that would result in the script crashing on their browser, if you don't understand javascript then do not edit those pages.
+
+As I said the only reason you were able to edit it at all is because you are an admin and admins have been given special access to other users javascript pages. If it is a problem with twinkle then you may wish to report a bug, stop using it, or audit the edits it makes for you}
+* {{Tps}} Kudpung, I understand what chillium was attempting to relay to you from the start as a JavaScript capable person, and I can entirely see why you were missing what was attempting to be relayed. I can't see the deleted edit, but based on this discussion I have a fairly good understanding of the core issue here. I'm away from home until next Tuesday or Wednesday but will test and work on a fix then as I get home. — <code class="nowrap">&#123;&#123;U&#124;[[User:Technical 13|Technical 13]]&#125;&#125; <sup>([[Special:EmailUser/Technical 13|e]] • [[User talk:Technical 13|t]] • [[Special:Contribs/Technical 13|c]])</sup></code> 16:27, 7 February 2015 (UTC)
+
+Jesus Kudpung I am not accusing you of anything much less you abusing your admin tools. The only reason I mentioned admin tools was that if you were not an admin you would have been prevented from editing that page. I understand and accept that you did not do it on purpose and it was the result of a tool you used. All I am asking is the you either do not change other users javascript pages or that you put '''//''' before your change. This is a reasonable request, not some sort of attack on you. I am asking this of you for technical reasons not because I think you have done something wrong. [[User talk:Chillum|<b style="color:DarkRed">Chillum</b>]] 18:03, 7 February 2015 (UTC)
+
+Regardless it is not my intent to carry on about this matter, it is minor. Please just use more care in the future when it comes to javascript pages or avoid them altogether. I have notified the maintainers of twinkle here: [[Wikipedia_talk:Twinkle#Javascript_pages_and_admins]]. [[User talk:Chillum|<b style="color:DarkRed">Chillum</b>]] 18:11, 7 February 2015 (UTC)
+:{{tps}}Hi Chillum, I hope you don't mind a comment from me here. It's not what was said, but the way it was said that's caused the aggravation here, I think. Perhaps something like "''You might not be aware of it, but when you nominated X for deletion Twinkle did something wrong''" rather than just the "''It's your responsibility...''" approach might have worked better? [[User:Squinge|Squinge]] ([[User talk:Squinge|talk]]) 18:32, 7 February 2015 (UTC)
+
+== CSD Criteria ==
+
+What would a page like [[Aswin mukundan]] qualify for deletion under? I'm not sure. --[[User:Kges1901|Kges1901]] ([[User talk:Kges1901|talk]]) 08:57, 7 February 2015 (UTC)
+:{{U|Kges1901}} Both A7 ''and'' G11. Take a look at the article now while it's still there. --[[User:Kudpung|Kudpung กุดผึ้ง]] ([[User talk:Kudpung#top|talk]]) 09:00, 7 February 2015 (UTC)
+
+== Righto ==
+
+:better start earning my pay and start digging into some NPP. I still have the tool and full guidance. I think I've only ever done about 12, but there were no disasters generated as I recall. Keep a subtle eye out if you would be so kind. I assume you have the tools which give you a general overview of the day's or week's NPP output. Regards, Simon. [[User:Irondome|Irondome]] ([[User talk:Irondome|talk]]) 14:32, 7 February 2015 (UTC)
+
+== February 2015 GOCE newsletter ==
+
+{| style="position: relative; margin-left: 2em; margin-right: 2em; padding: 0.5em 1em; background-color: #dfeff3; border: 2px solid #bddff2; border-color: rgba( 109, 193, 240, 0.75 ); {{border-radius}} {{box-shadow|8px|8px|12px|rgba( 0, 0, 0, 0.7 )}}"
+
+| <span style="font-size: 110%;">'''[[WP:GOCE|Guild of Copy Editors]] February 2015 Newsletter</span>
+
+<div style="float:right; width: 75px; height: 60px;"></div>
+<div style="position: absolute; top: -20px; right: -12px;">[[File:Writing Magnifying.PNG|100px|link=]]</div>
+<hr style="border-bottom: 1px solid rgba( 109, 193, 240, 0.75 );" />
+[[File:Copyeditors progress.png|right|thumb]]
+
+'''Drive:''' Thanks to everyone who participated in [[Wikipedia:WikiProject Guild of Copy Editors/Backlog elimination drives/January 2015|'''January's Backlog Elimination Drive''']]. Of the 38 people who signed up for this drive, 21 copyedited at least one article. Final results, including barnstars awarded, are available [[Wikipedia:WikiProject Guild of Copy Editors/Backlog elimination drives/January 2015/Barnstars|'''here''']].
+
+'''Progress report:''' We were able to remove August 2013 from the general copyediting backlog and November 2014 from the request-page backlog. Many thanks, everyone!
+
+'''Blitz''': The [[Wikipedia:WikiProject Guild of Copy Editors/Blitzes/February 2015|'''February Blitz''']] will run from February 15–21 and again focuses on the [[WP:GOCE/REQ|requests page]]. Awards will be given to everyone who copyedits at least one request article. [[Wikipedia:WikiProject_Guild_of_Copy_Editors/Blitzes/February_2015#Signing_up|'''Sign up here''']]!
+
+Thank you all again for your participation; we wouldn't be able to achieve what we have without you! Cheers from your GOCE coordinators {{noping|Miniapolis}}, {{noping|Jonesey95}}, {{noping|Biblioworm}} and {{noping|Philg88}}.
+
+{{center
+| <small>To discontinue receiving GOCE newsletters, please remove your name from [[Wikipedia:WikiProject Guild of Copy Editors/Mailing List|our mailing list]].</small>
+}}
+|}
+[[User:MediaWiki message delivery|MediaWiki message delivery]] ([[User talk:MediaWiki message delivery|talk]]) 15:52, 7 February 2015 (UTC)
+<!-- Message sent by User:Miniapolis@enwiki using the list at http://en.wikipedia.org/w/index.php?title=Wikipedia:WikiProject_Guild_of_Copy_Editors/Mailing_List&oldid=645586491 -->
+
+==Talkback==
+{{talkback|Jim Carter|ts=10:44, 8 February 2015 (UTC)}}
+'''[[User:Jim Carter|<span style="color:#000000">Jim</span> <span style="border:1px solid White; border-radius:99px; background-color:Black"><span style="color:White">Car</span></span><span style="color:#FF0000">ter</span>]]''' 10:44, 8 February 2015 (UTC)
+
+== Please can you check my NPP quality ==
+
+Hi Kudpung. Dunno if you in bed, or busy, but if you have a minute, could you please give a brief glance at my NPP efforts so far? There are not many of them so It should not take long. I am very aware that there are some powerful tools available to the NPP'er, and I just want to know if my basic "feel" and methodology is acceptable. I am very aware of the responsibilities and potential to do inadvertant damage, so I just need some reassurance really. You can be as blunt as you wish. Regards Simon aka [[User:Irondome|Irondome]] ([[User talk:Irondome|talk]]) 19:19, 8 February 2015 (UTC)
+:I've looked at some of your more recent patrols. As usual for most new patrollers you have a tendency to over-tag. This is both a negative ''and'' a positive criticism: it shows tha you are seeing what is wrong with the articles and it shows that you know what tags are available for use. Don't tag relatively harmless articles to soon, but of course any which are blatantly toxic must be tagged as quickly as possible for deletion to rapidly attract the attention of admins. If you are working from the back of the queue remember that some articles may be months or even years old - do check their histories very carefully. Here ae some things that you might like to look at again which illustrate some of my comments:
+*[[Tooker & Marsh]] tage for CSD A7 if you can't find sources
+*[[Nicholas Irving]] Overtagging - tagging the blatantly obvious. Good though because it caught the creator online
+*[[Hitler Stalingrad Speech]] older article. Probably not worth tagging at all. Seems to be factually accurate.
+*[[Under Electric Clouds]] Overtagging - tagging the blatantly obvious.
+:Be sure to make use of the 'message to the creator' feature (this may have less effect on older articles where the creator was an SPA who will probably never return, but do it nevertheless. You are on the right track - keep up the good work. --[[User:Kudpung|Kudpung กุดผึ้ง]] ([[User talk:Kudpung#top|talk]]) 12:46, 9 February 2015 (UTC)
+::Noted and much appreciated. S. [[User:Irondome|Irondome]] ([[User talk:Irondome|talk]]) 14:41, 9 February 2015 (UTC)
+::I am noting some peculiar phenomena as I work from the back of the queue. A proposal for deletion on a long-dormant unworked on article will suddenly provoke a flurry of activity. The original creator suddenly beginning to add cites, or otherwise begin work on the article. This process can be measured in minutes. Odd, but rather encouraging. I am closely following Jim's NPP proposals and the debate being generated from that by the way. I shall be commenting. I feel it is the article creation, rather than the patrollers that may be the issue. Just initial thoughts. Will be revisiting the patrolled examples you highlighted above. I am becoming much lighter on the tagging. Regards as always. S [[User:Irondome|Irondome]] ([[User talk:Irondome|talk]]) 21:29, 9 February 2015 (UTC)
+:::{{U|Irondome|Simon}}, you are right about the flurries of activity - it happens at AfC too when drafts get tagged G13 for not having been edited for 6 months. Nevetheless, check that the improvements are relevant and if the creator has simply fremoved maintenance tags (which often happens) simply restore them.
+:::The problem with NPP is most certainly the patrollers. I've been researching and patrolling the patrollers for 5 years. That said, although I favour a set of criteria of competency for users to be allowed to patrol new pages, it is too soon to be launching that proposal. I wish people wouldn't jump the gun but that's also what enthusiastic newcomers often do. They may not be entirely wrong but they will probably not be aware of what is already being done. A substandard RfC can set its own goals back ''years''. Before anything can be done with NPP it is essential that we get consensus to disband AfC and that could take at least another year. AfC has a terrible 'ownership' syndrome to be conquered first. Yes, being lighter on the tagging, especially when the faults in the articles and stubs are evident is a good idea. Keep reading [[WP:NPP]] over and over again, you'll always find you missed something. --[[User:Kudpung|Kudpung กุดผึ้ง]] ([[User talk:Kudpung#top|talk]]) 21:45, 9 February 2015 (UTC)
+::::Of course, {{U|Kudpung|Chris}}. I have completed overlooked the rather bizarre entity that is AfC, which I am now belatedly researching. I see nowhere where it actually fits into the grand scheme, if you will. Certainly a minimum skills set in patrollers can only be a positive, but I fully endorse your policy of gradualism. A premature RfC can be literally devastating for an otherwise good attempt to improve the project, and can set back months of intensive (and unpaid!) research and diplomacy to naught. I am beginning to notice instances of premature RfC's in my brief tenure that have gone horribly wrong. A poorly planned RfC seems to have a strange "souring" effect on the community, where the merits of the proposal are sublimated by an irritation that the case has not been competely or thouroughly presented. Much like a jury. This prejudice can last years in contributors to these tainted RfCs'. A similar thing to the old grudges issue in the RfA process. I am beginning to join the dots, and to begin to appreciate how bloody hard it is and how subtle and patient one has to be to actually get things done. Your encouragement on my modest patrolling efforts is greatly appreciated Chris. I hope we all can meet up in London some time and have a doubtless very interesting conversation. Be good to meet Harry too! Simon. [[User:Irondome|Irondome]] ([[User talk:Irondome|talk]]) 22:05, 9 February 2015 (UTC)
+
+Hi Kudpung, I was going to start a new thread but this related to the above conversation. I agree that AfC has got too over-complicated and empirical evidence has now shown me that, far from being kinder and more compassionate as I had assumed, an AfC decline seems to be just as [[WP:BITE]]y for newbies as a PROD or CSD tag, though I'd be interested to see some statistics of how many "one decline" AfC drafts get abandoned and deleted per G13. I still review the odd AfC submission, but nowadays take each one as a cue to improve it and pass it.
+
+Anyway, I was discussing with [[User:Rhondamerrick|my other half]] why Wikipedia can still appear hostile to newcomers, and the consensus came back, once again, to badly called CSDs. I'm thinking specifically of [[The Mariposa Trust]] and [[Le QuecumBar]], which were both quickly tagged for A7 (multiple times in the case of the Mariposa Trust), but where a simple search for the article's title on Google News returned more than one page of hits, easily allowing me to expand these articles with proper referencing. Would it be possible to change Twinkle (where the majority of CSDs get called from) to bring up a message along the lines of "STOP! Have you followed [[WP:BEFORE]]" as some sort of edit notice if a Google News or Books search on the article's title returns, say, more than 10 hits. The problem with the scenarios above is that looking from hindsight it seems poor from the newcomer's point of view to be slapped about, and when they read up on policies, conclude they shouldn't have been. [[User:Ritchie333|<b style="color:#7F007F">Ritchie333</b>]] [[User talk:Ritchie333|<sup style="color:#7F007F">(talk)</sup>]] [[Special:Contributions/Ritchie333|<sup style="color:#7F007F">(cont)</sup>]] 12:27, 10 February 2015 (UTC)
+
+:Maybe the instructions at the top of [[WP:NPP]] could be changed to emphasise the importance of [[WP:BEFORE]]? I've lost count of the number of times I've caught pages which have been tagged, usually as A7, where a quick google search would either establish notability or at least make it iffy enough for the page to go for more scrutiny at [[WP:AFD]] instead. I also think there's a case for making pages ineligible for A7 until about 30-45 minutes have passed, to give creators enough time to add their content, though people opposing could probably point to pages like [[Karim Badie|this]] though. Unless the page is obviously problematic, vandalism, attack pages etc, there's nothing to be lost by watchlisting the page and returning to it later to see if it has improved or not. Unfortunately, a lot of patrollers seem to be in a rush to get there first (I was guilty of those mistakes myself in my early days of NPP) when a little more digging would be more productive for all concerned. [[User:Valenciano|Valenciano]] ([[User talk:Valenciano|talk]]) 15:15, 10 February 2015 (UTC)
+
+::I like that idea, and if there's traction it would be nice to make it into a guideline, I have a [https://en.wikipedia.org/w/index.php?title=Special%3AWhatLinksHere&target=Template%3ADb-a7&namespace=0 link to active A7s] that I use all the time, hoping I can spot one that is salvageable. Of the two examples I gave, in both cases I was unsure if they would survive an AfD until I'd expanded up to about 7-8 sources, which was about half an hour's worth of work, and I know what I'm doing. I don't see anything wrong with taking some A7s to AfD, as they do not cause immediate harm to Wikipedia by existing, unlike attack pages and copyvios, a week's grace won't hurt us. [[User:Ritchie333|<b style="color:#7F007F">Ritchie333</b>]] [[User talk:Ritchie333|<sup style="color:#7F007F">(talk)</sup>]] [[Special:Contributions/Ritchie333|<sup style="color:#7F007F">(cont)</sup>]] 16:16, 10 February 2015 (UTC)
+
+:::{{U| Ritchie333}}. {{U|Valenciano}}, I spend several ''hours'' every week patrolling the patrollers and I've been doing this for around 4 years. There is so much poor tagging nowadays that I only bother now to contact the patrollers whom I really have to ask to stop patrolling and deven that is far, far too many. I would hesitate to say that the majority of patrollers arfe still working from the old feed. The New pages Feed and the Curation tool have been running now for around two years, so I'm going to make a move soon to get the old feed cdeprecated - to do any good anywhere on Wikipedia, one needs to get maintenance workers singing from the same page and applying the same judgement and criteria.
+:::NPP is not an article hospital or the ARSollers should ''not'' be taking the time to improve or repair artic les. If they do the backlog will be even longer than the current 30,000. Indeed, they should do a 'before' before tagging, but if they find refs they should tell the creator that there are refs out there so would they pleazse add them or have their article slated for deletion. What ever Wikipedia guidelines say, there are very definitely moments when we have to be cruel to be kind, gthe most important thing is to avoid being blunt and bitey when we do it. I could go on and on and on about NPP, but I'm slowly getting totally fed up with say ing the same thing to 20 users a week. This is the kind of thing that one day will cause me to retire for good from Wikipedia. --[[User:Kudpung|Kudpung กุดผึ้ง]] ([[User talk:Kudpung#top|talk]]) 07:23, 11 February 2015 (UTC)
+:::BTW getting A7 delayed for 40 minutes won't wash. It's been suggested before. People who propose such ideas may need somewhat more experience with patrolling and won't have noticed that that the majority of A7 are articles that ''must'' be deleted almost as quickly as spam or attach pages - or are you really going to make a mockery of the process by allowing : '' 'I am Johm Doe and me and Jim are the students in Grade 7 at Mrs Bingo's class' stand for an hour before hammering it - and its creator - into the floor? --[[User:Kudpung|Kudpung กุดผึ้ง]] ([[User talk:Kudpung#top|talk]]) 07:34, 11 February 2015 (UTC)
+::::I don't agree with that sentiment, I'm afraid. What do you mean by "hammering its creator into the floor"? The spam folder on my Gmail account has a grace period of 30 days, I don't think there's a single message I want to read, and that's just one account out of 425 million, that's about a hundred times as many articles on Wikipedia. Google does not generally bring Wikipedia articles to the top of search results until about a week, based on my tracking of [[pink cat]], which despite being created nearly a month ago and having 12 hours linked off the main page via a DYK, does not appear in the first page of hits on a Google Search. These type of articles (which from my experience are more likely to be things like "Advanced Solutions inc is an Indian derivitives analysis company founded in January 2015" or "Bringers of Darkness is a doom metal band from Boise, Idaho") cause no legal harm to the WMF by existing, unlike attack pages or copyvios, and is unlikely to be linked from anywhere in the hour or two it may exist. So my evidence suggests that hastily deleting these types of articles has no obvious benefit, and should not be necessary. [[WP:DEADLINE|Why the rush]]? [[User:Ritchie333|<b style="color:#7F007F">Ritchie333</b>]] [[User talk:Ritchie333|<sup style="color:#7F007F">(talk)</sup>]] [[Special:Contributions/Ritchie333|<sup style="color:#7F007F">(cont)</sup>]] 09:49, 11 February 2015 (UTC)
+:::Overall it's a fine line. We need new contributors and new articles and some of the creators of the latter do get scared away by over hasty tagging, but on the other hand sloppy articles about some "up and coming" band that the creator plays bongos for do create work which takes regulars' time away from adding content and it's often for the sake of an SPA that has no other interest in Wikipedia. There are two issues, firstly, there does need to be more guidance for those new here and submitting the first articles and AFC doesn't seem to have fulfilled that. That could come in the form of technical tweaks to give more advice and guidance when new users are submitting their first articles. Secondly, NPPatrollers need to understand that speedy deletion doesn't necessarily mean nominating pages as quickly as possible, it means that the article deletion process, which would normally take 7-10 days through PROD and AFD, can be done in a matter of hours. The latter could be done by changing the instructions at the top of NPP. You're right regarding the A7 issue and I did acknowledge that above, but I also believe that a lot of A7s could do with a bit more time. The "Danny X is the coolest kid in my class" ones can be nuked fairly quickly, but the ones like "company X is a famous travel agent in India" can be given a little more time just in case there are offline sources covering the company's services or products. [[User:Valenciano|Valenciano]] ([[User talk:Valenciano|talk]]) 08:20, 11 February 2015 (UTC)
+::::{{U| Ritchie333}}. {{U|Valenciano}}. Valenciano, have you lived and worked in India? I have. --[[User:Kudpung|Kudpung กุดผึ้ง]] ([[User talk:Kudpung#top|talk]]) 10:04, 11 February 2015 (UTC)
+::::{{U| Ritchie333}}. {{U|Valenciano}}. With all due respect, what it boils down to is that neither of you have properly read what I wrote above. That will of course teach me not to TL;DR... --[[User:Kudpung|Kudpung กุดผึ้ง]] ([[User talk:Kudpung#top|talk]]) 10:07, 11 February 2015 (UTC)
+:::::I did read what you wrote, but I simply do not agree with your views. There is no reason to disparage anyone with terms such as "trash" or "trolls". I think our conversation is done, and I fear we will continue to lose editors, which is a shame. Happy editing. [[User:Ritchie333|<b style="color:#7F007F">Ritchie333</b>]] [[User talk:Ritchie333|<sup style="color:#7F007F">(talk)</sup>]] [[Special:Contributions/Ritchie333|<sup style="color:#7F007F">(cont)</sup>]] 10:31, 11 February 2015 (UTC)
+::::Also, I fail to understand the value pf providing links to deleted G3s when we're disscussing A7. I have aqccess to deleted material, and take it from me, I've been here long enoigh to know the difference between a blatant vandalism and an A7 for an article that stands absolutely no chance whatsoever and should be flagged for deketion as soon as a patroller sees it. It doesn't matter if the creator might have stayed around to create a proper article about something else (let's not kid ourselves, the VAST majority of them don't), what NPP is for is to do a triage of articles, not to read the creator's mind or assess hi/her position and maturity in RL. We are an encyclopedioa, not a psychological counselling service (unless one is here for the pure social networking, but I am not - I'm here to build an encyclopedia and keep it free of trash and trolls, and actually I'm very much an inclusionist). --[[User:Kudpung|Kudpung กุดผึ้ง]] ([[User talk:Kudpung#top|talk]]) 10:16, 11 February 2015 (UTC)
+:::::I read everything you wrote and agree with some, but not all of it, I don't get your point about India. However, there does remain the issue of editor retention and the need to have new blood coming through. You don't throw the baby out with the trash and sometimes that is what NP patrollers are doing, as yes there will be cases, especially in the A7 area, where naive newbies will have posted a worthy topic but will have failed to reference it adequately. Incidentally, if the redlink you are speaking about is [[Karim Badie]], that was an A7 when I posted it as an example and was indeed deleted as such. The fact that a subsequent version was deleted as G3 doesn't change that or the fact that I specifically highlighted that as an example of an article which didn't deserve to stick around. [[User:Valenciano|Valenciano]] ([[User talk:Valenciano|talk]]) 14:25, 11 February 2015 (UTC)
+::::::I think things have got a little at cross-purposes. [[The Mariposa Trust]] was a good result. Have a look at [[User talk:Charliallpress|the creator's talk page]]. Couple of cliched bitey twinkle tags, a few ''really'' bitey block warnings, I go in, add 6 reliable sources, everyone says "oops, sorry" and things calm down. That's the stuff I'm talking about. I maybe need to get some metrics of "CSD saves", but it can't be that many (I would guess about 70% - 90% of A7s are generally impossible for me to salvage) and most I do salvage go to BLP prod or AfD. Certainly there were about 20 articles tagged for A7 this morning that I thought "clear cut A7; bin now". But, going back to my original point that seems to have been lost a bit, a script would almost certainly (I haven't checked) report 0 or few news hits for all of those, giving the tagger a "clean" bill of health to CSD it. [[User:Ritchie333|<b style="color:#7F007F">Ritchie333</b>]] [[User talk:Ritchie333|<sup style="color:#7F007F">(talk)</sup>]] [[Special:Contributions/Ritchie333|<sup style="color:#7F007F">(cont)</sup>]] 14:50, 11 February 2015 (UTC)
+
+{{od}}The first tagging was A7. It was blatant trolling and could have been tagged as hoax/vandalism, or even with just a tiny stretch of imagination as an attack page. Some of us admins would accord 2% AGF and delete it as a test page to save the creator's face -in which case however an L1 warning about creating inappropriate pages might be conceivable.
+
+The second tagging (on recreation) of the same content by {{U|J man708}} as G3 was perfectly accurate. In both instances the tagging took place within 5 mins or so of creation - and most rightly so - even a raw newbie patroller would know (well, mostly) that you are not going to make a regular Wikipedian out of that author. Sorry to continue to be a damp squid for anyone advocating a delay for tagging of articles that are pure nonense.--[[User:Kudpung|Kudpung กุดผึ้ง]] ([[User talk:Kudpung#top|talk]]) 18:58, 11 February 2015 (UTC)
+
+:As I'm not an admin I can't view the page in question, so will take your word for it, but as I cited that as a specific example of a page which *should* be quickly nuked I'm not sure what point you're trying to make. No one is advocating a delay for nonsense articles. I nominate quite a few myself as soon as I see them and those should quickly go, but there are pages on other topics such as companies which are less obviously problematic, could theoretically have coverage not immediately obvious from google searches like offline sources or through paywalls and articles like that don't need to bite the dust so quickly. How to gain a little more time for those is one of several issues I see at NPP along with the [[WP:BEFORE]] issue of people not even bothering to check for sources. We do need a wider discussion on it. [[User:Valenciano|Valenciano]] ([[User talk:Valenciano|talk]]) 19:26, 11 February 2015 (UTC)
+
+''All'' new articles are referenced and cached by Google within seconds of being posted on Wikipedia - that's part of the deal for Google's $1 mio donation, so that Internet searches ''always'' return Wikipedia articles at the top of the list. Your Gmail content is not referenced at all so I fail totally to see what it has to do with our problems at NPP. Fortunately, when I got the Draft namespace (yes, another of my proposals) created, we stipulated hat drafts will be 'no index, no follow'. That's what should have been included for new pages at NPP until they had been 'patrolled' but somehow the devs failed to do it and now it's an uphil battle to get it done in retro. --[[User:Kudpung|Kudpung กุดผึ้ง]] ([[User talk:Kudpung#top|talk]]) 18:58, 11 February 2015 (UTC)
+: I'm sure we're not talking about the same articles. Anyway, WP articles ''used'' to be the top Google search hit, but recently I've found that's not the case so much, they take a while to catch up. [http://www.google.co.uk/search?client=safari&rls=en&q=%22pink+cat%22&ie=UTF-8&oe=UTF-8&gfe_rd=cr&ei=0rrbVJGnNILFaNv1gIAK pink cat] isn't on the first page. [http://www.google.co.uk/search?client=safari&rls=en&q=mariposa+trust&ie=UTF-8&oe=UTF-8&gfe_rd=cr&ei=87rbVMGSC8-DaID3gNgN The Mariposa Trust] is hit #6. I created [[Tape op]] (the term, not the magazine) yesterday and while the magazine might drown that out, I've just been through [http://www.google.com/search?q=%22tape+op%22&client=safari&rls=en&oq=&gs_l= five pages of Google] and not found it. So something has changed somewhere, but as Google never release pagerank algorithms, who knows. Maybe it now takes page views into the equation; obviously older articles will have had lots of views anyway because of their prominence, so will self-weight towards the top. [[User:Ritchie333|<b style="color:#7F007F">Ritchie333</b>]] [[User talk:Ritchie333|<sup style="color:#7F007F">(talk)</sup>]] [[Special:Contributions/Ritchie333|<sup style="color:#7F007F">(cont)</sup>]] 20:33, 11 February 2015 (UTC)
+::{{U| Ritchie333}}. {{U|Valenciano}}, [[The Mariposa Trust]] was tagged A7 by {{U|Harry the Dirty Dog}} in '''less than a minute''' of its creation. The patroller, around since 2007 with an EC of 13,569, should have known better than to tag so quickly and should have applied other maintenance tags and made use of the message feature. Contrary to policy, the creator {{U|Charliallpress}} almost instantly removed the CSD themself and within less than a minute the tag was restored, again by {{U|Harry the Dirty Dog}} - this should have been an alert to the patroller who seems to patrol with a vengeance. However, the first and second pages of Google did not return any RS, and that's all a patroller is expected to as a ''Before'', apart from checking for COPYVIO. I would therefore probably have tagged ''that'' page for A7 but certainly not within less than 20 minutes. I click to add such pages to my watchlist and go back to then after 20 minutes or so. I will soon find out later if it is still a blue link and if it is I will look to see why.
+
+::The fiasco of a discussion on the creator’s talk page starts of being rather bitey and only after a lot of kerfuffle does it start to get any nicer. Admittedly it pays to remember that Charliallpress is not here to become a regular Wikipedia contributor but nevertheless their article was neither a hoax/vandalism or otherwise toxic and they deserved to be treated in GF. Lessons to be learned all round (except {{U|MelanieN}} who I recently [[Wikipedia:Requests for adminship/MelanieN|turned into an admin|| and will be one of the best we have).
+
+::This article and its creator are classic examples of the Foundation’s mammoth failure after all these years to address the lack of a proper landing page for new users - I believe this to be a WMF mandate even more than the creation of the new page feed and it curation thing. Indeed,development of the Article Creation Flow began but when things cooled down it was swept under the carpet. Follow up talks every 6 - 12 months have received vague promises but still nothing has been done. While the WMF will refuse, even with overwhelming community consensus, to introduce any mechanism to restrict creation of articles to [[WP:Autoconfirmed|auto confirmed]] users, there is nothing in that policy that says we cannot force all new users to build their first article through the [[Article Wizard]] - and that’s what IMO should be done. What needs to be done is:
+:::*Significantly improve the quality of NPP and either introduce a technically imposed qualification for doing it or significantly step up the control of those who patrol.
+:::*Create a proper landing page for new users, trolls, spammers, SPa, and who ever else, so that they have a clearer idea of what an [[encyclopedia]] is.
+:::*''Force'' at least all non confirmed users to choose to create either through the Article Wizard or to create a Draft first for submission to AfC (bearing in mind that there is a growing movement to migrate AfC to NPP and not without reason.
+:::*Maintain the new quality of voting at RfA and continue our campaign to get users of the right calibre to run for adminship.
+:::*Get regular editors more involved in the RfA voting process.
+:::*Make it much quicker and easier to desysop the admins (probably pre-2007 promotions) who have a pattern of abusing their mandate.
+::None of the above is impossible and I can't see anyone seriously disagreeing. Just needs aforethought and some careful planning. --[[User:Kudpung|Kudpung กุดผึ้ง]] ([[User talk:Kudpung#top|talk]]) 02:27, 12 February 2015 (UTC)
+
+== Thai user ==
+
+Hi Kudpung, not sure how much Thai you speak, but we have a bit of an issue with a Thai user. {{u|RKC Vakwai}} is uploading a lot of Thai football club logos, which in and of itself is not the issue, if they were properly licenced. The user is claiming they are the creator, and copyright holder, which is obviously not the case, having a look at their talk page, you can see the mass amount of messages, warnings, etc. that he/she has received. There was even a not so in depth discussion at AN/I a year ago which, really only resulted in a short message by another user. I dropped the last one, with a stop sign (presuming English as not a first language, visuals are good), saying don't upload anything without the correct licence. I am sure the actual message got lost in translation, but the concept is understood, based on [https://en.wikipedia.org/w/index.php?title=User%3AKelapstick&diff=646825765&oldid=643405902 this edit] on my talk page. If you do know any Thai (or someone who does), could you explain the concept of fair use logos to this user? Really we can save a lot of time, work, and hassle if they just upload the images as fair use, but I personally cannot explain that in a way they will understand (my rather stern warning was really just to get them to stop uploading temporarily, lest they actually get blocked). Ta, --[[User:kelapstick|kelapstick]]<sup>([[User talk:Kelapstick#top|bainuu]]) </sup> 21:01, 12 February 2015 (UTC)
+:Also you seem to have a fan - {{noping|Reptiles Birds Exotic AnimalsYes Bad UsersNo}}... --[[User:kelapstick|kelapstick]]<sup>([[User talk:Kelapstick#top|bainuu]]) </sup> 21:14, 12 February 2015 (UTC)
+
+:Hi {{U|kelapstick}}. sorry to disappoint you but while I ''speak'' relatively fluent Thai, and can read it just a tiny bit, it's worlds away from discussing anything in that language with anyone on Wikipedia.--[[User:Kudpung|Kudpung กุดผึ้ง]] ([[User talk:Kudpung#top|talk]]) 12:54, 13 February 2015 (UTC)
+::No worries, thanks anyway Kudpung. --[[User:kelapstick|kelapstick]]<sup>([[User talk:Kelapstick#top|bainuu]]) </sup> 13:03, 13 February 2015 (UTC)
+
+== Valentine Greets!!! ==
+{| style="background-color: #FA8072; border: 4px solid #DC143C;"
+|rowspan="2" style="vertical-align: middle; padding: 1px;" | [[File:Wikilove2 new.png|211px]]
+|style="font-size: x-large; padding: 2px 2px 0 2px; height: 1.5em;" | '''Valentine Greets!!!'''
+|-
+|style="vertical-align: middle; padding: 3px;" |
+----
+'''Hello Kudpung, [[love]] is the language of hearts and is the feeling that joins two souls and brings two hearts together in a bond. Taking love to the level of [[Wikipedia]], spread the [[Wikipedia:WikiLove|WikiLove]] by wishing each other [[Valentine's Day|Happy Valentine's Day]], whether it be someone you have had disagreements with in the past, a good friend, or just some random person.<br />
+Sending you a heartfelt and warm love on the eve, <br>
+Happy editing,<br>
+&nbsp;-&nbsp;[[User:The Herald|'''T H''']] ([[User talk:The Herald|''here I am'']]) 12:08, 13 February 2015 (UTC)
+
+''{{resize|96%|Spread the love by adding {{tls|Valentine Greetings}} to other user talk pages.}}''
+|}
+== Me? ==
+[[Special:Diff/647199277|<s>Is</s> Are you]] referring me among those unhelpful editors? '''[[User:Jim Carter|<span style="color:#000000">Jim</span> <span style="color:#FF0000">Car</span><span style="color:#FFCC00">ter</span>]]''' 15:01, 15 February 2015 (UTC)
+:{{U|Jim Carter|Jim}}, It's not 'Is you' it's 'Are you', and I'm referring to users who have been around since long before you joined Wikipedia, and who have a particularly nasty disposition - remember some of us have been around here for 10 years or more. Stop being so paranoid. --[[User:Kudpung|Kudpung กุดผึ้ง]] ([[User talk:Kudpung#top|talk]]) 15:10, 15 February 2015 (UTC)
+::Oh! I started this thread with "Is" as I wanted to say something else but later changed it but forgot to change that word. Don't count my grammatical mistakes, I make plenty; though I'm able to write two GAs and a FL. I'm asking you because I'm a bit confused as your comment there didn't made it clear to whom you're referring. Best, '''[[User:Jim Carter|<span style="color:#000000">Jim</span> <span style="color:#FF0000">Car</span><span style="color:#FFCC00">ter</span>]]''' 16:05, 15 February 2015 (UTC)
+:::Well, {{U|Jim Carter|Jim}}, you need to follow that thread some more, because {{U|Buster7}} has been doling some math. Wikipedia rules forbid me from naming manes or even making comments through which such individuals can be instantly identified. It's a very 'knife-edge' thing where some are concerned who are bent on destroying the editing pleasure of other volunteers. Some of them are now on a very short leash and will probably be banned before the year's out, and others will follow soon - some admins have been been oiling the mechanisms of their block buttons. --[[User:Kudpung|Kudpung กุดผึ้ง]] ([[User talk:Kudpung#top|talk]]) 16:26, 15 February 2015 (UTC)
diff --git a/Echo/tests/phpunit/includes/revision_txt/README b/Echo/tests/phpunit/includes/revision_txt/README
new file mode 100644
index 00000000..9a483aee
--- /dev/null
+++ b/Echo/tests/phpunit/includes/revision_txt/README
@@ -0,0 +1,4 @@
+This folder holds wikitext revision excerpts that are used in
+phpunit/includes/DiscussionParserTest.php
+
+It just seemed a bit overkill to include the entire content in the PHP code ;)
diff --git a/Echo/tests/phpunit/maintenance/SupressionMaintenanceTest.php b/Echo/tests/phpunit/maintenance/SupressionMaintenanceTest.php
new file mode 100644
index 00000000..5547e384
--- /dev/null
+++ b/Echo/tests/phpunit/maintenance/SupressionMaintenanceTest.php
@@ -0,0 +1,130 @@
+<?php
+
+/**
+ * @group Echo
+ */
+class SuppressionMaintenanceTest extends MediaWikiTestCase {
+
+ public static function provider_updateRow() {
+ $input = array(
+ 'event_id' => 2,
+ 'event_type' => 'mention',
+ 'event_variant' => null,
+ 'event_agent_id' => 3,
+ 'event_agent_ip' => null,
+ 'event_page_title' => '',
+ 'event_page_namespace' => 0,
+ 'event_page_extra' => null,
+ 'event_extra' => null,
+ 'event_page_id' => null,
+ );
+ return array(
+ array( 'Unrelated row must result in no update', array(), $input ),
+
+ array(
+ 'Page title and namespace for non-existant page must move into event_extra',
+ array( // expected update
+ 'event_extra' => serialize( array(
+ 'page_title' => 'Yabba Dabba Do',
+ 'page_namespace' => NS_MAIN
+ ) ),
+ ),
+ array( // input row
+ 'event_page_title' => 'Yabba Dabba Do',
+ 'event_page_namespace' => NS_MAIN,
+ ) + $input,
+ ),
+
+ array(
+ 'Page title and namespace for existing page must be result in update to event_page_id',
+ array( // expected update
+ 'event_page_id' => 42,
+ ),
+ array( // input row
+ 'event_page_title' => 'Mount Rushmore',
+ 'event_page_namespace' => NS_MAIN,
+ ) + $input,
+ self::attachTitleFor( 42, 'Mount Rushmore', NS_MAIN )
+ ),
+
+ array(
+ 'When updating non-existant page must keep old extra data',
+ array( // expected update
+ 'event_extra' => serialize( array(
+ 'foo' => 'bar',
+ 'page_title' => 'Yabba Dabba Do',
+ 'page_namespace' => NS_MAIN
+ ) ),
+ ),
+ array( // input row
+ 'event_page_title' => 'Yabba Dabba Do',
+ 'event_page_namespace' => NS_MAIN,
+ 'event_extra' => serialize( array( 'foo' => 'bar' ) ),
+ ) + $input,
+ ),
+
+ array(
+ 'Must update link-from-title/namespace to link-from-page-id for page-linked events',
+ array( // expected update
+ 'event_extra' => serialize( array( 'link-from-page-id' => 99 ) ),
+ ),
+ array( //input row
+ 'event_type' => 'page-linked',
+ 'event_extra' => serialize( array(
+ 'link-from-title' => 'Horse',
+ 'link-from-namespace' => NS_USER_TALK
+ ) ),
+ ) + $input,
+ self::attachTitleFor( 99, 'Horse', NS_USER_TALK )
+ ),
+
+ array(
+ 'Must perform both generic update and page-linked update at same time',
+ array( // expected update
+ 'event_extra' => serialize( array( 'link-from-page-id' => 8675309 ) ),
+ 'event_page_id' => 8675309,
+ ),
+ array( //input row
+ 'event_type' => 'page-linked',
+ 'event_extra' => serialize( array(
+ 'link-from-title' => 'Jenny',
+ 'link-from-namespace' => NS_MAIN,
+ ) ),
+ 'event_page_title' => 'Jenny',
+ 'event_page_namespace' => NS_MAIN,
+ ) + $input,
+ self::attachTitleFor( 8675309, 'Jenny', NS_MAIN ),
+ ),
+ );
+ }
+
+ protected static function attachTitleFor( $id, $providedText, $providedNamespace ) {
+ return function( $test, $gen ) use ( $id, $providedText, $providedNamespace ) {
+ $title = $test->getMock( 'Title' );
+ $title->expects( $test->any() )
+ ->method( 'getArticleId' )
+ ->will( $test->returnValue( $id ) );
+
+ $titles = array( $providedNamespace => array( $providedText => $title ) );
+
+ $gen->setNewTitleFromText( function( $text, $defaultNamespace ) use( $titles ) {
+ if ( isset( $titles[$defaultNamespace][$text] ) ) {
+ return $titles[$defaultNamespace][$text];
+ }
+ return Title::newFromText( $text, $defaultNamespace );
+ } );
+ };
+ }
+
+ /**
+ * @dataProvider provider_updateRow
+ */
+ public function testUpdateRow( $message, $expected, $input, $callable = null ) {
+ $gen = new EchoSuppressionRowUpdateGenerator;
+ if ( $callable ) {
+ call_user_func( $callable, $this, $gen );
+ }
+ $update = $gen->update( (object) $input );
+ $this->assertEquals( $expected, $update, $message );
+ }
+}
diff --git a/Echo/tests/phpunit/model/NotificationTest.php b/Echo/tests/phpunit/model/NotificationTest.php
new file mode 100644
index 00000000..267bd25a
--- /dev/null
+++ b/Echo/tests/phpunit/model/NotificationTest.php
@@ -0,0 +1,88 @@
+<?php
+
+class EchoNotificationTest extends MediaWikiTestCase {
+
+ public function testNewFromRow() {
+ $row = $this->mockNotificationRow() + $this->mockEventRow();
+
+ $notif = EchoNotification::newFromRow( (object)$row );
+ $this->assertInstanceOf( 'EchoNotification', $notif );
+ // getReadTimestamp() should return null
+ $this->assertNull( $notif->getReadTimestamp() );
+ $this->assertEquals(
+ $notif->getTimestamp(),
+ wfTimestamp( TS_MW, $row['notification_timestamp'] )
+ );
+ $this->assertInstanceOf( 'EchoEvent', $notif->getEvent() );
+ $this->assertNull( $notif->getTargetPages() );
+
+ // Provide a read timestamp
+ $row['notification_read_timestamp'] = time() + 1000;
+ $notif = EchoNotification::newFromRow( (object)$row );
+ // getReadTimestamp() should return the timestamp in MW format
+ $this->assertEquals(
+ $notif->getReadTimestamp(),
+ wfTimestamp( TS_MW, $row['notification_read_timestamp'] )
+ );
+
+ $notif = EchoNotification::newFromRow( (object)$row, array(
+ EchoTargetPage::newFromRow( (object)$this->mockTargetPageRow() )
+ ) );
+ $this->assertGreaterThan( 0, count( $notif->getTargetPages() ) );
+ foreach ( $notif->getTargetPages() as $targetPage ) {
+ $this->assertInstanceOf( 'EchoTargetPage', $targetPage );
+ }
+ }
+
+ /**
+ * @expectedException MWException
+ */
+ public function testNewFromRowWithException() {
+ $row = $this->mockNotificationRow();
+ // Provide an invalid event id
+ $row['notification_event'] = -1;
+ $noitf = EchoNotification::newFromRow( (object)$row );
+ }
+
+ /**
+ * Mock a notification row from database
+ */
+ protected function mockNotificationRow() {
+ return array (
+ 'notification_user' => 1,
+ 'notification_event' => 1,
+ 'notification_timestamp' => time(),
+ 'notification_read_timestamp' => '',
+ 'notification_bundle_base' => 1,
+ 'notification_bundle_hash' => 'testhash',
+ 'notification_bundle_display_hash' => 'testdisplayhash'
+ );
+ }
+
+ /**
+ * Mock an event row from database
+ */
+ protected function mockEventRow() {
+ return array (
+ 'event_id' => 1,
+ 'event_type' => 'test_event',
+ 'event_variant' => '',
+ 'event_extra' => '',
+ 'event_page_id' => '',
+ 'event_agent_id' => '',
+ 'event_agent_ip' => ''
+ );
+ }
+
+ /**
+ * Mock a target page row
+ */
+ protected function mockTargetPageRow() {
+ return array (
+ 'etp_user' => 1,
+ 'etp_page' => 2,
+ 'etp_event' => 1
+ );
+ }
+
+}
diff --git a/Echo/tests/phpunit/model/TargetPageTest.php b/Echo/tests/phpunit/model/TargetPageTest.php
new file mode 100644
index 00000000..29670ff7
--- /dev/null
+++ b/Echo/tests/phpunit/model/TargetPageTest.php
@@ -0,0 +1,99 @@
+<?php
+
+class EchoTargetPageTest extends MediaWikiTestCase {
+
+ public function testCreate() {
+ $this->assertNull(
+ EchoTargetPage::create(
+ User::newFromId( 0 ),
+ $this->mockTitle( 1 ),
+ $this->mockEchoEvent()
+ )
+ );
+
+ $this->assertNull(
+ EchoTargetPage::create(
+ User::newFromId( 1 ),
+ $this->mockTitle( 0 ),
+ $this->mockEchoEvent()
+ )
+ );
+
+ $this->assertNull(
+ EchoTargetPage::create(
+ User::newFromId( 0 ),
+ $this->mockTitle( 0 ),
+ $this->mockEchoEvent()
+ )
+ );
+
+ $this->assertInstanceOf(
+ 'EchoTargetPage',
+ EchoTargetPage::create(
+ User::newFromId( 1 ),
+ $this->mockTitle( 1 ),
+ $this->mockEchoEvent()
+ )
+ );
+ }
+
+ public function testNewFromRow() {
+ $row = (object) array (
+ 'etp_user' => 1,
+ 'etp_page' => 2,
+ 'etp_event' => 3
+ );
+ $obj = EchoTargetPage::newFromRow( $row );
+ $this->assertInstanceOf( 'EchoTargetPage', $obj );
+ return $obj;
+ }
+
+ /**
+ * @expectedException MWException
+ */
+ public function testNewFromRowWithException() {
+ $row = (object) array (
+ 'etp_page' => 2,
+ 'etp_event' => 3
+ );
+ $this->assertInstanceOf( 'EchoTargetPage', EchoTargetPage::newFromRow( $row ) );
+ }
+
+ /**
+ * @depends testNewFromRow
+ */
+ public function testToDbArray( $obj ) {
+ $row = $obj->toDbArray();
+ $this->assertTrue( is_array( $row ) );
+ $this->assertArrayHasKey( 'etp_user', $row );
+ $this->assertArrayHasKey( 'etp_page', $row );
+ $this->assertArrayHasKey( 'etp_event', $row );
+ }
+
+ /**
+ * Mock object of Title
+ */
+ protected function mockTitle( $pageId ) {
+ $event = $this->getMockBuilder( 'Title' )
+ ->disableOriginalConstructor()
+ ->getMock();
+ $event->expects( $this->any() )
+ ->method( 'getArticleID' )
+ ->will( $this->returnValue( $pageId ) );
+ return $event;
+ }
+
+ /**
+ * Mock object of EchoEvent
+ */
+ protected function mockEchoEvent( $eventId = 1 ) {
+ $event = $this->getMockBuilder( 'EchoEvent' )
+ ->disableOriginalConstructor()
+ ->getMock();
+ $event->expects( $this->any() )
+ ->method( 'getId' )
+ ->will( $this->returnValue( $eventId ) );
+ return $event;
+ }
+
+}
diff --git a/Echo/tests/qunit/overlay/test_ext.echo.overlay.js b/Echo/tests/qunit/overlay/test_ext.echo.overlay.js
new file mode 100644
index 00000000..7f456b6b
--- /dev/null
+++ b/Echo/tests/qunit/overlay/test_ext.echo.overlay.js
@@ -0,0 +1,307 @@
+( function( $, mw ) {
+ QUnit.module( 'ext.echo.overlay', {
+ setup: function() {
+ this.$badge = $( '<a class="mw-echo-notifications-badge mw-echo-unread-notifications">1</a>' );
+ this.sandbox.stub( mw.echo, 'getBadge' ).returns( this.$badge );
+ // Kill any existing overlays to avoid clashing with other tests
+ $( '.mw-echo-overlay' ).remove();
+
+ var ApiStub = function( mode, numberUnreadMessages ) {
+ this.mode = mode;
+ this.numberUnreadMessages = numberUnreadMessages || 7;
+ };
+ ApiStub.prototype = {
+ post: function( data ) {
+ return new $.Deferred().resolve( this.getNewNotificationCountData( data,
+ this.mode === 'with-new-messages' ) );
+ },
+ get: function() {
+ var i, id,
+ index = [], listObj = {},
+ data = this.getData();
+ // a response which contains 0 unread messages and 1 unread alert
+ if ( this.mode === 'no-new-messages' ) {
+ data.query.notifications.message = {
+ index: [ 100 ],
+ list: {
+ 100: {
+ '*': 'Jon sent you a message on the Flow board Talk:XYZ',
+ read: '20140805211446',
+ category: 'message',
+ id: 100,
+ type: 'message'
+ }
+ },
+ rawcount: 0,
+ count: '0'
+ };
+ // a response which contains 8 unread messages and 1 unread alert
+ } else if ( this.mode === 'with-new-messages' ) {
+ for ( i = 0; i < 7; i++ ) {
+ id = 500 + i;
+ index.push( id );
+ listObj[id] = { '*': '!', category: 'message', id: id, type: 'message' };
+ }
+ data.query.notifications.message = {
+ index: index,
+ list: listObj,
+ rawcount: this.numberUnreadMessages,
+ count: '' + this.numberUnreadMessages
+ };
+ // Total number is number of messages + number of alerts (1)
+ data.query.notifications.count = this.numberUnreadMessages + 1;
+ data.query.notifications.rawcount = this.numberUnreadMessages + 1;
+ }
+ return $.Deferred().resolve( data );
+ },
+ getNewNotificationCountData: function( data, hasNewMessages ) {
+ var alertCount, messageCount,
+ rawCount = 0,
+ count = 0;
+
+ messageCount = {
+ count: '0',
+ rawcount: 0
+ };
+ alertCount = {
+ count: '0',
+ rawcount: 0
+ };
+ if ( data.list === '100' ) {
+ alertCount = {
+ count: '0',
+ rawcount: 0
+ };
+ count = 1;
+ rawCount = 1;
+ }
+
+ if ( hasNewMessages && data.sections === 'alert' ) {
+ messageCount = {
+ count: '7',
+ rawcount: 7
+ };
+ rawCount = 7;
+ count = 7;
+ }
+
+ if ( data.list === 500 ) {
+ messageCount = {
+ count: '6',
+ rawcount: 6
+ };
+ rawCount = 6;
+ count = 6;
+ }
+
+ data = {
+ query: {
+ echomarkread: {
+ alert: alertCount,
+ message: messageCount,
+ rawcount: rawCount,
+ count: count
+ }
+ }
+ };
+ return data;
+ },
+ getData: function() {
+ return {
+ query: {
+ notifications: {
+ count: '1',
+ rawcount: 1,
+ message: {
+ rawcount: 0,
+ count: '0',
+ index: [],
+ list: {}
+ },
+ alert: {
+ rawcount: 1,
+ count: '1',
+ index: [ 70, 71 ],
+ list: {
+ 70: {
+ '*': 'Jon mentioned you.',
+ agent: { id: 212, name: 'Jon' },
+ category: 'mention',
+ id: 70,
+ read: '20140805211446',
+ timestamp: {
+ unix: '1407273276'
+ },
+ title: {
+ full: 'Spiders'
+ },
+ type: 'mention'
+ },
+ 71: {
+ '*': 'X talked to you.',
+ category: 'edit-user-talk',
+ id: 71,
+ type: 'edit-user-talk'
+ }
+ }
+ }
+ }
+ }
+ };
+ }
+ };
+ this.ApiStub = ApiStub;
+ }
+ } );
+
+ QUnit.test( 'mw.echo.overlay.buildOverlay', 7, function( assert ) {
+ var $overlay;
+ this.sandbox.stub( mw.echo.overlay, 'api', new this.ApiStub() );
+ mw.echo.overlay.buildOverlay( function( $o ) {
+ $overlay = $o;
+ } );
+ assert.strictEqual( $overlay.find( '.mw-echo-overlay-title ul li' ).length, 1, 'Only one tab in header' );
+ assert.strictEqual( $overlay.find( '.mw-echo-notifications' ).length, 1, 'Overlay contains a list of notifications.' );
+ assert.strictEqual( $overlay.find( '.mw-echo-notifications li' ).length, 2, 'There are two notifications.' );
+ assert.strictEqual( $overlay.find( '.mw-echo-unread' ).length, 1, 'There is one unread notification.' );
+ assert.strictEqual( $overlay.find( '.mw-echo-overlay-footer a' ).length, 2,
+ 'There is a footer with 2 links to preferences and all notifications.' );
+ assert.strictEqual( this.$badge.text(),
+ '0', 'The alerts are marked as read once opened.' );
+ assert.strictEqual( this.$badge.hasClass( 'mw-echo-unread-notifications' ),
+ false, 'The badge no longer indicates new messages.' );
+ } );
+
+ QUnit.test( 'mw.echo.overlay.buildOverlay with messages', 5, function( assert ) {
+ var $overlay;
+ this.sandbox.stub( mw.echo.overlay, 'api', new this.ApiStub( 'no-new-messages' ) );
+ mw.echo.overlay.buildOverlay( function( $o ) {
+ $overlay = $o;
+ } );
+ assert.strictEqual( $overlay.find( '.mw-echo-overlay-title ul li' ).length, 2, 'There are two tabs in header' );
+ assert.strictEqual( $overlay.find( '.mw-echo-notifications' ).length, 2, 'Overlay contains 2 lists of notifications.' );
+ assert.strictEqual( $overlay.find( '.mw-echo-overlay-title a' ).eq( 0 ).hasClass( 'mw-ui-quiet' ),
+ true, 'First tab is the selected tab upon opening.' );
+ assert.strictEqual( this.$badge.text(),
+ '0', 'The label updates to 0 as alerts tab is default and now alerts have been read.' );
+ assert.strictEqual( this.$badge.hasClass( 'mw-echo-unread-notifications' ),
+ false, 'The notification button class is updated with the default switch to alert tab.' );
+ } );
+
+ QUnit.test( 'Switch tabs on overlay. 1 unread alert, no unread messages.', 7, function( assert ) {
+ var $overlay, $tabs;
+
+ this.sandbox.stub( mw.echo.overlay, 'api', new this.ApiStub( 'no-new-messages' ) );
+ mw.echo.overlay.buildOverlay( function( $o ) {
+ $overlay = $o;
+ // switch to 1st tab (alerts)
+ $overlay.find( '.mw-echo-overlay-title li a' ).eq( 0 ).trigger( 'click' );
+ } );
+
+ $tabs = $overlay.find( '.mw-echo-overlay-title li a' );
+
+ assert.strictEqual( $tabs.eq( 0 ).hasClass( 'mw-ui-quiet' ),
+ true, 'First tab is now the selected tab.' );
+ assert.strictEqual( $tabs.eq( 1 ).hasClass( 'mw-ui-quiet' ),
+ false, 'Second tab is not the selected tab.' );
+ assert.strictEqual( this.$badge.text(),
+ '0', 'The label is now set to 0.' );
+ assert.strictEqual( this.$badge.hasClass( 'mw-echo-unread-notifications' ),
+ false, 'There are now zero unread notifications.' );
+
+ assert.strictEqual( $tabs.eq( 0 ).text(), 'Alerts (0)', 'Check the label has a count in it.' );
+ assert.strictEqual( $tabs.eq( 1 ).text(), 'Messages (0)', 'Check the label has an updated count in it.' );
+ assert.strictEqual( $tabs.eq( 1 ).hasClass( 'mw-ui-active' ),
+ true, 'Second tab has active class .as it is the only clickable tab' );
+ } );
+
+ QUnit.test( 'Unread message behaviour', 5, function( assert ) {
+ var $overlay;
+
+ this.sandbox.stub( mw.echo.overlay, 'api', new this.ApiStub( 'with-new-messages' ) );
+ mw.echo.overlay.buildOverlay( function( $o ) {
+ $overlay = $o;
+ } );
+
+ // Test initial state
+ assert.strictEqual( $overlay.find( '.mw-echo-overlay-title li a' ).eq( 1 ).text(), 'Messages (7)',
+ 'Check the label has a count in it and it is not automatically reset when tab is open.' );
+ assert.strictEqual( $overlay.find( '.mw-echo-unread' ).length, 8, 'There are 8 unread notifications.' );
+
+ // Click mark as read
+ $overlay.find( '.mw-echo-notifications > button' ).eq( 0 ).trigger( 'click' );
+ assert.strictEqual( $overlay.find( '.mw-echo-overlay-title li a' ).eq( 1 ).text(), 'Messages (0)',
+ 'Check all the notifications (even those outside overlay) have been marked as read.' );
+ assert.strictEqual( $overlay.find( '.mw-echo-notifications ' ).eq( 1 ).find( '.mw-echo-unread' ).length,
+ 0, 'There are now no unread notifications in this tab.' );
+ assert.strictEqual( $overlay.find( '.mw-echo-notifications > button' ).length, 0,
+ 'There are no notifications now so no need for button.' );
+ } );
+
+ QUnit.test( 'Mark as read.', 8, function( assert ) {
+ var $overlay;
+ this.$badge.text( '8' );
+ this.sandbox.stub( mw.echo.overlay, 'api', new this.ApiStub( 'with-new-messages' ) );
+ mw.echo.overlay.buildOverlay( function( $o ) {
+ $overlay = $o;
+ } );
+
+ // Test initial state
+ assert.strictEqual( $overlay.find( '.mw-echo-overlay-title li a' ).eq( 1 ).text(), 'Messages (7)',
+ 'Check the label has a count in it and it is not automatically reset when tab is open.' );
+ assert.strictEqual( $overlay.find( '.mw-echo-unread' ).length, 8,
+ 'There are 7 unread message notifications and although the alert is marked as read on server is displays as unread in overlay.' );
+ assert.strictEqual( this.$badge.text(), '7', '7 unread notifications in badge (alerts get marked automatically).' );
+ assert.strictEqual( $overlay.find( '.mw-echo-notifications li button' ).length, 7,
+ 'There are 7 mark as read button.' );
+
+ // Click first mark as read
+ $overlay.find( '.mw-echo-notifications li button' ).eq( 0 ).trigger( 'click' );
+
+ assert.strictEqual( $overlay.find( '.mw-echo-overlay-title li a' ).eq( 1 ).text(), 'Messages (6)',
+ 'Check the notification was marked as read.' );
+ assert.strictEqual( $overlay.find( '.mw-echo-unread' ).length, 7,
+ 'There are now 6 unread message notifications in UI and 1 unread alert.' );
+ assert.strictEqual( $overlay.find( '.mw-echo-notifications li button' ).length, 6,
+ 'There are now 6 mark as read buttons.' );
+ assert.strictEqual( this.$badge.text(), '6', 'Now 6 unread notifications.' );
+ } );
+
+ QUnit.test( 'Tabs when there is overflow.', 2, function( assert ) {
+ var $overlay;
+ this.sandbox.stub( mw.echo.overlay, 'api', new this.ApiStub( 'with-new-messages', 50 ) );
+ mw.echo.overlay.buildOverlay( function( $o ) {
+ $overlay = $o;
+ } );
+
+ // Test initial state
+ assert.strictEqual( $overlay.find( '.mw-echo-overlay-title li a' ).eq( 1 ).text(), 'Messages (50)',
+ 'Check the label has a count in it and reflects the total unread and not the shown unread' );
+ assert.strictEqual( $overlay.find( '.mw-echo-unread' ).length, 8, 'There are 8 unread notifications.' );
+ } );
+
+ QUnit.test( 'Switching tabs visibility', 4, function( assert ) {
+ var $overlay;
+
+ this.sandbox.stub( mw.echo.overlay, 'api', new this.ApiStub( 'with-new-messages' ) );
+ mw.echo.overlay.buildOverlay( function( $o ) {
+ // put in dom so we can do visibility tests
+ $overlay = $o.appendTo( '#qunit-fixture' );
+ } );
+
+ // Test initial state
+ assert.strictEqual( $overlay.find( '.mw-echo-notifications' ).eq( 0 ).is( ':visible' ),
+ true, 'First tab (alerts) starts visible.' );
+ assert.strictEqual( $overlay.find( '.mw-echo-notifications' ).eq( 1 ).is( ':visible' ),
+ false, 'Second tab (messages) starts hidden.' );
+
+ // Switch to second tab
+ $overlay.find( '.mw-echo-overlay-title li a' ).eq( 1 ).trigger( 'click' );
+
+ // check new tab visibility
+ assert.strictEqual( $overlay.find( '.mw-echo-notifications' ).eq( 0 ).is( ':visible' ),
+ false, 'First tab is now hidden.' );
+ assert.strictEqual( $overlay.find( '.mw-echo-notifications' ).eq( 1 ).is( ':visible' ),
+ true, 'Second tab is now visible.' );
+ } );
+}( jQuery, mediaWiki ) );