...
This
...
article
...
illustrates
...
how
...
to
...
create
...
a
...
simple
...
page
...
in
...
sipXconfig,
...
for
...
both
...
user
...
and
...
admin
...
portal.
...
Notes
Throughout this article I will consider the '/main/sipXconfig'
...
the
...
root
...
directory.
...
Intro
We use test-driven
...
development
...
(TDD)
...
in
...
order
...
to
...
create
...
/
...
modify
...
a
...
page
...
or
...
fix
...
a
...
issue.
...
TDD
...
is
...
an
...
iterative
...
software
...
development
...
process
...
where
...
you
...
first
...
write
...
the
...
test
...
with
...
the
...
idea
...
that
...
it
...
must
...
fail.
...
See
...
http://en.wikipedia.org/wiki/Test-driven_development
...
for
...
more
...
information.
...
For
...
that
...
we
...
use
...
JUnit,
...
JWebUnit,
...
HtmlUnit,
...
DbUnit,
...
etc.
...
Use
...
'ant'
...
tool
...
to
...
run
...
these
...
tests
...
(from
...
'sipXconfig'
...
directory):
...
ant
...
test-all
...
-Dtest.name=MyTest
...
I
...
Admin
...
portal
1.
...
Add
...
a
...
new
...
menu
...
(MyMenu)
...
and
...
a
...
new
...
entry
...
(MyPage)
...
to
...
the
...
new page Add a simple page
a. Add a test for the new menu and the new page
Under '/sipXconfig/web/test'
...
directory,
...
create
...
a
...
new
...
package
...
org.sipfoundry.sipxconfig.site.admin.mypackage
...
and
...
a
...
new
...
test
...
class
...
in
...
this
...
package
...
(MyPageTestUi.java):
Code Block | ||||
---|---|---|---|---|
| ||||
package org.sipfoundry.sipxconfig.site.admin.mypackage; public class MyPageTestUi extends WebTestCase { public static Test suite() throws Exception { return SiteTestHelper.webTestSuite(MyPageTestUi.class); } @Override protected void setUp() throws Exception { getTestContext().setBaseUrl(SiteTestHelper.getBaseUrl()); SiteTestHelper.home(getTester()); clickLink("toggleNavigation"); clickLink("menu.myPage"); } public void testDisplay() { SiteTestHelper.assertNoException(tester); SiteTestHelper.assertNoUserError(tester); } } |
Run
...
this
...
test:
...
ant
...
test-all
...
-Dtest.name=MyPage
...
This
...
test
...
will
...
fail
...
with
...
the
...
following
...
errors:
...
[junit
...
]
...
Test
...
org.sipfoundry.sipxconfig.site.admin.mypackage.MyPageTestUi
...
FAILED
...
............
...
[concat
...
]
...
testcase:
...
MyPageTestUi
...
[concat
...
]
...
junit.framework.AssertionFailedErrorjunit.framework.AssertionFailedError:
...
Unable
...
to
...
find
...
link
...
with
...
id
...
[menu.myPage
...
]
...
b.
...
Create
...
the
...
menu
...
entry
...
and
...
the
...
page
...
In
...
sipXconfig/web/context/WEB-INF/common/AdminNavigation.html
...
file,
...
add
...
the
...
next
...
piece
...
of
...
code:
...
Code Block | ||||
---|---|---|---|---|
| ||||
<li> <div class="roundedMainSectionBoxTopLeft"></div><div class="roundedMainSectionBoxTopRight"></div> <div class="roundedMainSectionBoxInside"> <a class="heading"><span key="menu.section.myMenu">My Menu</span></a> <ul> <ul> <li><a jwcid="@PageLink" id="menu.myPage" page="admin/mypackage/MyPage"><span key="menu.myPage">My Page</span></a></li> </ul> </div> </li> |
and
...
in
...
sipXconfig/web/context/WEB-INF/common/AdminNavigation.properties,
...
add
...
the
...
following
...
two
...
lines:
Code Block | ||||
---|---|---|---|---|
| ||||
menu.section.myMenu=My Menu menu.myPage=My Page |
Now
...
you
...
can
...
see
...
these
...
changes
...
in
...
the
...
picture
...
below:
Under 'sipXconfig/web/context/WEB-INF/admin/',
...
create
...
'mypackage'
...
directory
...
and
...
three
...
files
...
in
...
this
...
directory,
...
as
...
follows:
...
MyPage.page
Code Block | ||||
---|---|---|---|---|
| ||||
<?xml version="1.0" encoding="UTF-8"?> <\!DOCTYPE page-specification PUBLIC "-//Apache Software Foundation//Tapestry Specification 4.0//EN" "http://jakarta.apache.org/tapestry/dtd/Tapestry_4_0.dtd"> <page-specification> specification class="org.sipfoundry.sipxconfig.site.admin.mypackage.MyPage"> <description>My page</description> </page-specification> |
MyPage.html
Code Block | ||||
---|---|---|---|---|
| ||||
<div jwcid="@common/Border" useDojo="true" borderTitle="ognl:borderTitle"> <span jwcid="@common/QuickHelp" value="message:quick.help" /> <form jwcid="myPageForm@Form" id="myPageForm"> </form> </div> |
MyPage.properties
Code Block | ||||
---|---|---|---|---|
| ||||
title=My title page quick.help=TBD<br/>\ Insert quick help here |
Create
...
also
...
/sipXconfig/web/src/org/sipfoundry/sipxconfig/site/user_portal/MyUserPage.java
...
class
Code Block | ||||
---|---|---|---|---|
| ||||
package org.sipfoundry.sipxconfig.site.user_portal; public abstract class MyUserPage extends UserBasePage { @Override public void pageBeginRender(PageEvent event) { super.pageBeginRender(event); } } |
Now
...
MyPageTestUi
...
test
...
will
...
pass
...
and
...
changes
...
can
...
be
...
seen
...
below: