This tests the behaviour when removing multiple referenced files.  The single
resulting confirmation page should contain lists of all link integrity
breaches that would result from removing the referenced files.  First we need
to create the necessary links:

  >>> self.setRoles(('Manager',))
  >>> tmpl = '<html> <body> %s, %s </body> </html>'
  >>> p = self.portal
  >>> p.doc1.processForm(values={'text':tmpl % (p.image1.tag(), p.image2.tag())})
  >>> p.doc2.processForm(values={'text':tmpl % (p.image1.tag(), p.image3.tag())})

Then we use a browser to try to delete the referenced images.  Before we
can do this we need to prevent the test framework from choking on the
exception we intentionally throw (see docs/testRemovalTriggersConfirmation.txt
for more info):

  >>> self.setStatusCode('LinkIntegrityNotificationException', 200)
  >>> browser = self.getBrowser(loggedIn=True)
  >>> browser.open('http://nohost/plone/folder_contents')
  >>> browser.getControl('Test Image 1').selected = True
  >>> browser.getControl('Test Image 2').selected = True
  >>> browser.getControl('Test Image 3').selected = True
  >>> browser.getControl('Delete').click()
  >>> browser.contents
  '...<a href="http://nohost/plone/image1"...Test Image 1...
   ...This...Image...is referenced by the following items:...
   ...<li>...<a href="http://nohost/plone/doc1"...Test Page 1...</li>...
   ...<li>...<a href="http://nohost/plone/doc2"...Test Page 2...</li>...
   ...<a href="http://nohost/plone/image2"...Test Image 2...
   ...This...Image...is referenced by the following items:...
   ...<li>...<a href="http://nohost/plone/doc1"...Test Page 1...</li>...
   ...<a href="http://nohost/plone/image3"...Test Image 3...
   ...This...Image...is referenced by the following items:...
   ...<li>...<a href="http://nohost/plone/doc2"...Test Page 2...</li>...
   ...Would you like to delete it anyway?...'
  >>> browser.getControl(name='delete').click()

After we acknowledge the breaches in link integrity the images should have
been deleted:

  >>> portal.image1
  Traceback (most recent call last):
  ...
  AttributeError: image1
  >>> portal.image2
  Traceback (most recent call last):
  ...
  AttributeError: image2
  >>> portal.image3
  Traceback (most recent call last):
  ...
  AttributeError: image3

