testman4trac / README.txt

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
Check the tutorial on YouTube: http://www.youtube.com/watch?v=BIi3QMT0rT4 

Test Manager plugin for Trac

  Copyright 2010-2012 Roberto Longobardi
  
  The Test Manager plugin for Trac is free software: you can 
  redistribute it and/or modify it under the terms of the GNU General 
  Public License as published by the Free Software Foundation, either 
  version 3 of the License, or (at your option) any later version.
  
  The Test Manager plugin for Trac is distributed in the hope that it 
  will be useful, but WITHOUT ANY WARRANTY; without even the implied 
  warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  
  See the GNU General Public License for more details.
  
  You should have received a copy of the GNU General Public License
  along with he Test Manager plugin for Trac. See LICENSE.txt.
  If not, see <http://www.gnu.org/licenses/>.


  Project web page on TracHacks: http://trac-hacks.org/wiki/TestManagerForTracPlugin
  
  Project web page on SourceForge.net: http://sourceforge.net/projects/testman4trac/
  
  Project web page on Pypi: http://pypi.python.org/pypi/TestManager

=======================================================================

Refer to BUILD.txt for details about how to build.

Refer to INSTALL.txt or UPGRADE.txt for installation or upgrade 
instructions.

=======================================================================
A Trac plugin to create Test Cases, organize them in catalogs, generate 
test plans and track their execution status and outcome.

Since the release of Trac 1.0, I had to split the plugins code into two 
versions:
 - a version that works well with Trac 0.11
 - a version that works well with Trac 0.12 and Trac 1.0

All the code works with Python 2.5, 2.6 and 2.7.
All database backends are supported.

***********************************************************************
********************
   IMPORTANT NOTE
********************
Starting with release 1.5.2, because of the code branch I had to do to 
support Trac 1.0, all new features will only be developed for 
Trac 0.12+. 

The 0.11 branch will only be supported for bug fixes.

***********************************************************************

The Test Manager functionality is split up into three plugins:


    TracGenericClass:
    
        This module provides a framework to help creating classes on 
        Trac that:
         * Are persisted on the DB
         * Support change history
         * Support extensibility through custom properties that the User
           can specify declaratively in the trac.ini file
         * Support custom operations to be performed before and after 
           the standard object lifecycle events.
         * Listener interface for Components willing to be notified on 
           any object lifecycle event (i.e. creation, modification, 
           deletion).

        Database tables are also automatically created by the framework 
        as declaratively stated by the client Components.
         
        Also provides an intermediate class to build objects that wrap 
        Wiki pages and have additional properties.


        More details:

        A generic object framework supporting programmatic and 
        declarative definition of its standard fields, declarative 
        definition of custom fields (in trac.ini) and keeping track of 
        change history has been created, by generalizing the base Ticket
        code.

        The specific object "type" is specified during construction as 
        the "realm" parameter.
        This name must also correspond to the database table storing the
        corresponding objects, and is used as the base name for the 
        custom fields table and the change tracking table (see below).

        Features:
            * Support for custom fields, specified in the trac.ini file
              with the same syntax as for custom Ticket fields. Custom
              fields are kept in a "<schema>_custom" table
            * Keeping track of all changes to any field, into a separate
              "<schema>_change" table
            * A set of callbacks to allow for subclasses to control and 
              perform actions pre and post any operation pertaining the 
              object's lifecycle
            * Registering listeners, via the ITestObjectChangeListener
              interface, for object creation, modification and deletion.
            * Searching objects by similarity, i.e. matching any set of 
              valorized fields (even non-key fields), applying the 
              "dynamic record" pattern.
              See the method list_matching_objects.
            * Integration with the Trac Search page.
            * Integration with the Trac Resource API.
            * Support for declarative specification of the database 
              backing a particular class. The tables are created 
              automatically.
            * Fine-grained security access control to any operation on 
              any resource type or instance.


    TracGenericWorkflow:
    
        Provides a framework to help creating workflows around any Trac 
        Resource.

        Features:
            * Declarative definition of the workflow, specified in 
              trac.ini.
            * Same syntax as the basic Ticket workflow (I may have 
              derived some line of code from Trac itself... ;-))
            * Easy GUI integration support. You can expose the workflow 
              operation widgets anywhere in your application pages.
            * Fine-grained authorization control. You can specify which 
              role is required to perform each state transition, and to 
              execute each corresponding action.
            * Custom actions. An open API allows you to program your own 
              custom actions to be executed at any workflow state 
              transition.
            * Out-of-the-box built-in actions are provided.
            * XML-RPC remote API.


    TestManager:
        
        Provides the test management-related funcitonality.
        
        Features:
            * Define test cases and organize in test catalogs (test 
              suites).
            * Define a hierarchy of catalogs and sub-catalogs, whatever 
              deep.
            * Test case and catalogs versioning and history of changes.
            * Test cases and catalogs support Wiki formatting and 
              attachments.
            * Copy/move individual or a set of test cases among 
              catalogs.
            * Define one or more test plans (test rounds) based on all 
              or a portion of the test cases in a (sub-)catalog. Specify
              whether the test case version should be freezed in the 
              test plan, or always link to the latest version. 
            * One-click change status of a test case.
            * Ticket integration: open tickets directly from a (failed)
              test case, keep track of the relationship. Navigate from 
              a test case to its related tickets and vice-versa.
            * Test cases, catalogs and plans can have their own custom 
              properties, defined in trac.ini like tickets.
            * Definition of custom test outcomes (statuses), in addition
              to the built-in "Untested", "Success", "Failed".
            * Test execution statistical charts. Export to CSV.
            * Statistical charts about tickets related to test plans. 
              Export to CSV.
            * Tree and tabular view of the test catalogs or test plans, 
              and the contained test cases.
            * Type-ahead searching and filtering from the tree and 
              tabular view.
            * Breadcrumbs to easily navigate through test catalogs and 
              plans.
            * Integration with Trac search engine.
            * Fine-grained security with six new Trac permissions.
            * Create templates for test cases and test catalogs. Specify
              which default template should be used for test cases in 
              any particular catalog.
            * Import/export test cases from/to Excel in CSV format.
            * National Language Support (NLS) and currently translated 
              in Italian, French, German and Spanish.
            * Remote APIs: XML-RPC, RESTful.
            * Python API.
              
        
An additional plugin is only useful for debugging and should not be 
installed in a production environment.

    SQLExecutor:
    
        Allows for running arbitrary SQL statements on the internal Trac
        database from a simple web page, and see the results.


=======================================================================
Change History:

(Refer to the tickets on trac-hacks or SourceForge for complete 
descriptions.)

Release 1.5.2 (2012-10-14):

  This release makes the plugins compatible with Trac 1.0.
  
  Since the release of Trac 1.0, I had to split the plugins code into 
  two versions:
	 - a version that works well with Trac 0.11
	 - a version that works well with Trac 0.12 and Trac 1.0
	 
  All the code still works with Python 2.5, 2.6 and 2.7.
  All database backends are still supported.

  To build from the source, refer to the updated BUILD.txt file.  

  o Fixed Ticket #10293 (Track-Hacks): New install impossible on Trac 1.0beta1
  
  o Fixed Ticket #10295 (Track-Hacks): Trac detected an internal error: UnicodeError: source returned bytes, but no encoding specified

  
Release 1.5.1 (2012-08-12):

  This is somewhat of a major release, in that it includes several new interesting features and many bug fixes.
  See the list below for more details.
  
  In addition to that, I realized a VIDEO TUTORIAL showing out the main features of this Test Manager, to 
  help new and existing users take confidence with recent changes, new features and so on.
  
  Check the tutorial on YouTube: http://www.youtube.com/watch?v=BIi3QMT0rT4 
  
  Also the trac-hacks user manual has been restructured, updated and enriched with the recent changes and features.

  o Enhancement #353771 (SourceForge): Time tracking capability. 
                                       
                                       This is now possible by means of the enhancements to the tabular views of
                                       both test catalogs and test plans and the addition of a custom field.
                                       See the comments to the feature request and the video tutorial, where this
                                       customization example is fully explored.

  o Enhancement #3537704 (SourceForge): Possibility to select columns for the table view. 
                                        
                                        This is now possible from the administration panel.
                                        
                                        I also added an interesting feature that allows for adding a statistical
                                        row to the test catalog and test plan tabular views, with the option to have
                                        the sum, average or count of the values in any column, being it a standard
                                        or a custom property of test cases or catalogs.
                                        
                                        This feature is also used to realize the feature #353771 above.
                                        See the video tutorial for an interesting use of this one to track test
                                        execution effort estimation of an entire test plan  and compare it to actual 
                                        execution time.
                                       
  o Enhancement #3537700 (SourceForge): Option to select table view as default view. 
                                        This is now possible from the administration panel.
                                   
  o Enhancement #3537696 (SourceForge): Possibility to change test plans. 
                                        
                                        This is now possible by means of several new actions available on test cases:
                                         - On a test case definition page, you have a new action button to add the 
                                           test case to a plan. A dialog box appears showing you the suitable plans 
                                           (the ones not containing all test cases).
                                         - On a test case instance (a test case inside a plan) page, you have a new 
                                           action button to remove the test case from the plan.
                                         - On a test case instance (a test case inside a plan) page, in case the plan
                                           is containing an old snapshot of the test case and you wish to update its text 
                                           description to the latest version, you have a new action button to do that.
                                       
  o Fixed Ticket #8932 (Track-Hacks): The test plan tabular view has been enhanced to also 
                                      show test case full text description

  o Fixed Ticket #10131 and #10217 (Track-Hacks): Deleting a Test Case, deleting Test Catalogs containing Test items.
                                                  This only happened on PosgreSQL.

  o Fixed some bugs that I found ad which were not reported:
    - The quick search in test catalogs was not working.
    - Indentation of test cases in tabular views for both catalogs and plans was incorrect.
    - Localization (i.e. translation) did not work for some parts of the Administration panel, 
      the Statistical charts page and several dialog boxes.
    - Some more I can't recall :D

Release 1.4.11 (2012-06-03):

  The data referential integrity in case of test catalog, test case and test plan deletion has been enhanced.
  Deleting a test catalog now also deletes all of the contained sub-catalogs, test cases and test plans, as well
  as the corresponding status change history.

  o Fixed Ticket #9857 (Track-Hacks): Deleted test plan is still shown in Test Stats

  o Fixed Ticket #9953 (Track-Hacks): Changing a testcase custom field value gives and error

  o Fixed Ticket #10043 (Track-Hacks): Deleting "zombie" TestPlans

Release 1.4.10 (2012-03-03):

  o Enhancement #9751 (Track-Hacks): Ability to sort catalogs.
                                     Test Catalogs are now sorted by title in the tree and table views.

  o Fixed Ticket #9776 (Track-Hacks): Testplans not visible with latest Agilo Plugin.

  o Fixed Ticket #9530 (Track-Hacks): Expand all / Collapse all is not running.
                                      This only happened with the Agilo plugin installed.

  o Fixed Ticket #9754 (Track-Hacks): Setting test result seemingly succeeds with expired login.
                                      Now operations such as setting a test case status and updating a custom field,
                                      when failing will display a dialog box with an error message.
  o Fixed Ticket #9758 (Track-Hacks): Can't delete Test Case in v1.4.9.

Release 1.4.9 (2012-01-04):

  o Enhancement #8958 (Track-Hacks): An ability to export test data to CSV format needed.
                                     You can now export to CSV a test catalog or a test plan.
                                     In the test catalog and test plan pages you will find an "Export ..." button.
                                     The export format is designed to eventually import the stuff back into another 
                                     Test Manager plugin evironment, as soon as a compatible import feature will be 
                                     implemented :D (the current import feature is simpler than that.)

  o Enhancement #9287 (Track-Hacks): New browser tab for existing testcases. Now you have an option in trac.ini to choose what
                                     to do when clicking on a test case in the catalog/plan. 
                                     The default is to NOT open it in a new window, but you can change that from the admin panel,
                                     under Testmanage->Settings, or directly in the trac.ini file like this:
                                     
                                        [testmanager]
                                        testcase.open_new_window = True

  o Fixed Ticket #9297 (Track-Hacks): Can't print testplan table overview. There was a problem with the default print css from Trac.

  o Fixed Ticket #9510 (Track-Hacks): TestStats for single Testplans at 1.4.8 not working - patched. 
                                      Thanks so much Andreas for finding it and for patching it!!!

  o Fixed Ticket #9654 (Track-Hacks): Error when creating test plans

Release 1.4.8 (2011-10-23):
  o Strongly enhanced the upgrade mechanism. Now it's more robust, should work with all the databases and between arbitrary Test Manager versions.

    The only drawback is that upgrade is only supported from 1.4.7, not from previous versions.

  o Enhancement #9077 (Track-Hacks): Ability to separate and report on test plans by product

  o Enhancement #9208 (Track-Hacks): Test plan with only selected test cases from the catalog, take snapshot version of test cases.
                                     This is an important one. Many users were asking for a way of including only selected test cases into
                                     a Test Plan, for different reasons. Now you have it :D

  o Added French language catalog! Thanks to someone who doesn't want to be cited :D

  o Fixed Ticket #9141 (Track-Hacks): Update installation 1.4.6 -> 1.4.7 not possible
  o Fixed Ticket #9167 (Track-Hacks): installation of 1.4.7 with postgres database not possible
  o Fixed Ticket #9187 (Track-Hacks): Current test status report should consider only last result of a testcase in the plan. 
                                      Thanks to Andreas for his contribution to fixing this one!

Release 1.4.7 (2011-08-28):
  o Enhancement #8907 (Track-Hacks): Add template for "New TestCase" - Thanks a lot to Christian for the hard work on this enhancement!!!
                                     Now you can define templates for your new test catalogs and new test cases, and assign default templates based
                                     on each test catalog!
  o Enhancement #8908 (Track-Hacks): Possiblity to change test case status from the tree view.
                                     No more need to open each test case in a plan to set its result, you can now do this directly from the tree view!
  o Fixed Ticket #8869 (Track-Hacks): Loading of Test Manager takes too long and sometimes time out
  o Added Spanish and German catalogs! Thanks a lot to Christopher and Andreas for the translations!!! Italian was already part of the plugin.

Release 1.4.6 (2011-06-19):
  o Fixed Ticket #8871 (Track-Hacks): No # allowed at custom fields
  o Fixed Ticket #8873 (Track-Hacks): css styles ar not compatible with the agilo plugin
  o Fixed Ticket #8876 (Track-Hacks): Can't create Catalogs/Test cases when trac runs from site root
  o Fixed Ticket #8878 (Track-Hacks): TestManagerForTracPlugin does not play well with MenusPlugin
  o Fixed Ticket #8898 (Track-Hacks): yui_base_url not honored in templates ?
  o Enhancement #8875 (Track-Hacks): More visibility for Tickets related to test suites
  Added more statistical charts, including Current test status pie chart and Tickets related to test cases trend chart
  Simplified setting the outcome of a test case

Release 1.4.5 (2011-05-21):
  o Enhancement #8825 (Track-Hacks): Ability to import test cases from Excel (CSV) file

Release 1.4.4 (2011-03-11):
  o Fixed Ticket #8567 (Track-Hacks): Javascript error when deleting test plans
  o Enhancement #8596 (Track-Hacks): Remove hard dependency on XML RPC plugin for Trac 0.11
  o Enhancement #8761 (Track-Hacks): Copy multiple test cases into another catalog
  Added wiki documentation for copying multiple test cases into another catalog.

Release 1.4.3 (2011-01-20):
  o Enhancement #8427 (Track-Hacks): Add XML-RPC complete interface for remote management of test objects

Release 1.4.2 (2011-01-09):
  o Fixed Ticket #8378 (Track-Hacks): Set date and time format correctly in Test Stats page
  Also added support for custom test case outcomes in the Test Stats page

Release 1.4.1 (2010-12-27):
  o Enhancement #7846 (Track-Hacks): Customizable test case outcomes (aka verdicts)
  o Enhancement #7570 (Track-Hacks): Add a relationship table between tickets and test cases in plan, and corresponding API

Release 1.3.12 (2010-12-19):
  o Enhancement #8321 (Track-Hacks): Add standard internationalization support (i18n)
  o Enhancement #8322 (Track-Hacks): Show timestamps according to User's locale
  o Fixed Ticket #8323 (Track-Hacks): Unable to expand Available plans and Test case status change history collapsable sections

Release 1.3.11 (2010-12-02):
  o Added out of the box operation to workflow engine: set_owner and set_owner_to_self
  o Enhancement #8259 (Track-Hacks): Add navigation from a test case to its related tickets

Release 1.3.10 (2010-11-28):
  o Fixed Ticket #8154 (Track-Hacks): LookupError: unknown encoding: cp0

Release 1.3.9 (2010-11-23):
  o Fixed Ticket #8144 (Track-Hacks): Test statistical charts don't show successful and failed figures.

Release 1.3.8 (2010-11-22):
  o Fixed Ticket #8121 (Track-Hacks): Catalog Wiki Page not added
  o Fixed Ticket #8123 (Track-Hacks): Can't move testcase more than one time into different catalog
  o Fixed Ticket #8124 (Track-Hacks): AttributeError: 'NoneType' object has no attribute 'splitlines'
  o Fixed Ticket #8125 (Track-Hacks): "duplicate test case" does not work for previously moved test case

Release 1.3.7 (2010-11-20):
  o Enhancement #7704 (Track-Hacks): Add ability to delete a Test Plan
  o Fixet Ticket #8084 (Track-Hacks): Ordering issue

Release 1.3.6 (2010-11-09):
  o Fixed Ticket #8004 (Track-Hacks): Cannot search if an admin

Release 1.3.5 (2010-10-17):
  o Restored compatibility with Trac 0.11. Now again both 0.11 and 0.12 are supported.

Release 1.3.4 (2010-10-15):
  o Added tabular view to catalogs and plans. Search now works with custom properties in tabular views.

Release 1.3.3 (2010-10-05):
  o Enhancement feature 3076739 (SourceForge): Full Test Plan display / print

Release 1.3.2 (2010-10-03):
  o Added feature 3076739 (SourceForge): Full Test Plan display / print

Release 1.3.1 (2010-10-02):
  o Fixed a base-code bug that prevented test catalog modification with a PostgreSQL binding. (Thanks Rodel for reporting it).

Release 1.3.0 (2010-10-01):
  o The base Test Manager plugin has been separated and other plugins have been created to embed the functionalities of generic class framework and the workflow engine.
    Now we have four plugins:
      * Trac Generic Class plugin, providing the persistent class framework
      * Trac Generic Workflow plugin, providing the generic workflow engine applicable 
        to any Trac Resource. This plugin requires the Trac Generic Class plugin.
      * SQL Executor plugin, as a debugging tool when dealing with persistent data. Not to be enabled in a production environment.

    Moreover, the generic class framework has been added a set of new functionalities. 
    Refer to the README file in its package for more details.
      
Release 1.2.0 (2010-09-20):
  o The data model has been completely rewritten, now using python classes for all the test objects.
    A generic object supporting programmatic definition of its standard fields, declarative 
    definition of custom fields (in trac.ini) and keeping track of change history has been created, 
    by generalizing the base Ticket code.
    
    The specific object "type" is specified during construction
    as the "realm" parameter.
    This name must also correspond to the database table storing the
    corresponding objects, and is used as the base name for the 
    custom fields table and the change tracking table (see below).
    
    Features:
        * Support for custom fields, specified in the trac.ini file
          with the same syntax as for custom Ticket fields. Custom
          fields are kept in a "<schema>_custom" table
        * Keeping track of all changes to any field, into a separate
          "<schema>_change" table
        * A set of callbacks to allow for subclasses to control and 
          perform actions pre and post any operation pertaining the 
          object's lifecycle
        * Registering listeners, via the ITestObjectChangeListener
          interface, for object creation, modification and deletion.
        * Searching objects matching any set of valorized fields,
          (even non-key fields), applying the "dynamic record" pattern. 
          See the method list_matching_objects.
    
  o Enhancement #7704 (Track-Hacks): Add workflow capabilities, with custom states, transitions and operations, and state transition listeners support
      A generic Trac Resource workflow system has been implemented, allowing to add workflow capabilities 
      to any Trac resource.
      Test objects have been implemented as Trac resources as well, so they benefit of workflow capabilities.

      Available objects 'realms' to associate workflows to are: testcatalog, testcase, testcaseinplan, testplan.
      
      Note that the object with realm 'resourceworkflowstate', which manages the state of any resource in a
      workflow, also supports custom properties (see below), so plugins can augment a resource workflow state
      with additional context information and use it inside listener callbacks, for example.

      For example, add the following to your trac.ini file to associate a workflow with all Test Case objects.
      The sample_operation is currently provided by the Test Manager system itself, as an example.
      It just logs a debug message with the text input by the User in a text field.
      
        [testcase-resource_workflow]
        leave = * -> *
        leave.operations = sample_operation
        leave.default = 1

        accept = new -> accepted
        accept.permissions = TEST_MODIFY
        accept.operations = sample_operation

        resolve = accepted -> closed
        resolve.permissions = TEST_MODIFY
        resolve.operations = sample_operation

  o Enhancement #7705 (Track-Hacks): Add support for custom properties and change history to all of the test management objects
      A generic object supporting programmatic definition of its standard fields, declarative definition 
      of custom fields (in trac.ini) and keeping track of change history has been created, by generalizing 
      the base Ticket code.
      
      Only text type of properties are currently supported.

      For example, add the following to your trac.ini file to add custom properties to all of the four
      test objects.
      Note that the available realms to augment are, as above, testcatalog, testcase, testcaseinplan and testplan, 
      with the addition of resourceworkflowstate.

        [testcatalog-tm_custom]
        prop1 = text
        prop1.value = Default value

        [testcaseinplan-tm_custom]
        prop_strange = text
        prop_strange.value = windows

        [testcase-tm_custom]
        nice_prop = text
        nice_prop.value = My friend

        [testplan-tm_custom]
        good_prop = text
        good_prop.value = linux

  o Enhancement #7569 (Track-Hacks): Add listener interface to let other components react to test case status change
      Added listener interface for all of the test objects lifecycle:
       * Object created
       * Object modified (including custom properties)
       * Object deleted
      This applies to test catalogs, test cases, test plans and test cases in a plan (i.e. with a status).
  
Release 1.1.2 (2010-08-25):
  o Enhancement #7552 (Track-Hacks): Export test statistics in CSV and bookmark this chart features in the test stats chart
  o Fixed Ticket #7551 (Track-Hacks): Test statistics don't work on Trac 0.11

Release 1.1.1 (2010-08-20):
  o Enhancement #7526 (Track-Hacks): Add ability to duplicate a test case
  o Enhancement #7536 (Track-Hacks): Add test management statistics
  o Added "autosave=true" parameter to the RESTful API to create test catalogs 
    and test cases programmatically without need to later submit the wiki editing form.

Release 1.1.0 (2010-08-18):
  o Enhancement #7487 (Track-Hacks): Add multiple test plans capability
  o Enhancement #7507 (Track-Hacks): Implement security permissions
  o Enhancement #7484 (Track-Hacks): Reverse the order of changes in the test case status change history

Release 1.0.2 (2010-08-17):
  o Fixed Ticket #7485 (Track-Hacks): "Open ticket on this test case" should work without a patched TracTicketTemplatePlugin

Release 1.0.1 (2010-08-12):
  o First attempt at externalizing strings

Release 1.0 (2010-08-10):
  o First release publicly available
  
Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for ProjectModifiedEvent.java.
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.