Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
X
xwiki-platform
Manage
Activity
Members
Code
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Deploy
Releases
Package registry
Model registry
Operate
Terraform modules
Analyze
Contributor analytics
Repository analytics
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
XWiki
xwiki-platform
Commits
ae7797b6
Commit
ae7797b6
authored
2 years ago
by
Manuel Leduc
Browse files
Options
Downloads
Patches
Plain Diff
[misc] Move finally block to AfterEach
Improves the screenshot in case of error.
parent
ef88080e
No related branches found
Branches containing commit
No related tags found
Tags containing commit
No related merge requests found
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
xwiki-platform-core/xwiki-platform-xclass/xwiki-platform-xclass-test/xwiki-platform-xclass-test-docker/src/test/it/org/xwiki/xclass/test/ui/ClassSheetIT.java
+99
-96
99 additions, 96 deletions
...er/src/test/it/org/xwiki/xclass/test/ui/ClassSheetIT.java
with
99 additions
and
96 deletions
xwiki-platform-core/xwiki-platform-xclass/xwiki-platform-xclass-test/xwiki-platform-xclass-test-docker/src/test/it/org/xwiki/xclass/test/ui/ClassSheetIT.java
+
99
−
96
View file @
ae7797b6
...
...
@@ -20,6 +20,7 @@
package
org.xwiki.xclass.test.ui
;
import
org.apache.commons.io.IOUtils
;
import
org.junit.jupiter.api.AfterEach
;
import
org.junit.jupiter.api.BeforeAll
;
import
org.junit.jupiter.api.Order
;
import
org.junit.jupiter.api.Test
;
...
...
@@ -50,6 +51,13 @@ class ClassSheetIT
void
setup
(
TestUtils
setup
)
{
setup
.
loginAsSuperAdmin
();
setup
.
setHierarchyMode
(
"parentchild"
);
}
@AfterEach
void
tearDown
(
TestUtils
setup
)
{
setup
.
setHierarchyMode
(
"reference"
);
}
/**
...
...
@@ -60,101 +68,96 @@ void setup(TestUtils setup)
void
createClass
(
TestUtils
setup
,
TestReference
reference
)
throws
Exception
{
//TODO: rewrite the test to not rely on the breadcrumb based on parent/child mechanism.
setup
.
setHierarchyMode
(
"parentchild"
);
try
{
String
spaceName
=
reference
.
getLastSpaceReference
().
getName
();
String
className
=
reference
.
getClass
().
getSimpleName
();
String
classDocName
=
className
+
"Class"
;
String
classTitle
=
className
+
" Class"
;
String
pageName
=
"createClass"
;
// Make sure the document doesn't exist.
setup
.
deletePage
(
spaceName
,
pageName
);
// Ensure that class listing also works as guest user.
setup
.
forceGuestUser
();
DataTypesPage
dataTypesPage
=
DataTypesPage
.
gotoPage
();
String
dataTypesPageTitle
=
dataTypesPage
.
getDocumentTitle
();
assertTrue
(
dataTypesPage
.
isClassListed
(
"XWiki"
,
"XWikiRights"
));
assertFalse
(
dataTypesPage
.
isClassListed
(
spaceName
,
classDocName
));
setup
.
loginAsSuperAdmin
();
dataTypesPage
=
DataTypesPage
.
gotoPage
();
// Create the class document.
ClassSheetPage
classSheetPage
=
dataTypesPage
.
createClass
(
spaceName
,
className
);
assertEquals
(
classTitle
,
classSheetPage
.
getDocumentTitle
());
assertTrue
(
classSheetPage
.
hasBreadcrumbContent
(
dataTypesPageTitle
,
false
));
// Add a property.
ClassEditPage
classEditor
=
classSheetPage
.
clickDefineClassLink
();
classEditor
.
addProperty
(
"color"
,
"String"
).
setPrettyName
(
"Your favorite color"
);
classEditor
.
clickSaveAndView
();
// Add a new property.
classEditor
=
classSheetPage
.
clickEditClassLink
();
classEditor
.
addProperty
(
"age"
,
"Number"
).
setPrettyName
(
"Your current age"
);
// Add a computed property.
String
titleDisplayer
=
IOUtils
.
toString
(
this
.
getClass
().
getResourceAsStream
(
"/contentDisplayer.wiki"
),
"UTF-8"
);
classEditor
.
addProperty
(
"description"
,
"ComputedField"
).
setPrettyName
(
"Description"
)
.
setMetaProperty
(
"customDisplay"
,
titleDisplayer
);
classEditor
.
clickSaveAndView
();
// Assert that the properties are listed.
assertTrue
(
classSheetPage
.
hasProperty
(
"color"
,
"Your favorite color"
,
"String"
));
assertTrue
(
classSheetPage
.
hasProperty
(
"age"
,
"Your current age"
,
"Number"
));
assertTrue
(
classSheetPage
.
hasProperty
(
"description"
,
"Description"
,
"Computed Field"
));
// Create and bind a sheet.
classSheetPage
=
classSheetPage
.
clickCreateSheetButton
().
clickBindSheetLink
();
ViewPage
sheetPage
=
classSheetPage
.
clickSheetLink
();
assertEquals
(
className
+
" Sheet"
,
sheetPage
.
getDocumentTitle
());
sheetPage
.
clickBreadcrumbLink
(
classTitle
);
// Create the template.
classSheetPage
=
classSheetPage
.
clickCreateTemplateButton
().
clickAddObjectToTemplateLink
();
ViewPage
templatePage
=
classSheetPage
.
clickTemplateLink
();
assertEquals
(
className
+
" Template"
,
templatePage
.
getDocumentTitle
());
// The default edit button should take us to the In-line edit mode.
templatePage
.
edit
();
InlinePage
editPage
=
new
InlinePage
();
editPage
.
setValue
(
"color"
,
"red"
);
editPage
.
setValue
(
"age"
,
"13"
);
editPage
.
clickSaveAndContinue
();
editPage
.
clickBreadcrumbLink
(
classTitle
);
// Create a document based on the class template.
assertEquals
(
spaceName
,
classSheetPage
.
getNewPagePicker
().
getParentInput
().
getAttribute
(
"value"
));
editPage
=
classSheetPage
.
createNewDocument
(
spaceName
,
pageName
);
assertEquals
(
pageName
,
editPage
.
getDocumentTitle
());
assertEquals
(
"red"
,
editPage
.
getValue
(
"color"
));
assertEquals
(
"13"
,
editPage
.
getValue
(
"age"
));
editPage
.
setValue
(
"color"
,
"blue"
);
editPage
.
setValue
(
"age"
,
"27"
);
ViewPage
viewPage
=
editPage
.
clickSaveAndView
();
// Verify that the properties can be edited in-place.
EditablePropertyPane
<
String
>
colorProperty
=
new
EditablePropertyPane
<>(
String
.
format
(
"%s.%s[0].color"
,
spaceName
,
classDocName
));
assertEquals
(
"blue"
,
colorProperty
.
clickEdit
().
getValue
());
colorProperty
.
setValue
(
"pink"
).
clickSave
();
assertEquals
(
"pink"
,
colorProperty
.
getDisplayValue
());
EditablePropertyPane
<
String
>
descriptionProperty
=
new
EditablePropertyPane
<>(
String
.
format
(
"%s.%s[0].description"
,
spaceName
,
classDocName
));
assertEquals
(
""
,
descriptionProperty
.
clickEdit
().
getValue
());
descriptionProperty
.
setValue
(
"Tester"
).
clickSave
();
assertEquals
(
"Tester"
,
descriptionProperty
.
getDisplayValue
());
assertEquals
(
pageName
,
viewPage
.
getDocumentTitle
());
assertEquals
(
"YOUR FAVORITE COLOR\npink\nYOUR CURRENT AGE\n27\nDESCRIPTION\nTester"
,
viewPage
.
getContent
());
viewPage
.
clickBreadcrumbLink
(
classTitle
);
// Assert the created document is listed.
assertTrue
(
classSheetPage
.
hasDocument
(
pageName
));
}
finally
{
setup
.
setHierarchyMode
(
"reference"
);
}
String
spaceName
=
reference
.
getLastSpaceReference
().
getName
();
String
className
=
reference
.
getClass
().
getSimpleName
();
String
classDocName
=
className
+
"Class"
;
String
classTitle
=
className
+
" Class"
;
String
pageName
=
"createClass"
;
// Make sure the document doesn't exist.
setup
.
deletePage
(
spaceName
,
pageName
);
// Ensure that class listing also works as guest user.
setup
.
forceGuestUser
();
DataTypesPage
dataTypesPage
=
DataTypesPage
.
gotoPage
();
String
dataTypesPageTitle
=
dataTypesPage
.
getDocumentTitle
();
assertTrue
(
dataTypesPage
.
isClassListed
(
"XWiki"
,
"XWikiRights"
));
assertFalse
(
dataTypesPage
.
isClassListed
(
spaceName
,
classDocName
));
setup
.
loginAsSuperAdmin
();
dataTypesPage
=
DataTypesPage
.
gotoPage
();
// Create the class document.
ClassSheetPage
classSheetPage
=
dataTypesPage
.
createClass
(
spaceName
,
className
);
assertEquals
(
classTitle
,
classSheetPage
.
getDocumentTitle
());
assertTrue
(
classSheetPage
.
hasBreadcrumbContent
(
dataTypesPageTitle
,
false
));
// Add a property.
ClassEditPage
classEditor
=
classSheetPage
.
clickDefineClassLink
();
classEditor
.
addProperty
(
"color"
,
"String"
).
setPrettyName
(
"Your favorite color"
);
classEditor
.
clickSaveAndView
();
// Add a new property.
classEditor
=
classSheetPage
.
clickEditClassLink
();
classEditor
.
addProperty
(
"age"
,
"Number"
).
setPrettyName
(
"Your current age"
);
// Add a computed property.
String
titleDisplayer
=
IOUtils
.
toString
(
this
.
getClass
().
getResourceAsStream
(
"/contentDisplayer.wiki"
),
"UTF-8"
);
classEditor
.
addProperty
(
"description"
,
"ComputedField"
).
setPrettyName
(
"Description"
)
.
setMetaProperty
(
"customDisplay"
,
titleDisplayer
);
classEditor
.
clickSaveAndView
();
// Assert that the properties are listed.
assertTrue
(
classSheetPage
.
hasProperty
(
"color"
,
"Your favorite color"
,
"String"
));
assertTrue
(
classSheetPage
.
hasProperty
(
"age"
,
"Your current age"
,
"Number"
));
assertTrue
(
classSheetPage
.
hasProperty
(
"description"
,
"Description"
,
"Computed Field"
));
// Create and bind a sheet.
classSheetPage
=
classSheetPage
.
clickCreateSheetButton
().
clickBindSheetLink
();
ViewPage
sheetPage
=
classSheetPage
.
clickSheetLink
();
assertEquals
(
className
+
" Sheet"
,
sheetPage
.
getDocumentTitle
());
sheetPage
.
clickBreadcrumbLink
(
classTitle
);
// Create the template.
classSheetPage
=
classSheetPage
.
clickCreateTemplateButton
().
clickAddObjectToTemplateLink
();
ViewPage
templatePage
=
classSheetPage
.
clickTemplateLink
();
assertEquals
(
className
+
" Template"
,
templatePage
.
getDocumentTitle
());
// The default edit button should take us to the In-line edit mode.
templatePage
.
edit
();
InlinePage
editPage
=
new
InlinePage
();
editPage
.
setValue
(
"color"
,
"red"
);
editPage
.
setValue
(
"age"
,
"13"
);
editPage
.
clickSaveAndContinue
();
editPage
.
clickBreadcrumbLink
(
classTitle
);
// Create a document based on the class template.
assertEquals
(
spaceName
,
classSheetPage
.
getNewPagePicker
().
getParentInput
().
getAttribute
(
"value"
));
editPage
=
classSheetPage
.
createNewDocument
(
spaceName
,
pageName
);
assertEquals
(
pageName
,
editPage
.
getDocumentTitle
());
assertEquals
(
"red"
,
editPage
.
getValue
(
"color"
));
assertEquals
(
"13"
,
editPage
.
getValue
(
"age"
));
editPage
.
setValue
(
"color"
,
"blue"
);
editPage
.
setValue
(
"age"
,
"27"
);
ViewPage
viewPage
=
editPage
.
clickSaveAndView
();
// Verify that the properties can be edited in-place.
EditablePropertyPane
<
String
>
colorProperty
=
new
EditablePropertyPane
<>(
String
.
format
(
"%s.%s[0].color"
,
spaceName
,
classDocName
));
assertEquals
(
"blue"
,
colorProperty
.
clickEdit
().
getValue
());
colorProperty
.
setValue
(
"pink"
).
clickSave
();
assertEquals
(
"pink"
,
colorProperty
.
getDisplayValue
());
EditablePropertyPane
<
String
>
descriptionProperty
=
new
EditablePropertyPane
<>(
String
.
format
(
"%s.%s[0].description"
,
spaceName
,
classDocName
));
assertEquals
(
""
,
descriptionProperty
.
clickEdit
().
getValue
());
descriptionProperty
.
setValue
(
"Tester"
).
clickSave
();
assertEquals
(
"Tester"
,
descriptionProperty
.
getDisplayValue
());
assertEquals
(
pageName
,
viewPage
.
getDocumentTitle
());
assertEquals
(
"YOUR FAVORITE COLOR\npink\nYOUR CURRENT AGE\n27\nDESCRIPTION\nTester"
,
viewPage
.
getContent
());
viewPage
.
clickBreadcrumbLink
(
classTitle
);
// Assert the created document is listed.
assertTrue
(
classSheetPage
.
hasDocument
(
pageName
));
}
}
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment