Skip to content

Instantly share code, notes, and snippets.

@radekstepan
Created June 25, 2013 10:05
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save radekstepan/5857372 to your computer and use it in GitHub Desktop.
Save radekstepan/5857372 to your computer and use it in GitHub Desktop.
[[PageOutline]]
The following items should be tested before each release. Be sure to vary the following:
* super | regular user
* logged in | out
* Firefox, IE 7/9, Chrome, Safari
* new | old user
= ACCOUNT =
* Create a user account
* Saved information correctly across sessions/releases
* check newsletter (subscribed successfully? not-subscribe successfully)
* Log in via openID - confirm that you have a new account. Do something (run a query, make a list...). Log out.
Confirm that when you log back in via openID again with the same provider that your lists / queries were saved. Confirm that
this is only for your individual user, and not all users from that openID provider.
* Edit webapp.baseurl property in xxx.properties to end in a local port number (eg: :8080). Confirm that
the openID logic option is no longer available.
= TEMPLATES PAGE =
* type text in filter box - check highlighting and ranking
* genes should find 'gene'
* transcript should find 'transcripts'
* chromosome should find 'chromosomal'
* ortholog should find 'orthologue'
* filter by aspect and type text
* check reset button works
* check button works when no results
* back button - search results saved
* Log in:
* check MY button works, type text afterwards
* check * button works, type text afterwards
* favourites (this doesn't work correctly on home page)
* select some templates and click export
* go to the "GO term name [and children of this term] => Genes in one specific organism." template and for "GO Term > Name" start typing "toll-like" making sure you use the hyphen character. Does it break auto-complete?
= LISTS PAGE =
* type text in filter box - check highlighting and ranking
* check reset button works
* check button works when no results
* Log in:
* check MY button works, type text afterwards
* check * button works, type text afterwards
* favourites (this doesn't work correctly on home page)
* test bag operations work, including:
* list operations should be allowed if the list types are the same or if one is a subtype of the other
* If the two lists have the same type, the result has that type. Otherwise, if the operation is intersection,
the result type is the more specific type. For union and symmetric difference, it is the more general type. For
asymmetric diff, the result type is the type of the left hand list.
* rename with trailing space (#2276)
* copy/rename
* COPY bug
* make a copy of a public list.
* after webapp is re-released, check that you are still owner of that list.
* delete lists - should be able to delete list used in queries, will delete queries too
* list used in query in query history
* list used in query in saved queries
* check lists are ordered appropriately after being tagged im:order:n in mymine
= QUERY =
* Build a new query
* add/remove AND/OR constraints
* verify results
* Run/edit/export new query
* export XML includes sort order
* Run/edit/export previously saved query
* export XML includes sort order
* Run/edit/export query from any template
* Import query(s)
* Bad XML
* Bad name
* Duplicate names
* One query
* Many queries
* Empty form
* Import a query from a .txt file
* Import a query from a file with extension different from .txt
* Delete query(s)
* have multiple tabs open
* Constrain on an author whose name contains the character "á" (Milán M is a good one). Verify that this is interpreted correctly.
= QUERY BUILDER CONSTRAINT =
* LOOKUP constraints
* constraining the top class or a ref/collection should allow you to use bags or a LOOKUP constraint.
* constrain classes by their keys (id, name, etc).
* for instance, constrain organism by Drosophila melanogaster and 7227
* constrain using wildcard and non-bioentity (See #2746), eg. ontology term.name = transcript*
* add a constraint, but press enter rather than clicking "add to query" - check on IE especially
* If the field is an attribute and its type is not a primitive, the filter "Has non value"-"Has a value" should be displayed
* If the field is a reference or collection, the filter "Has non value"-"Has a value" should be displayed
* If the field is an attribute with Boolean or boolean type,the filter true or false should be displayed (if Boolean, the option Has no value is displayed too), e.g. FlyMine: Gene > mRNA Expression Result > Expressed
* If the field is an int and you insert a String an error message should be displayed
* If the field is a String ~~doesn't~~ it should have the operators: >, >=, <, <=
* Attribute with possible values (see ~~Chromosome.primaryIdentifier~~ Organism > Short Name)
* the operator displayed is the first possible operator for the attribute (in our example is "=")
* the dropdow list containing the operators available, should be contain the operators: =, !=, CONTAINS, <, <=, >, >=, LIKE, NOT LIKE, NONE OF, ONE OF
* a dropdown list with all the possible values should be dispayed
* if you change the operator to LIKE (NOT LIKE) an input field should be displayed instead of the dropdown list. If you "Add to query" with no values, an error message should be displayed
* if you change the operator to NONE OF (ONE OF) a multiselect drop down should be displayed: If you "Add to query" with no selection, an error message should be displayed
* if you change the operator to = (!+, <, <=, >, >=) the drop down list should be displayed again.
* SUBCLASSES constraints:
* if you select Gene.ontologyAnnotations.ontologyTerm the subclass filter should be displayed
* If you subclass a path, and select an attribute of the subclass in the view, that the view should be displayed in the viewline '''without''' dots.
* If you get results, then choose to add a column, none of the provided options should have dots.
* If you choose to export the results:
- The view should be displayed identically to the querybuilder page
- the paths available add to the query should not have any dots in their displayed forms.
* LOOP constrains:
* ~~if you select GoAnnotation.ontologyTerm.ontologyAnnotation the loop constraint should be displayed~~
* example (see the gene -> adjacent gene template)
{{{
<query name="" model="genomic" view="Gene.secondaryIdentifier Gene.symbol Gene.downstreamIntergenicRegion.adjacentGenes.primaryIdentifier Gene.downstreamIntergenicRegion.adjacentGenes.symbol Gene.upstreamIntergenicRegion.adjacentGenes.primaryIdentifier Gene.upstreamIntergenicRegion.adjacentGenes.symbol" longDescription="For a particular gene, find the upstream and the downstream adjacent genes. " sortOrder="Gene.secondaryIdentifier asc" constraintLogic="A and B and C">
<pathDescription pathString="Gene.downstreamIntergenicRegion.adjacentGenes" description="Downstream Gene"/>
<pathDescription pathString="Gene.upstreamIntergenicRegion.adjacentGenes" description="Upstream Gene"/>
<constraint path="Gene.upstreamIntergenicRegion.adjacentGenes" code="C" op="!=" loopPath="Gene"/>
<constraint path="Gene.downstreamIntergenicRegion.adjacentGenes" code="B" op="!=" loopPath="Gene"/>
<constraint path="Gene" code="A" op="LOOKUP" value="CG10007" extraValue=""/>
</query>
}}}
= QUERY BUILDER =
* classchooser help text is viewable (esp. in IE)
* classchooser > gene/protein. all classes are clickable (not greyed-out).
* select list (blue boxes) work correctly
* change display order - move left and right
* verify display order on results page.
* click class name on query overview: does the model browser update and highlight the collection/reference?
* sorting
* verify sort works on querybuilder page
* sort order should be: [field selected] [rest of selected fields in column order]
* works on both queries and templates
* queries - home page > ~~"list all classes" > [pick any class]~~ "Query Builder" > "Start a query from: Gene"
* template - home page > ~~"genomics" >~~ Templates > [any template] > Edit ~~Template~~ Query button
* sort ascending
* sort descending
* go two nodes "deep" and select "Show" on an attribute, after reload collapse the top most node -> it used to delete all following nodes
* change order of columns
* remove all columns
* change the sort order a lot
* leave the sort order as the default value
* go to results page, clickety click, Click on "Query" link in object trail - does it remember the sort field and the sort direction?
* peekaboo!
* export options work as expected
* save query works correctly
* bad query name
* duplicate query name
* bad query (ie before you add fields to the view list)
* constraints
* removing constraint removes item from select and sort order (#1539)
~~1. Navigate to QueryBuilder > Protein~~
~~2. Constrain to be OntologyTerm - Protein > annotations > property~~
~~3. Add to view - OntologyTerm > identifier~~
~~4. Click on protein in the trail~~
~~5. Click on Protein > keywords > Summary~~
~~6. Remove annotations constraint~~
~~7. Protein > annotations > property > identifier should disappear from select and sort~~
* outer joins
* switching between inner, outer joins
* ? more test cases
* in the webconfig-model.xml, set in fieldconfig section the attribute outerInSummary="true", add the field in the view and verify that an outer join has been created
* hidden attributes
* toggle the hidden cols, refs and attributes
= RESULTS =
* Summary
* "Unique values" number is lower than the "total rows" number - (Note that this may not be the case if the column being summarised is an outer join)
* verify columns are being summarised correctly
* numbers are accurate
* works for queries, templates, and bag results
* Filter results. Reset.
* Filter numerical values in a column summary: test slider and changing numbers in the boxes.
* Summary graph looks sensible
* row count
* confirm that actual count is correct by clicking on 'Last' link.
* run for large, small queries.
* export results
* add/remove columns
* gzip or not
* reorder columns. export output columns match the order you specified.
* include column headers in output. run again without headers.
* csv, tab
* delimiter is correct - comma/tab
* correct number of rows
* Galaxy
* open a new page to Galaxy main site, the current task in at the top of the right column
* correct number of rows in the Galaxy task according to the number in the results table
* gff3, fasta, bed
* correct number of rows
* for gff3, check features parents (children and parents need to be in the pathquery view at the same time, e.g. exon and gene, if only exon, gene won't be included as parents)
* selected columns turn pink (hope not, should turn into "Milk Punch" color)
* only class keys are links (#1513)
* page size is sticky
* When getting to the results page from '''bag details''' (show in results table, convert, orthologues), '''object details''' page (show in table), '''query''', '''portal''':
* checkboxes are present and relevant
* select records
* 'select all' checkbox
* 'select all' checkbox and then deselect a few records
* select individual records
* select individual records on different pages
* can create new bag and add to current bag
* try with different results
* column contains identical values
* small/large datasets
* two different columns of the same type
* different types (synonyms, !BlastMatch)
* columns are disabled correctly
* paging works (including last page / first page)
* links to obj details page work
* trail is correct and working
* Manage Columns
* Add/remove some columns
* Change sort order of columns.
* Change sort order from column headers as well - check is reflected under 'Manage columns'.
* Manage filters
* Apply a new filter - check table re-drawn correctly
- check icon on header has changed colour
* Remove filter - check table re-drawn correctly.
* Check 'Undo' button working correctly.
* Get xml code:
* Check workds for all languages.
* Create/Add to list:
* Check the number of objects to add to list from the drop-down corresponds to the number of objects from the column summary.
* Check columns change colour on mouse-over.
* Check link created working correctly
* Add a tag - check associated with list.
* Add something to an existing list - check only allows to add to lists of same type. Check items added correctly.
= LIST (upload and mymine) =
* Create a bag from query results
* Bag has bad name (bad = {{{/[^A-Za-z0-9_-]/}}})
* contains non-letter, number, underscore, hyphen
* dots are okay
* trailing space (#2276)
* Bag has duplicate name
* on error your form should not reset
* Create a bag from bag upload form
* Copy and paste identifiers into form and Upload identifiers from a file
* Various types (Gene, Protein, !BioEntity)
* cg2328:1, cg2328-RA, cg1234
* Protein.primaryAccession (#2521)
* Various delimiters
* a space is now a valid delimiter, these should work:
* zen "even skipped"
* zen, "even skipped"
* Bad name
* trailing space (#2276)
* Duplicate bag names
* Upload a couple of lists in a row.
* Empty file
* Issues
* Should find unresolved, duplicate and low quality matches - and convert objects.
* ~~If there is nothing to upload, form should be disabled. Add to bag, and form should be reenabled.~~ (new jquery)
* Use 'Add all' and 'Remove all' links.
* Upload bag with no issues, upload bag with just one issue, etc etc.
* Objects with the same name but different case should show as duplicates: 'h', 'r' (will be treated as equal?)
* form should not reset on error
* make sure that the count of items on the "green button" corresponds with the count on list analysis
* make sure that synonyms in other matches of resolved identifiers are highlighted as "already" in the list
* make sure that when two synonyms are in a bag of other matches, both of them are highlighted when one or the other are added to the list
* Use bag in query
* Rename bag
* No name
* Bad name
* Duplicate name
* Union, Intersect, Subtract, Delete, Copy bag(s).
* Verify resulting bags
* on error your form should not reset
* no bag name
* no lists selected
* Copy of list should have current date, not the date of original list. (or adding ''_NUM'' at rear?)
* bag upload confirm - choose a big list from a file to upload and do not constraint on organism, on the "add additional matches" page, if we click on add all, do we see a progressing addition of items and does our browser not crash? Yes?
* Create list called "TestListX", and another "TestList_". Tag "TestList_" with some tag.
Filter lists by tags. See that "TestListX" does not appear in the filtered list. (need to be superuser)
* Create a list on Flymine by uploading one item 'h':
* On Bag upload confirm page, can we proceed forward to create a list of 0 items? (should not happen)
= LIST ANALYSIS =
* links at top work correctly
* ~~use list in a query > run query ~~
* can edit description only if not a public bag
* Templates
* template queries appear
* inline template tables have results for correct bag
* counts are there and correct
* access private bag while not logged in
* html title should read "FlyMine: List Analysis: <BAG_NAME>"
* check that the Convert gives an accurate number of results and that the conversion works properly.
* Orthologue converter converts to the right organism
* Check Column summary
* Check paging
* export results (#1633)
* ~~hide~~ add/remove columns when exporting as tsv/csv
* csv
* delimiter is comma not tab
* export fields that contain comma
* tab
* correct number of rows
* ~~excel~~
* ~~under 10000~~
* ~~over 10000 rows should give a sensible error msg~~
* Galaxy
* correct number of rows
* gff3, fasta, bed
* correct number of rows
* External links to other websites work correctly. For Drosophila melanogaster lists there should be links to FlyBase and FlyExpress. [[BR]]
Check that link doesn't contain identifiers of objects in list because POST method is used - identifiers are sent separately.
* test links to other intermines work correctly
* large lists (note, this is currently broken!)
* once you arrive at the new mine, you are viewing orthologues and not the original species
* if you go from flymine to yeastmine, you should end up at yeastmine with a list of yeast genes - not dmel
* link opens in new window
* if "no results" found for list, make sure this is accurate
= Widgets =
* test the validation:
* set a wrong attribute in the web-config file
* omit a required attribute
* set 2 widgets with the same id
* test the widgets appear and display sensible results
* check the list of widgets (right below the WIDGETS header) to make sure all widgets are being displayed
* verify loading fast
* multiple organisms
* ''Number of OBJECTS not analysed in this widget: N'' is correct or seems reasonable
* link produces correct results (enrichment widgets only)
* Graph Widgets
* Chromosome Displayer
* one graph per organism (Anopheles, Dmel, Dpse, Apis)
* all chromosomes should appear all the time, even if they've got zero genes, except:
* ~~melongaster should have the following chromosomes: 2L, 2R, 3L, 3R, 4, U, and X~~
* 'actual' totals are correct
* 'expected' totals are correct (or seem reasonable)
* clicking on the 'actual' bars takes you to a results page containing the correct genes
* Flymine C. Elegans case:
* Create a list with 4 worm genes
* Visit list analysis and see if the Chromosome Distribution Widget has "No results" and no exceptions/errors show up in Console.
* Other graphs (!FlyAtlas, fly-FISH, BDGP)
* all bars have numbers
* clicking on the bars takes you to a results page containing the correct genes
* Table Widgets
* Pathway Enrichment
* appears with correct data
* KEGG/Reactome filter works correctly
* count links to results page displaying correct results
* works for large lists (eg. > 12000 genes)
* Interactions & Orthologues
* appears with correct data
* count links to results page displaying correct results
* works for large lists (eg. > 12000 genes)
* Enrichment Widgets
* ~~verify the reference population (the 2nd paragraph) actually includes all and only organisms in your bag.~~ - sentence removed but needs to be restored
* contain sensible results
* items with low p-values are interesting
* may need a biologist for this
* create bag containing all genes/proteins for a specific organism. nothing should be enriched.
* changing test correction produces sensible changes
* no test correction < benjamini hochberg < bonferroni
* bonferroni is more strict than benjamini hochberg thus the p-values should be higher
* ~~open in new window~~
* change the maximum value
* links produce sensible results
* external links are valid
* GO, Publications, and Protein domain widget should have external links.
* display and export
* check one or several entries and display
* use select all checkbox
* export in ~~csv,~~ tsv~~, and xls~~ format
* check line breaks correct in Linux and Windows
* works for large lists (eg. > 12000 genes)
* background population
* change reference population and verify sensible results
* if you are not logged you can't save your preference (the checkbox 'Save your preference' shouldn't be displayed)
* login and try to save the reference population (the checkbox 'Save your preference' should be now displayed)
* logout and verify reference population set is 'Default'
* login again and verify reference population set by default is the preference you set previously
* verify the preference is only set for that user, list and widget
* gene length correction coefficient
* verify that if in the webconfig-model.xml the attribute correctionCoefficient is set the checkbox 'Normalise by length is displayed'
* verify that the link (see which) in the message displaying the number of genes in your list do not have a length works
* create a list containing only genes with length null, go to list analysis page and verify that the checkbox 'Normalise by length is displayed' is not dispalyed (also if configured)
* select the checkbox an verify that contains sensible results
* create a list containing only genes with lenght not null, go to list analysis page and verify that the message containig the number of genes are not dispalyed
* !GoStats
* view with bag containing different numbers of organisms.
* change ontology and verify display is correct
* click on "N results" link, verify results correct
* for all widgets that support it, check that one can get a download for selected rows and that these are correct
* select all of the rows in a big table result and click view > show in results table, does the table show up?
* check that for enrichment and table widgets one can see the bottom of a table scrollbar if table is bigger than its wrapper
* on exporting from an enrichment or table widget check that popup appears and importing the result into a spreadsheet will be tab delimited
= TEMPLATE =
* Create a template from query in !QueryBuilder
* you can't start building a template if you don't add at least one field in the view
* Template has bad name (punctuation characters)
* Template has duplicate query name
* ~~Change name, click "Update", change name again with the previous, click "Update"~~
* change name with bad name, edit some constraints, update: on the error the form should retain its contents
* add all possible constraints included LIKE, NOT LIKE, NONE OF, ONE OF, subclasses, loop, has a value or not, boolean
{{{
<query name="" model="genomic" view="Gene.primaryIdentifier Gene.secondaryIdentifier Gene.symbol Gene.goAnnotation.ontologyTerm.parents.name Gene.goAnnotation.ontologyTerm.parents.identifier Gene.goAnnotation.ontologyTerm.name Gene.goAnnotation.ontologyTerm.identifier Gene.homologues.homologue.primaryIdentifier Gene.homologues.homologue.secondaryIdentifier Gene.homologues.homologue.symbol" longDescription="For a specified GO term (and children of this term) find all the genes in a particular organism that have an orthologue in another organism" sortOrder="Gene.primaryIdentifier asc" constraintLogic="A and B and C and D and E and F">
<pathDescription pathString="Gene.homologues.homologue" description="Orthologue"/>
<pathDescription pathString="Gene.goAnnotation.ontologyTerm.parents" description="GO annotation"/>
<pathDescription pathString="Gene.goAnnotation.ontologyTerm" description="GO annotation &gt; child term"/>
<constraint path="Gene.homologues.type" code="D" op="NONE OF">
<value>paralogue
</value>
</constraint>
<constraint path="Gene.goAnnotation.ontologyTerm.parents" type="GOTerm"/>
<constraint path="Gene.goAnnotation.ontologyTerm" type="GOTerm"/>
<constraint path="Gene.goAnnotation.ontologyTerm.parents.name" code="A" op="CONTAINS" value="DNA binding*"/>
<constraint path="Gene.organism.name" code="B" op="LIKE" value="Drosophila*"/>
<constraint path="Gene.homologues.homologue.organism.name" code="C" op="ONE OF">
<value>Caenorhabditis elegans
</value>
</constraint>
<constraint path="Gene.goAnnotation.qualifier" code="E" op="IS NULL"/>
<constraint path="Gene.goAnnotation.ontologyTerm.obsolete" code="F" op="=" value="false"/>
</query>
}}}
* ~~add the constraint has a value or not to a reference and collection~~
* ~~modify a constraint and click "Save template"~~
* if you edit an editable constraint, constraint should remain editable (#1436)
* constraints by default are editable and required
* modify the editable/non editable property (and description label). the description should be displayed in the Template Preview
* modify the "switchoff" property in the constraint(required, on, off)
* Run/edit/export from the templates list and verify that the pages are displayed and loaded with the right data and html objects:
* if the constraint is a LOOKUP, an input field is displayed
* if the constraint is a multiselect (NONE OF, ONE OF) a multiselect drop down is displayed
* if the constraint is LIKE, NOT LIKE, an input field is displayed
* if the constraint has possible values, a drop down list containing the values is displayed provided that the operators LIKE, NOT LIKE,LIKE, NOT LIKE haven't been selected.
* Import template(s)
* all different types
* subclass constraint
* optional constraint
* complicated logic (A or B) and (C or D) and E
* Bad XML
* Bad query name
* Wrong semantic XML
* Duplicate template/query names (#2698)
* duplicate queries will be renamed automatically (QUERYNAME_1, QUERYNAME_2)
* duplicate template entries will be ignored.
* One/many template(s)
* Empty form
* Import e template from a .txt file
* Import a template from a file with extension different from .txt
* Mark templates as favourite.
* Run the template
* modify some constraints
* try selecting a bag
* LOOKUP constraint plus extra organism constraint
* normal constraint
* NONE OF, ONE OF constraints
* LIKE, NOT LIKE constraints
* has a value or not (test with simple attribute and with reference and collection)
* boolean constraint
* if the constaint is optional, switch on and off
* Click "Show Result" and verify the result.
* Go back to the current query via trail, values should be filled in: included operator, on off property, boolean value...
* Click Export XML, values should be filled in.
* Edit a template and try to modify clicking Update:
* constraint types
* constraint values
* set editable/not editable and the description. The description should be displayed in the Template Preview
* set required, on, off properties
* change the constraints order (drag and drop the constraint boxes in the template preview)
* change the name, description, comment
* Delete template(s)
* LOOKUP constraints - try out a template with a LOOKUP constraint on Gene - e.g. 'Gene --> Proteins' to check:
* different identifiers give same results: zen, CG1046, zerknullt, FBgn0004053
* an invalid identifier gives a message: fake
* wildcard gives multiple results and a message: zen*
* wildcard that gives nor results and a message: asdf*
* multiple identifiers give results: zen, eve, fake
* duplicates should give results ~~and a warning~~: h, r
* type converted gives results and a warning: CG1046-RA
* wildcard that should be type converted: eve_drome*
* Make a template with an editable LOOKUP on gene and a constraint on Organism - check that the extra constraint on organism does not appear.
* Bad templates
* First, create a bad template by doing the following (if you don't already have one):
* export a good template
* rename a field/class in the xml to something that isn't in the model
* import that template into your user profile
* it should have a red line through it
* select bad template - should only be able to export.
* html title should read "FlyMine: Template Query: <TEMPLATE_NAME>" (on the template form)
* Hide/Show the constraint logic in the template form
* Create a template with 2 editable constraints A and B and 3 not editable constraints C and D and E
* if Constraint logic is A and B and C and D the template form doesn't show the logic
* if Constraint logic is A and (B or C) and D the template form shows A and (B or C)
= REPORT PAGE =
* setup a summary section linkout image and see it works
* configure main and sub titles (xml again) and see they work
* have a collection/reference as a header inline list that is expandable
* do displayers override collections?
* do links to other mines show up?
* can I get a permalink to the object?
* can you see lists this object is in?
* external links in the sidebar worky?
* tooltip icons show me the tooltip?
* collections with multiple object types should have the types highlighted
* collapsing/expanding on collections, references and templates works?
* on displayers gnawing collections together (Overlapping Features) can I see the individual collections?
* are all displayers configured?
* can I export from Interaction Network and toggle its table?
* login as su and see you can tag collections
* check that JavaScript highlights the section we are on
* plus points for spotting a displayer that has unclosed elements (<div>) and and takes over other sections (use Firebug to highlight the "blocks" on the page
* are things missing their formatting?
* in IE do I still get alternating table colors (done through JS)?
* GBrowse img appears with correct link
* Interaction network on Gene or Protein report page
* quick search "zen" to view its network (make sure your firefox and flashplugin is up to date)
* click the network to expand
* show different types of interactions works
* mouse over the network edges to show data sources
* right click on nodes or edges of the network to show more options. e.g. ~~export network,~~ view in a new report page, etc.
* template queries appear
* inline template tables have results for correct Gene
* [show in table] gives results page with correct Gene
* ~~(t) link to template with correct value filled in~~
* ~~template description and 'x results' link to results~~
* collapsing/expanding aspects works correctly
* lists that contain this object
* correct lists appear
* include both private and public lists
* add this object to existing lists
* appears both when not logged in and when logged in
* works as expected
* all fields have data that should
* ~~fields with capital letters are displayed~~
* ~~in summary~~
* ~~in inline table~~
* check that tooltips appear for Google Charts API displayers (bug appears in Firefox) ?
* test links to other intermines work correctly
* link opens in new window
* if "no results" found for gene, make sure this is accurate
* link goes to correct report page at new mine
* fasta links work on the gene report page, see #2640
* check that displayers that are not configured/fail have a .warning class attached to their outer div, while having a pale yellow background with an appropriate error message.
* login as a super user and add 'im:summary' tag on a Collection, Reference and an InlineList. Do they appear in the page summary?
* Visit the report page for for Zurovcová M, verify that the URL is interpreted correctly: http://www.flymine.org/query/portal.do?class=Author&externalids=Zurovcov%C3%A1+M, this is in reference to #2581 (This must be configured manually in tomcat's server.xml, with every Connector element having an attribute of the form URIEncoding="UTF-8")
= MYMINE =
1. Start logged out
1. Check you cannot access lists and query history pages
1. Run a query
1. Create a list
1. Create a new local account
1. Check that the list and query are in the new profile.
1. Rename them
1. Log out
1. Verify you are logged out, and the list/query histories are empty
1. Run a query
1. Create a list
1. Log in via an OpenID provider (Google)
1. Check that the list and query are in the new profile.
1. Rename them
1. Log out
1. Log back into your local account
1. Check that the list and query from before are in this profile.
1. Log back in using the OpenID account
1. Check that the list and query from before are in this profile.
1. Log out
1. Log into local account
1. Change local account password
1. Log out
1. Log into local account with new password
1. Log out
1. Log into OpenID account
1. Check you cannot change this user's password.
1. Log out
1. Try to log into OpenID account with username and password
1. Log in as any user.
* Check lists:
1. table sorts correctly
1. date created is correct
1. rename list. try to rename it again (#1110)
1. list operations work as expected
1. create a bag with a bad name (with special chars)
1. no bags selected
1. bag operation resulting in an empty bag should generate error
1. delete lists - should be able to delete list used in queries, will delete queries too
* list used in query in query history
* list used in query in saved queries
* Check queries & templates
* table sorts correctly
* export/delete buttons work correctly
* select individually
* use top checkbox to select them all at once
* work for bags/templates/queries with spaces or dots in their name
* rename item and then apply a favorite star or add a tag; now reload a page, do these tags still apply?
* date created is correct
* approx rows seems sensible
* run/edit/delete links work
* run
* My Mine > Saved Templates
* Click on the "Run" link for any template.
* Click on "Show Results" button
* Click on "Query" in the trail (Trail: Query > Results)
* edit
* !QueryBuilder > Query History
* Click on the edit link
* template - should go to !QueryBuilder
* query - should link to !QueryBuilder
* Log out
* Log in as superuser
* tracker shows up for superuser
* test that a sort order is preserved between browser reloads on Lists, Queries and Templates tables
* change your timezone (sudo dpkg-reconfigure tzdata) and check that date created changes based on the UTC to your custom timezone difference.
* test that upgrade of lists works well:
1. UPDATE savedbag SET intermine_state='NOT_CURRENT';
1. login to MyMine and see a table being populated with CURRENT lists
1. You should see the size of the new lists in the CURRENT table being non zero.
= OBJECT TRAIL =
* Verify object trail is correct at all times and each link directs browser to correct page
* bag
* login
* select a bag
* from the bag details page, select
* bag elements (try different fields)
* template
* (t)
* n results
* inline
* [show in table]
* widgets
* query
* Run a query
* Click a couple links
* Make sure "Query >" stays in trail and goes to correct page
* navigate back to query and check correct value is filled in
* test with a LOOKUP constraint
* test with a bag
* object
* from the object details page, select:
* summary
* [details ...] link (both!)
* [show in table...]
* template
* (t)
* n results
* inline
* [show in table]
= EMAIL =
* forgot password
* Contact us link
* successfully sends an email
* doesn't load before page (we have had some issues with the javascript that toggles the form)
= PORTAL =
* use the following links to test the portal
* http://preview.flymine.org/query/portal.do?externalids=eve&class=Gene
* Report page for eve. note: should work without the class too
* http://preview.flymine.org/query/portal.do?externalids=eve,FBgn0000011,ftz&class=Gene&origin=Google
* Create a bag of genes
* http://preview.flymine.org/query/portal.do?externalids=h,r&class=Gene&origin=flyexpress
* Tests duplicates: all four genes should be added to the list
* http://preview.flymine.org/query/portal.do?externalids=h&class=Gene&origin=flyexpress
* Tests duplicates: should forward to the results page
* http://preview.flymine.org/query/portal.do?externalids=EVE_DROME&class=Gene
* Tests conversion from prot to gene
* http://preview.flymine.org/query/portal.do?externalids=h,zen,EVE_DROME&class=Gene
* Tests duplicates & conversion from protein to gene
* http://preview.flymine.org/query/portal.do?externalids=xxx
* If there are no results it should show a nice 'no results' page.
* http://preview.flymine.org/query/portal.do?externalids=zen&class=monkey
* If you don't specify a class or wrong you shouldn't get an ugly error page
* Also try with specifying "organism".
* To check the Orthologue converter use
http://preview.flymine.org/query/portal.do?externalids=FBgn0039595,FBgn0036461,FBgn0037971&class=Gene&orthologue=C.%20elegans
and try out the [view orthologue mapping link too]
= Web Services =
* Create template that doesn't return any data and check that HTML preview displays message in the table that there are no data.
* Run Template via webservice with url produced from webapp
* Without values for one of the optional constraints (ie. switched off)
* With only some values (check for error)
* Create a query from query builder - check that the generated webservice url works
* Do this for each constraint type (unary, binary, LOOKUP, MultiValue, Subclass)
* Add Joins
* Specify different logic
* Generated code:
* generate and run Perl, Python and Java code for a template query
* generate and run Perl, Python and Java code for a custom query
* Client tests.
* Ensure you have a testmodel with the ''loadadata'' data set available at '''http:localhost/intermine-test'''.
* Check out the perl client. ([source:intermine/perl/Webservice-InterMine])
- Install dependencies: {{{perl Build.PL && sudo ./Build install-deps}}}
- Run the acceptance tests: {{{RELEASE_TESTING=1 ./Build test}}}
* Check out the python client. ([source:intermine/python/intermine-core])
- Run the main test suite: {{{python setup.py test}}}
- Run the live tests: {{{for t in tests/live*.py; do python $t; done}}}
- Run the tox tests: {{{tox}}}
* Check out the ruby client. ([source:intermine/ruby/intermine-core])
- Install dependencies (use {{{gem install}}}).
- Run the main test suite: {{{rake test}}}
- Run the live tests: {{{rake live_tests}}}
* Run the test scripts at http://intrac.flymine.org/ticket/2582#comment:4. Observe that these
have reasonable output (ie. that the strings are in the correct encoding).
= Perl =
* Check install of Webservice client with
{{{
> cpan Webservice::InterMine
}}}
* Visit: http://search.cpan.org/~intermine/Webservice-InterMine-0.9401/lib/Webservice/InterMine/Cookbook.pod
- check that the recipes make sense
- check that the scripts as described can be run
= Quick search =
* narrow results by category and organism
* add/remove filters
* try "Dpse\GA10108"
* Use "OR"
* "AND NOT" correctly filters out results
* wildcard works correctly
* test different object types (eg. proteins, ontologies, publications)
* save as a list under category
* test case
* search should be case insensitive, eg. SLINGSHOT (note that Slingshot and slingshot are both synonyms, so searching for those two terms would not be testing case sensitivity)
= Genomic Region Search =
* the tab "'''Region'''" on top of the page should display, after clicking it, the options page should load, and the tab should be highlighted
* feature types should be pre-selected
* example regions should be available when clicking "click to see an example"
* could upload a txt file of regions using supported formats as stated on the upper part of options page
* slider input accept 1) integer 2) decimal number + unit (e.g. 2k, 1.5M)
* on results page, an message box on the top should give information on "selected organism" and "selected feature types"
* feature should be clickable and linked to its report page
* page navigation should be working if searching more than 10 regions
* all export as files links should work
* export to Galaxy link should work
* create a list of a selected feature type for all regions or one region
= MULTIPLE SUPERUSERS =
* login as superuser, in mymine the tab 'Users'is displayed
* logout and login as user, in mymine the tab 'Users' is not displayed
* login as superuser, select 'Users' tab
* the superuser should be selected
* try to select some users and then click 'Reset'
* try to select some users and then click 'Save'
* logout and login as another superuser (that just created). In 'Users' page:
* try to unselect the superuser set in the mymine.proeprties file (error message)
* try to unselect the user logged (error message)
* create or set some public templates
* create or set some public bags
* logout and check that public templates and bags just created are dispayed in the Templates and Lists pages
* login as another superuser (no the superuser who has just created the public templates and lists)
* verify you can see the public templates and bags (just created) but you can not edit them
= SHARING LISTS =
Please note that this section is easiest to test if you have TWO BROWSERS open (say
chrome and firefox) where each browser is logged in with a different user account.
* login as user1 (not a superuser) , in mymine lists page
* verify the new link 'Share with users' is displayed (under 'Add tag' link)
* share a bag with a user2 registered in the webapp
* verify the user2 receives an email containing correct subject and body
* verify the link displayed in the body works (also with list names containing empty spaces)
* logout and login as user2 and verify
* the list just shared is displayed in the lists page
* on the right side there is a label 'Shared by user1'
* users2 can't delete, modify or rename the list because is shared
* logout and login as user1, remove the users2 from sharing list
* logout and login as user2 and verify the list is not displayed anymore
* login as superuser and verify you can share only lists not public
= INVITATIONS =
* Go to mymine, try to share a list with an email address that you have access to but
which DOES NOT APPEAR IN THE USERPROFILE.
- verify that you receive a message telling you that the user name was not found
- verify that the message offers to send an invitation to this user.
- verify that you received an email at the address.
Click on the link in the email:
- verify that the link takes you to the mine. If you are not already logged in, it should
take you to a login page.
- verify that once logged in you can see the newly shared list.
- verify that user A received an email about the acceptance of their invitation, which
includes the real username of the user who accepted their invitation.
* Do this with:
- Where user B does not have any account (and must register first).
- Where user B is already logged in.
- Where user B is logged out.
= User Preferences =
1. Create a new account C, which should be an open id account.
1. Visit My Mine > Account Details > User Preferences, and set a display name, a preferred
email address, a specific galaxy location, and untick ```Allow other users to share lists with me without conf```.
1. Check view results in any results table. Verify that when you try to export to galaxy, it uses your predefined
galaxy url.
1. Log out
1. Log in as any other user
1. Go through the above listed checks for list sharing and invites, using the display name value for user C as
provided in step 1.1
1. Log out
1. Log in as user C
1. Verify that you have received invitations to share lists at your predefined preferred address, and that if you accept them,
they will appear in your list of lists.
1. Tick ```Allow other users to share lists with me without conf```.
1. Go through steps 2-5 again
1. Verify that you (user C) have not received invitations for these lists, but that they have just appeared been accepted
automatically.
= UPGRADING LISTS PROCESS =
* execute in the user profile database the query returning the number of empty lists
* select * from savedbag where id NOT IN (select savedbagid from bagvalues group by savedbagid);
* and force the super user list to be upgraded
* update savedbag set intermine_state = 'NOT_CURRENT' where userprofileid IN (select id from userprofile where superuser=true);
* redeploy the webapp
* login as super user to start the upgrading list process
* logout and login again
* wait until the process has upgraded all the lists
* re-run the query for verifing the number of empty lists matches with the previous
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment