com.atlassian.confluence
Class AttachmentAcceptanceTest

java.lang.Object
  extended by junit.framework.Assert
      extended by junit.framework.TestCase
          extended by com.atlassian.confluence.ThreadLocalWebTestCase
              extended by com.atlassian.confluence.AbstractAtlassianWebTestCase
                  extended by com.atlassian.confluence.AbstractConfluenceAcceptanceTest
                      extended by com.atlassian.confluence.AttachmentAcceptanceTest
All Implemented Interfaces:
junit.framework.Test

public class AttachmentAcceptanceTest
extends AbstractConfluenceAcceptanceTest


Field Summary
static String PROPERTIES_LINK_TEXT
           
 
Fields inherited from class com.atlassian.confluence.AbstractConfluenceAcceptanceTest
adminConsole, adminToken, ANONYMOUS_USER, BLOG_DATE_FORMAT, BROWSE_MENU_LINK_ID, CONFLUENCE_ADMIN_GROUP, CONFLUENCE_USERS_GROUP, context, CROWD_MODE, DIRECTORY_CONFIG, filesToDelete, log, logAdjuster, mailServices, RANDOM, rpc, SMTP_SUBJECT_PREFIX, TEST_ADMIN, TEST_ADMIN_EMAIL, TEST_ADMIN_FULLNAME, TEST_ADMIN_PASSWORD, TEST_ADMIN_USERNAME, TEST_BLOG, TEST_COMMENT, TEST_GEN_EMAIL1, TEST_GEN_EMAIL2, TEST_GEN_FULLNAME1, TEST_GEN_FULLNAME2, TEST_GEN_PASSWORD1, TEST_GEN_PASSWORD2, TEST_GEN_USERNAME1, TEST_GEN_USERNAME2, TEST_GROUP1, TEST_PAGE, TEST_SPACE, TEST_SPACE2, TEST_USER1, TEST_USER2, TESTBLOG_CONTENT, TESTBLOG_TITLE, TESTMAILSERVER_HOSTNAME, TESTMAILSERVER_NAME, TESTPAGE_COMMENT, TESTPAGE_CONTENT, TESTPAGE_TITLE, TESTSPACE_DESCRIPTION, TESTSPACE_KEY, TESTSPACE_TITLE, TESTSPACE2_DESCRIPTION, TESTSPACE2_KEY, TESTSPACE2_TITLE, testUser2Token, testUserToken, userHelper, VIEW_PERSONAL_SPACE_LINK, wikiMarkupRpc, xmlrpc
 
Fields inherited from class com.atlassian.confluence.AbstractAtlassianWebTestCase
SITE_TITLE_SUFFIX, TITLE_SEPARATOR
 
Constructor Summary
AttachmentAcceptanceTest()
           
 
Method Summary
protected  void setUp()
           
protected  void tearDown()
          Default tearDown method.
 void testAddAttachmentWithCaptchaEnabledAndWrongCaptcha()
           
 void testAttachFileWithSpecialCharacters()
           
 void testAttachmentAuthorshipPreservedOnAttachmentMoveAndComment()
           
 void testAttachmentIconAndCountDisplayedAsPageMetaData()
           
 void testAttachmentPagination()
           
 void testAttachmentProperlyAttributedOnDashboard()
           
 void testAttachmentsMacroOrder()
           
 void testAttachmentVersioning()
           
 void testAttachmentWithSimilarNameButDifferentCaseIsAddedAsHistoricalVersion()
          adding Foo.txt when foo.txt exists, should Foo.txt as a version (the case of foo.txt should be preserved)
 void testAttachMultipleFiles()
           
 void testCannotMoveFileToAnotherPageThatDoesNotExist()
           
 void testDownloadAllAttachments()
           
 void testDownloadAllAttachmentsAsAnonymousUser()
           
 void testDownloadAllAttachmentsOnPageLink()
           
 void testDownloadSingleAttachment()
           
 void testFileNameIsRequired()
           
 void testFilterByDifferentCasedFileExtension()
           
 void testFilterByFileExtension()
           
 void testFilterByFileExtensionWithPagination()
           
 void testHighlightAttachmentWithPagination()
           
 void testHtmlAttachmentsAreNotServedInline()
           
 void testInvalidDownloadUrlReturnsFourOhFour()
           
 void testLargeAttachmentNotTruncated()
           
 void testListSpaceAttachmentsMoreThanMaxResults()
           
 void testMaxAttachmentsInUI()
           
 void testMaxAttachmentSizeRespected()
           
 void testMoveAttachmentToAnotherPageAndBack()
           
 void testMoveAttachmentToUnpermittedPage()
           
 void testMoveFileToAnotherPage()
           
 void testMoveFileToAnotherSpace()
           
 void testMovingAttachmentDoesNotUpdateLinksWithoutAttachments()
           
 void testMovingAttachmentToPageWithoutViewPermissions()
           
 void testMovingAttachmentUpdatesLinksOnOriginalOwner()
          Test of CONF-9007, that when an attachment is moved, links to it are updated.
 void testNotAbleToRenameFileToEmptyFileNameInOtherSpace()
           
 void testNotAbleToRenameFileToExistingFileName()
           
 void testNotAbleToRenameFileToExistingFileNameInOtherSpace()
           
 void testNoXssWithFileRename()
           
 void testRemoveAttachmentAndAllPreviousVersions()
           
 void testRemoveCommentOnAttachment()
           
 void testSortingByCreatedDate()
           
 void testUploaderOfNewAttachmentVersionIsAcknowledgedAsCreator()
           
 void TODOXHTML_testMovingAttachmentDoesNotBreakLinkToOtherAttachmentsWithSameName()
          Test that moving attachments does not update links to unmoved attachments with the same name.
 void TODOXHTML_testMovingAttachmentSimplifiesLinksInNewOwner()
          Test of CONF-9007, that when an attachment is moved, links to it from the new owning page are simplified (Page prefix is removed).
 void TODOXHTML_testMovingAttachmentUpdatesLinksWithPagePrefix()
          Test of CONF-9007, that when an attachment is moved, links to it are updated.
 
Methods inherited from class com.atlassian.confluence.AbstractConfluenceAcceptanceTest
addAnonymousPermissionsToSpace, addComment, addCommentToBlogPost, addSpaceLabel, addUserToGroupViaHelper, addWatchPage, assertImagePresent, assertImageValid, assertLinkPresentWithExactTextAndClass, assertLoggedInAs, assertMailReceived, assertNoMailReceived, attachFile, attachFile, attachFileWithName, chooseRandomBaseUrl, createBlog, createBlogInTestSpace, createGroup, createGroupViaHelper, createMail, createPage, createPageWithViewRestrictions, createSpaceViaWebUI, createSpaceViaWebUI, createSpaceViaWebUI, createTemplate, createTestMailServer, createTestSpaceViaWebUI, createUserViaHelper, createUserViaHelper, disableAnonymousAccess, disableAnonymousAccessToSpace, editBlog, editBlogLabels, editPage, editPageContent, editPageContentViaForm, editPageWithContent, editSpaceDescription, editSpacePermsForm, enableAnonymousAccess, enableAnonymousAccessToSpace, ensureTestUserCanViewTestSpace, forceViewGlobalAdmin, generateBaseUrl, generateFile, getAppContext, getBaseUrl, getConfiguredBaseUrl, getCurrentMailQueueSize, getCurrentPageId, getFriendlyRelativeDate, getPageId, getPluginHelper, getTodaysBlogPostDate, gotoPageWithError, grantAnonymousUseConfluencePermission, grantGlobalBrowsePermissionToGroup, grantGlobalPermissionToGroup, grantGlobalPermissionToUser, grantSpacePermissionToGroup, grantSpacePermissionToGroupAndDelegate, grantSpacePermissionToUser, grantSpacePermissionToUserAndDelegate, grantViewSpacePermissionToGroup, grantViewSpacePermissionToGroupAndDelegate, grantViewSpacePermissionToUser, importGlobalBackup, importGlobalBackup, importMail, importMailAndAssertNoRunningTask, importSpaceBackup, isClustered, logIn, logIn, logInAs, logInAs, loginAs, logInAsAdminAtDashboard, logInAsAtDashboard, loginAsAtDashboard, loginAsTestUser, loginAsTestUser2, loginAsTestUserAtDashboard, loginViaForm, logout, makeParams, movePage, movePage, movePageToNewParent, movePageToNewParent, movePageToNewSpace, rebuildIndex, removeAnonymousPermissionToSpace, removeGroup, removePageLabel, removePageOrBlogById, removePersonalSpace, removeTestUser1, removeTestUser1ViaHelper, removeUser, removeUserFromGroupViaHelper, removeUserViaHelper, renamePage, revokeAnonymousUseConfluencePermission, revokeGlobalPermissionFromGroup, revokeGlobalPermissionFromUser, revokeSpacePermissionFromGroup, revokeSpacePermissionFromUser, rpcAddComment, rpcAddComment, rpcAddComment, rpcAddLabelToBlog, rpcAddLabelToPage, rpcAddLabelToPage, rpcAddLabelToSpace, rpcAddTestComment, rpcClearIndex, rpcClearQueue, rpcCreateBlogPost, rpcCreateBlogPost, rpcCreatePage, rpcCreatePage, rpcCreatePersonalSpace, rpcCreateSpace, rpcCreateSpace, rpcCreateSpaceGroup, rpcCreateTestSpace, rpcCreateTestSpace2, rpcCreateXhtmlPage, rpcEditBlogPost, rpcEditComment, rpcEditPage, rpcFlushAllCaches, rpcFlushIndexQueue, rpcFlushMailQueue, rpcGetAdminToken, rpcGetBlogPostId, rpcGetChildren, rpcGetComments, rpcGetLocalisedText, rpcGetMailQueueSize, rpcGetPageId, rpcGetPageLabels, rpcGetPageLabels, rpcGetTestUser2Token, rpcGetTestUserToken, rpcGetTopLevelPages, rpcGetUserGroups, rpcGetUserToken, rpcGetUserToken, rpcGetVersionForPage, rpcGrantAnonymousSpacePermission, rpcGrantGlobalPermission, rpcGrantSpacePermission, rpcGrantViewSpacePermission, rpcHasGroup, rpcHasUser, rpclogCommandOutput, rpcLogOut, rpcLogOutAdmin, rpcMovePage, rpcMovePageToTopLevel, rpcPauseJob, rpcRemoveAllSpaceGroups, rpcRemoveAnonymousSpacePermission, rpcRemoveAttachment, rpcRemoveComment, rpcRemoveComment, rpcRemoveGlobalPermissions, rpcRemoveGroup, rpcRemoveLabelFromPage, rpcRemoveLabelFromPage, rpcRemoveLabelFromSpace, rpcRemovePage, rpcRemoveSpace, rpcRemoveSpacePermission, rpcRenderContent, rpcRestoreAbstractPage, rpcResumeJob, rpcStoreBlogEntry, rpcTrashPage, rpcTrashPage, rpcTrashPage, rpcTriggerJob, search, setApplicationConfigProperty, setAttachmentMaxUploadSize, setBlogLabels, setCheckbox, setEditPermissionsForGroups, setEditPermissionsForUsers, setMaxAttachmentsInUI, setPageLabels, setSharedMode, setThreadedComments, setUp, setUpTestNG, setViewPermissionsForGroups, setViewPermissionsForUsers, showAllUsers, shutdownQuartz, stopTestMailServer, tearDownTestNG, viewBlog, viewEditBlogPostPage, viewGlobalAdmin, viewGlobalPermissions, viewHomepage, viewLabel, viewLanguages, viewPage, viewPeopleDirectory, viewSpaceAdmin, viewSpaceAdvanced, viewSpaceContent, viewSpacePermissions, viewSpacePermissions, viewSpaceSummary, viewSpaceSummary, viewTodaysBlog, viewTrash, viewUser, watchPage, watchSpace, watchSpace, withParagraph, xmlRpcExecute
 
Methods inherited from class com.atlassian.confluence.AbstractAtlassianWebTestCase
assertCollectionContainsKeyWithValue, assertContains, assertContainsRegex, assertDoesNotContain, assertEndsWith, assertLinkNotPresentWithHrefContaining, assertLinkPresentWithHref, assertLinkPresentWithHrefContaining, assertLinkPresentWithTextAndHref, assertPageTitleEquals, assertServerResponseContains, assertServerResponseDoesNotContain, assertStartsWith, assertStatusCode, assertTextPresentInPageSource, assertTextsPresentInOrder, assertTextsPresentInOrder, assertTitleEquals, assertTitleEquals, getGroupFromResponse, setTextFieldUnlessBlank
 
Methods inherited from class com.atlassian.confluence.ThreadLocalWebTestCase
assertButtonNotPresent, assertButtonNotPresentWithText, assertButtonPresent, assertButtonPresentWithText, assertCheckboxNotPresent, assertCheckboxNotPresent, assertCheckboxNotSelected, assertCheckboxNotSelected, assertCheckboxPresent, assertCheckboxPresent, assertCheckboxSelected, assertCheckboxSelected, assertCookiePresent, assertCookieValueEquals, assertCookieValueMatch, assertDownloadedFileEquals, assertElementNotPresent, assertElementNotPresentByXPath, assertElementPresent, assertElementPresentByXPath, assertFormElementEmpty, assertFormElementEquals, assertFormElementMatch, assertFormElementNotPresent, assertFormElementPresent, assertFormNotPresent, assertFormNotPresent, assertFormPresent, assertFormPresent, assertFramePresent, assertHiddenFieldPresent, assertImagePresent, assertImageValidAndStore, assertKeyInTable, assertKeyInTable, assertKeyNotInTable, assertKeyNotPresent, assertKeyNotPresent, assertKeyPresent, assertKeyPresent, assertKeysInTable, assertKeysInTable, assertLinkNotPresent, assertLinkNotPresentWithExactText, assertLinkNotPresentWithExactText, assertLinkNotPresentWithImage, assertLinkNotPresentWithText, assertLinkNotPresentWithText, assertLinkPresent, assertLinkPresentWithExactText, assertLinkPresentWithExactText, assertLinkPresentWithImage, assertLinkPresentWithText, assertLinkPresentWithText, assertMatch, assertMatchInElement, assertMatchInTable, assertMatchInTable, assertNoMatch, assertNoMatchInElement, assertNoMatchInTable, assertNoMatchInTable, assertRadioOptionNotPresent, assertRadioOptionNotSelected, assertRadioOptionPresent, assertRadioOptionSelected, assertResetButtonNotPresent, assertResetButtonNotPresent, assertResetButtonPresent, assertResetButtonPresent, assertSelectedOptionEquals, assertSelectedOptionMatches, assertSelectedOptionsEqual, assertSelectedOptionsMatch, assertSelectedOptionValueEquals, assertSelectedOptionValuesEqual, assertSelectOptionNotPresent, assertSelectOptionPresent, assertSelectOptionsEqual, assertSelectOptionsNotEqual, assertSelectOptionsPresent, assertSelectOptionValueNotPresent, assertSelectOptionValuePresent, assertSelectOptionValuesEqual, assertSelectOptionValuesNotEqual, assertSelectOptionValuesPresent, assertSubmitButtonNotPresent, assertSubmitButtonNotPresent, assertSubmitButtonPresent, assertSubmitButtonPresent, assertSubmitButtonPresent, assertTableEquals, assertTableEquals, assertTableMatch, assertTableMatch, assertTableNotPresent, assertTablePresent, assertTableRowCountEquals, assertTableRowsEqual, assertTableRowsEqual, assertTableRowsMatch, assertTableRowsMatch, assertTextFieldEquals, assertTextInElement, assertTextInTable, assertTextInTable, assertTextNotInElement, assertTextNotInTable, assertTextNotInTable, assertTextNotPresent, assertTextPresent, assertTitleEqualsKey, assertTitleEqualsKey, assertTitleMatch, assertWindowCountEquals, assertWindowPresent, assertWindowPresent, assertWindowPresentWithTitle, beginAt, checkCheckbox, checkCheckbox, clickButton, clickButtonWithText, clickElementByXPath, clickLink, clickLinkWithExactText, clickLinkWithExactText, clickLinkWithImage, clickLinkWithText, clickLinkWithText, clickRadioOption, closeBrowser, closeWindow, dumpCookies, dumpHtml, dumpHtml, dumpTable, dumpTable, getDialog, getElementAttributByXPath, getElementTextByXPath, getFormElementValue, getImage, getMessage, getMessage, getPageSource, getServeurResponse, getTable, getTestContext, getTester, getTestingEngineKey, gotoFrame, gotoPage, gotoRootWindow, gotoWindow, gotoWindow, gotoWindowByTitle, removeThreadLocal, reset, runBare, saveAs, selectOption, selectOptionByValue, selectOptions, selectOptionsByValues, setDialog, setExpectedJavaScriptAlert, setExpectedJavaScriptAlert, setExpectedJavaScriptConfirm, setExpectedJavaScriptConfirm, setExpectedJavaScriptPrompt, setExpectedJavaScriptPrompt, setFormElement, setScriptingEnabled, setTestContext, setTester, setTestingEngineKey, setTextField, setWorkingForm, setWorkingForm, setWorkingForm, submit, submit, submit, uncheckCheckbox, uncheckCheckbox, wrapWithPageSourceOnError
 
Methods inherited from class junit.framework.TestCase
countTestCases, createResult, getName, run, run, runTest, setName, toString
 
Methods inherited from class junit.framework.Assert
assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertFalse, assertFalse, assertNotNull, assertNotNull, assertNotSame, assertNotSame, assertNull, assertNull, assertSame, assertSame, assertTrue, assertTrue, fail, fail
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

PROPERTIES_LINK_TEXT

public static final String PROPERTIES_LINK_TEXT
See Also:
Constant Field Values
Constructor Detail

AttachmentAcceptanceTest

public AttachmentAcceptanceTest()
Method Detail

setUp

protected void setUp()
              throws Exception
Overrides:
setUp in class AbstractConfluenceAcceptanceTest
Throws:
Exception

tearDown

protected void tearDown()
                 throws Exception
Description copied from class: AbstractConfluenceAcceptanceTest
Default tearDown method. Removes any files which were added to the AbstractConfluenceAcceptanceTest.filesToDelete list.

Overrides:
tearDown in class AbstractConfluenceAcceptanceTest
Throws:
Exception

testAttachmentProperlyAttributedOnDashboard

public void testAttachmentProperlyAttributedOnDashboard()
                                                 throws Exception
Throws:
Exception

testAttachmentIconAndCountDisplayedAsPageMetaData

public void testAttachmentIconAndCountDisplayedAsPageMetaData()
                                                       throws Exception
Throws:
Exception

testAddAttachmentWithCaptchaEnabledAndWrongCaptcha

public void testAddAttachmentWithCaptchaEnabledAndWrongCaptcha()

testMaxAttachmentSizeRespected

public void testMaxAttachmentSizeRespected()

testMaxAttachmentsInUI

public void testMaxAttachmentsInUI()

testAttachMultipleFiles

public void testAttachMultipleFiles()

testAttachmentPagination

public void testAttachmentPagination()
                              throws UnsupportedEncodingException
Throws:
UnsupportedEncodingException

testHighlightAttachmentWithPagination

public void testHighlightAttachmentWithPagination()
                                           throws UnsupportedEncodingException
Throws:
UnsupportedEncodingException

testAttachFileWithSpecialCharacters

public void testAttachFileWithSpecialCharacters()

testAttachmentWithSimilarNameButDifferentCaseIsAddedAsHistoricalVersion

public void testAttachmentWithSimilarNameButDifferentCaseIsAddedAsHistoricalVersion()
adding Foo.txt when foo.txt exists, should Foo.txt as a version (the case of foo.txt should be preserved)


testRemoveAttachmentAndAllPreviousVersions

public void testRemoveAttachmentAndAllPreviousVersions()

testFilterByFileExtension

public void testFilterByFileExtension()

testFilterByFileExtensionWithPagination

public void testFilterByFileExtensionWithPagination()

testFilterByDifferentCasedFileExtension

public void testFilterByDifferentCasedFileExtension()

testListSpaceAttachmentsMoreThanMaxResults

public void testListSpaceAttachmentsMoreThanMaxResults()
                                                throws Exception
Throws:
Exception

testDownloadAllAttachmentsOnPageLink

public void testDownloadAllAttachmentsOnPageLink()
                                          throws IOException,
                                                 SAXException
Throws:
IOException
SAXException

testDownloadSingleAttachment

public void testDownloadSingleAttachment()
                                  throws SAXException,
                                         IOException
Throws:
SAXException
IOException

testDownloadAllAttachments

public void testDownloadAllAttachments()

testDownloadAllAttachmentsAsAnonymousUser

public void testDownloadAllAttachmentsAsAnonymousUser()
                                               throws Exception
Throws:
Exception

testFileNameIsRequired

public void testFileNameIsRequired()

testMoveFileToAnotherPage

public void testMoveFileToAnotherPage()

testCannotMoveFileToAnotherPageThatDoesNotExist

public void testCannotMoveFileToAnotherPageThatDoesNotExist()

testMoveAttachmentToAnotherPageAndBack

public void testMoveAttachmentToAnotherPageAndBack()

testMoveFileToAnotherSpace

public void testMoveFileToAnotherSpace()

testNoXssWithFileRename

public void testNoXssWithFileRename()

testAttachmentsMacroOrder

public void testAttachmentsMacroOrder()
                               throws Exception
Throws:
Exception

testNotAbleToRenameFileToExistingFileNameInOtherSpace

public void testNotAbleToRenameFileToExistingFileNameInOtherSpace()

testNotAbleToRenameFileToEmptyFileNameInOtherSpace

public void testNotAbleToRenameFileToEmptyFileNameInOtherSpace()

testNotAbleToRenameFileToExistingFileName

public void testNotAbleToRenameFileToExistingFileName()

testMovingAttachmentUpdatesLinksOnOriginalOwner

public void testMovingAttachmentUpdatesLinksOnOriginalOwner()
                                                     throws Exception
Test of CONF-9007, that when an attachment is moved, links to it are updated.

Throws:
Exception

TODOXHTML_testMovingAttachmentSimplifiesLinksInNewOwner

public void TODOXHTML_testMovingAttachmentSimplifiesLinksInNewOwner()
                                                             throws Exception
Test of CONF-9007, that when an attachment is moved, links to it from the new owning page are simplified (Page prefix is removed).

Throws:
Exception

TODOXHTML_testMovingAttachmentUpdatesLinksWithPagePrefix

public void TODOXHTML_testMovingAttachmentUpdatesLinksWithPagePrefix()
                                                              throws Exception
Test of CONF-9007, that when an attachment is moved, links to it are updated.

Throws:
Exception

testMovingAttachmentDoesNotUpdateLinksWithoutAttachments

public void testMovingAttachmentDoesNotUpdateLinksWithoutAttachments()
                                                              throws Exception
Throws:
Exception

TODOXHTML_testMovingAttachmentDoesNotBreakLinkToOtherAttachmentsWithSameName

public void TODOXHTML_testMovingAttachmentDoesNotBreakLinkToOtherAttachmentsWithSameName()
                                                                                  throws Exception
Test that moving attachments does not update links to unmoved attachments with the same name. This is a very edgy edge case indeed.

Throws:
Exception

testLargeAttachmentNotTruncated

public void testLargeAttachmentNotTruncated()
                                     throws Exception
Throws:
Exception

testHtmlAttachmentsAreNotServedInline

public void testHtmlAttachmentsAreNotServedInline()

testAttachmentVersioning

public void testAttachmentVersioning()
                              throws IOException,
                                     SAXException
Throws:
IOException
SAXException

testInvalidDownloadUrlReturnsFourOhFour

public void testInvalidDownloadUrlReturnsFourOhFour()
                                             throws Exception
Throws:
Exception

testUploaderOfNewAttachmentVersionIsAcknowledgedAsCreator

public void testUploaderOfNewAttachmentVersionIsAcknowledgedAsCreator()

testRemoveCommentOnAttachment

public void testRemoveCommentOnAttachment()

testMovingAttachmentToPageWithoutViewPermissions

public void testMovingAttachmentToPageWithoutViewPermissions()

testMoveAttachmentToUnpermittedPage

public void testMoveAttachmentToUnpermittedPage()

testSortingByCreatedDate

public void testSortingByCreatedDate()
                              throws UnsupportedEncodingException
Throws:
UnsupportedEncodingException

testAttachmentAuthorshipPreservedOnAttachmentMoveAndComment

public void testAttachmentAuthorshipPreservedOnAttachmentMoveAndComment()
                                                                 throws Exception
Throws:
Exception


Copyright © 2003-2011 Atlassian. All Rights Reserved.