Elias Torres wrote:
We also have a JSON servlet:
/roller-services/json/tags/ <- All tags at the site level
/roller-services/json/tags/[tagPrefix] <- tags at the site level with prefix
/roller-services/json/tags/[weblogHandle] <- all tags at the weblogHandle
/roller-services/json/tags/[weblogHandle]/[tagPrefix] <- tags with the
prefix
hmmm. i don't remember reviewing that url structure at all, but maybe
that is my fault. in any case, i see a problem because there is
obviously a possible collision between weblog handles and tag prefixes.
what if there is a weblog handle of "rm" but the desired result was all
tags starting with "rm"? we may need to rethink that url structure such
that there is a forced context element which is the first part of the
url. i.e.
/json/tags/all/[prefix]
/json/tags/weblog/<handle>/[prefix]
-- Allen
Finally, we need to test you can't page entries by both categories and tags.
I think the ones above plus my comments inline should do it for now.
-Elias
Dave wrote:
Elias and Rob,
Here's a first-cut of a test plan for tagging. Elias: can you think of
anything else that should be added and/or expanded and do you have
responses to any of the notes? Rob: is this the right level of detail
for a test plan?
----------------
* Test adding tags in Weblog Edit page
- Create new weblog entry Entry1 and add tags foo and bar
- Result: tags foo and bar are stored for entry
- Create new weblog entry Entry2 and add tags foo and bar
- Result: after you type first two letters of tag foo, Roller
should suggest it
- Result: tags foo and bar are stored for entry
- Create new weblog entry Entry3 and add tags foo and baz
----------------
* Test tag query Entries page
- Enter tag foo in the tags field in the Filter Entries form, click Filter
- Result: you should see only entries tagged goo
The result should be "foo" not "goo".
NOTES:
- there's no way to query by multiple tags?
I can fix the filter form to support spaces to query multiple tags.
Simple enough.
- if we had more entries tagged we could test paging through filtered
entries
Right. We definitely need to test paging.
----------------
* Test Tag Cloud macro
- Customize your theme and add the #showTagCloud() macro to your Weblog
page
#set($tags = $model.weblog.getPopularTags(-1, 100)
#showTagCloud($tags)
- Result: all tags show up in the cloud
- Result: hover over tags shows correct number of times tag is used
- Result: look at generated HTML and verify CSS styles
(less used tags should have smaller numbers "tags s1" in the style
and more used tags should have higher numbers up to "tags s5")
- Change the getPopularTags() arguments to -1,2
- Result only 2 tags should be shown in tag cloud
NOTES:
- the first argument of getPopularTags() is the "since days" argument
and it allows you to restrict the query to include only tags added in
last # of days. Using -1 means "all time." If we had tag data spread
over time then we could test that sinceDays is working
----------------
* Test Entry Tags macro
- Add the #showEntryTags($entry) to your blog's _day template, inside
the entry loop
- Result: the tags associated with each entry should be displayed
with the entry
- Result: hover over tags should show correct tag usage count
- Result: tags should link to tag-specific views of your blog
We need to test for proper escaping of URLs (e.g. C# needs to be escape
to /tags/C%23)
----------------
* Test tag based page URLs
- Use the URL /<your-blog-name>/tags/foo
- Result: page displayed should include only entries tagged foo
NOTE: how do you do tag intersections?
/<your-blog-name>/tags/foo+camp
----------------
* Test tag based feed URLs
- Use the URL /<your-blog-name>/feed/entries/atom?tags=foo (Atom 1.0
feed)
- And the URL /<your-blog-name>/feed/entries/rss?tags=foo (RSS 2.0 feed)
- Result: feeds displayed should include only entries tagged foo
- Result: verify that tagged entries have tags specified in
<category> elements
NOTE: how do you do tag intersections?
Use the URL /<your-blog-name>/feed/entries/atom?tags=foo+camp
or
/<your-blog-name>/feed/entries/atom?tags=foo+C%23
----------------
* Test removing tags
- Edit an an entry and remove tag foo
- Result: tag should be remove from entry
- Result: verify that count for foo in tag cloud is adjusted downward
by one
- Result: verify that entry no longer appears on page
/<your-blog-name>/tags/foo
- Result: verify that entry no longer appears in
feed /<your-blog-name>/feed/entries/atom?tags=foo
I'd love to see the Sun and IBM QA guys working together here on the
list to put together a shared repo of test plans for Roller. If you
have ideas about how to make that happen, I'd like to hear them.
Absolutely, we are getting ready to work on our test plans and I can
definitely see us sharing a test folder with this information on SVN.
-Elias