summaryrefslogtreecommitdiffstats
path: root/meta/lib/oeqa/manual/toaster-unmanaged-mode.json
blob: 29d11a87d5b9a19a3aa6e4b1680d408763654a20 (plain)
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
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062
1063
1064
1065
1066
1067
1068
1069
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
1091
1092
1093
1094
1095
1096
1097
1098
1099
1100
1101
1102
1103
1104
1105
1106
1107
1108
1109
1110
1111
1112
1113
1114
1115
1116
1117
1118
1119
1120
1121
1122
1123
1124
1125
1126
1127
1128
1129
1130
1131
1132
1133
1134
1135
1136
1137
1138
1139
1140
1141
1142
1143
1144
1145
1146
1147
1148
1149
1150
1151
1152
1153
1154
1155
1156
1157
1158
1159
1160
1161
1162
1163
1164
1165
1166
1167
1168
1169
1170
[
  {
    "test": {
      "@alias": "toaster-unmanaged-mode.toaster-unmanaged.Create_a_Yocto_project_and_start_the_Toaster",
      "author": [
        {
          "email": "Yuan.Sun2@windriver.com",
          "name": "Yuan.Sun2@windriver.com"
        }
      ],
      "execution": {
        "1": {
          "action": "Set up yocto project and toaster test environment. \ncd ${installdir} \ngit clone git://git.yoctoproject.org/poky  \n\n",
          "expected_results": "NA \n\n"
        },
        "2": {
          "action": "Start up toaster. \ncd ${installdir} \nsource poky/oe-init-build-env \nsource toaster start  \n\n",
          "expected_results": "  \nlog: \nThe system will start. \nSyncing... \nCreating tables ... \nCreating table south_migrationhistory \nInstalling custom SQL ... \nInstalling indexes ... \nInstalled 0 object(s) from 0 fixture(s) \n > south  \n\nNot synced (use migrations): \n - orm \n(use ./manage.py migrate to migrate these) \nRunning migrations for orm: \n - Migrating forwards to 0004_auto__add_field_package_installed_name. \n > orm:0001_initial \n > orm:0002_auto__add_field_build_timespent \n > orm:0003_timespent \n - Migration 'orm:0003_timespent' is marked for no-dry-run. \n > orm:0004_auto__add_field_package_installed_name \n - Loading initial data for orm. \nInstalled 0 object(s) from 0 fixture(s) \nserver address: 127.0.0.1, server port: 8200 \nSuccessful start."
        },
        "3": {
          "action": "Build the yocto project. \nbitbake core-image-minimal  \n\n",
          "expected_results": "Build successfully. \n"
        },
        "4": {
          "action": "Use a default web brower to see project build process. \nxdg-open http://localhost:8000/ \nWait for build completion. \n",
          "expected_results": "You can open http://localhost:8000/ in a default browser. The build process is showed. "
        }
      },
      "summary": "Create_a_Yocto_project_and_start_the_Toaster."
    }
  },
  {
    "test": {
      "@alias": "toaster-unmanaged-mode.toaster-unmanaged.Sort_the_content_of_the_builds_table",
      "author": [
        {
          "email": "Yuan.Sun2@windriver.com",
          "name": "Yuan.Sun2@windriver.com"
        }
      ],
      "execution": {
        "1": {
          "action": "Start up toaster.",
          "expected_results": "Succeed to start up toaster. "
        },
        "2": {
          "action": "Create 2 builds, such as \"bitbake core-image-minimal\" and \"bitbake core-image-sato\". Wait for successful builds and then run: http://localhost:8000/",
          "expected_results": "Succeed to build the targets. "
        },
        "3": {
          "action": "Enter \"All build\" table in web browser.",
          "expected_results": "NA "
        },
        "4": {
          "action": "Click \"Completed on\" component to sort.",
          "expected_results": "Build targets are sorted out by the \"Completed on\". "
        },
        "5": {
          "action": "Click \"Completed on\" component again to invert the sorting .",
          "expected_results": "The sorting is inverted. "
        },
        "6": {
          "action": "Have a sort try in other columns. outcome, machine, started on, completed on, errors, warnings, project.",
          "expected_results": "See item 4 and 5."
        }
      },
      "summary": "Sort_the_content_of_the_builds_table."
    }
  },
  {
    "test": {
      "@alias": "toaster-unmanaged-mode.toaster-unmanaged.Search_the_content_of_the_builds_table",
      "author": [
        {
          "email": "Yuan.Sun2@windriver.com",
          "name": "Yuan.Sun2@windriver.com"
        }
      ],
      "execution": {
        "1": {
          "action": "Start up toaster.",
          "expected_results": "NA "
        },
        "2": {
          "action": "Create 2 builds, such as \"bitbake core-image-minimal\" and \"bitbake core-image-sato\". Wait for successful builds and then run: xdg-open http://localhost:8000/",
          "expected_results": "NA "
        },
        "3": {
          "action": "Enter \"All build\" table in web browser.",
          "expected_results": "NA "
        },
        "4": {
          "action": "Input a string in search component and click search.",
          "expected_results": "Show returned search results. When no search query has been entered, we have placeholder text saying: \"Search builds\". The placeholder text disappears when the first character is typed. "
        },
        "5": {
          "action": "See returned search results.",
          "expected_results": "If your search query returns no results, the section heading changes to \"No builds found\", and we show you an alert with a search form and an option to show all builds. "
        },
        "6": {
          "action": "Click \"Clear search\" icon (icon-remove-sign). Observe all builds are showed. ",
          "expected_results": "Click it to clear the search and display all builds."
        }
      },
      "summary": "Search_the_content_of_the_builds_table."
    }
  },
  {
    "test": {
      "@alias": "toaster-unmanaged-mode.toaster-unmanaged.Filter_the_content_of_the_builds_table",
      "author": [
        {
          "email": "Yuan.Sun2@windriver.com",
          "name": "Yuan.Sun2@windriver.com"
        }
      ],
      "execution": {
        "1": {
          "action": "Start up toaster.",
          "expected_results": ""
        },
        "2": {
          "action": "Create 2 builds, such as \"bitbake core-image-minimal\" and \"bitbake core-image-sato\". Wait for successful builds and then run: xdg-open http://localhost:8000/.",
          "expected_results": ""
        },
        "3": {
          "action": "Enter \"All build\" table in web browser.",
          "expected_results": ""
        },
        "4": {
          "action": "Make sure the following table columns have filters. \n- Outcome \n-- Started on \n- Completed on \n- Failed tasks",
          "expected_results": ""
        },
        "5": {
          "action": "Filters are mutually exclusive. Click a filter button of a one column and a filter dialogue occurs. Select a filter item. The filter result would be showed. Then select another filter item of another column and the previously applied filter is overridden by the newly selected filter when a filter from a different column is applied to the table. In this state, we show some help text next to the \"Apply\" button, saying \"You can only apply one filter to the table. This filter will override the current filter.\"",
          "expected_results": ""
        },
        "6": {
          "action": "Filters are overridden by search. Run a search query and you can see previous filter results are overridden by the results of the search query.",
          "expected_results": ""
        },
        "7": {
          "action": "Have a try in filters of the following table columns. \n- Outcome \n- Started on \n- Completed on \n- Failed tasks \n",
          "expected_results": "NA"
        }
      },
      "summary": "Filter_the_content_of_the_builds_table."
    }
  },
  {
    "test": {
      "@alias": "toaster-unmanaged-mode.toaster-unmanaged.Tasks_in_toaster_UI",
      "author": [
        {
          "email": "Yuan.Sun2@windriver.com",
          "name": "Yuan.Sun2@windriver.com"
        }
      ],
      "execution": {
        "1": {
          "action": " === TOASTER: Test Instructions for \"Tasks\", \"Time\", \"CPU Usage\", and \"Disk I/O\" pages ===   \n \nNOTE TO TESTERS: The three pages \"Time\", \"CPU Usage\", and \"Disk I/O\" are simple variations on the \"Tasks\" page. Those test instructions will demonstrate the respective unique parts.   \n \n \n",
          "expected_results": ""
        },
        "2": {
          "action": "Start with a default Yocto project (qemux86), start the Toaster, and build \"bitbake core-image-minimal\".   \n \n",
          "expected_results": ""
        },
        "3": {
          "action": "In Toaster, select the build, and select the \"Tasks\" link in the left sidebar   \n \n",
          "expected_results": ""
        },
        "4": {
          "action": "Breadcrumbs   \n \n  * Observe that the 4 breadcrumbs at the top left are:   \n     \n                           : a live link that will take you back to the project page  \n                  \t: a live link that will take you back to the project Builds page \n                          : a live link that will take you back to the image dashboard page \n                          \"Tasks\"   \n \n  * Test the breadcrumb live links, return to this page   \n \n \n",
          "expected_results": ""
        },
        "5": {
          "action": "General Layout   \n \n  * Observe the left-hand box with links to the other pages of the build   \n   \n  * Observe the title of the table is \"Tasks\", in bold   \n   \n  * Observe the search/filter bar above the table   \n   \n  * Observe the number of table rows in each page matches the number selected in the \"Show rows\" dropdown menu   \n   \n  * Observe at the bottom of the page the \"Showing XX to XX out of xxx entries\", the page selection links, and the \"Show Rows\" selection.   \n \n \n",
          "expected_results": ""
        },
        "6": {
          "action": "Columns   \n \nNote: to restore the default columns in your browser, for example in Firefox, select \"Tools > Privacy > remove individual cookies\", find the cookies for the IP address of the Toaster engine (for example \"localhost\"), and remove each sub-cookie with the prefix \"_displaycols_*\" (or the whole cookie if those are the only sub-cookies).   \n \n  * Observe that the default columns are:    \n   \n    \"Order, Recipe, Task, Executed, Outcome, Cache attempt\"   \n \n  * Click the \"Edit Columns\" button. ",
          "expected_results": ""
        },
        "7": {
          "action": "Observe that the fields are sorted as follows (with the indicated items greyed)   \n \n    [ ] CPU usage  \n    [x] Cache attempt  \n    [ ] Disk I/O (ms)  \n    [x] Executed  \n    [x] Order            {greyed}  \n    [x] Outcome  \n    [x] Recipe           {greyed}  \n    [ ] Recipe version  \n    [x] Task             {greyed}  \n    [ ] Time (secs)    \n \n  * For each of the greyed items, attempt to click them. Observe that they do not change.   \n \n  * For each of the non-greyed items, attempt to click them. Observe that the respective column dynamically appears when checked and disappears when un-checked. ",
          "expected_results": ""
        },
        "8": {
          "action": "Search   \n \n  * Observe that the search text box background text is \"Search tasks\".   \n   \n  * Set the search text to \"busybox\" and click \"Search\". Observe that only the busybox tasks are listed (about 16).   \n   \n  * Click the \"X\" next to the search text box. Observe that all of the tasks re-appear.   \n \n \n",
          "expected_results": ""
        },
        "9": {
          "action": "Column sorts   \n \n  * Enable all of the columns.   \n   \n  * Observe that by default the \"Order\" column header is in bold, it has a down-arrow icon, and that the table is sorted by this column in ascending order.   \n   \n  * Observe that the columns are in this order, and are sortable only if indicated:   \n   \n    Order                    {sortable}  \n    Recipe                     {sortable}  \n    Recipe version  \n    Task                       {sortable}  \n    Executed                   {sortable}  \n    Outcome                    {sortable}  \n    Cache attempt              {sortable}  \n    Time (secs)                {sortable}  \n    CPU usage                  {sortable}  \n    Disk I/O (ms)              {sortable}  ",
          "expected_results": ""
        },
        "10": {
          "action": " Test that each of the sortable columns do sort, ascending and descending   \n \n  * Observe that each of the column headers have a question mark icon, and that hovering over it provides help text.",
          "expected_results": ""
        },
        "11": {
          "action": "\"Executed\" Filter    \n \n  * Observe that the \"Executed\" column has the filter icon. Click on it and observe these values, where \"All Tasks\" is the default   \n \n    (*) All Tasks   \n    ( ) Executed Tasks   \n    ( ) Not Executed Tasks    \n \n  * Click on \"Executed Tasks\" and observe that only rows with the value \"Executed\" are displayed.   \n \n  * Click on \"Not Executed Tasks\" and observe that only rows with the value \"Not Executed\" are displayed.   \n \n  * Click on \"All Tasks\" and observe that all rows are displayed.   \n \n \n",
          "expected_results": ""
        },
        "12": {
          "action": "\"Outcome\" Filter    \n \n  * Observe that the \"Outcome\" column has the filter icon. Click on it and observe these values, where \"All Tasks\" is the default   \n \n    (*) All Tasks   \n    ( ) Succeeded Tasks   \n    ( ) Failed Tasks   \n    ( ) Cached Tasks   \n    ( ) Prebuilt Tasks   \n    ( ) Covered Tasks   \n    ( ) Empty Tasks    \n \n  * Click on each of the filter selections, and observe that the resulting row \"Outcome\" values match the selection.    \n \n  * Click on \"All Tasks\" and observe that all rows are displayed.   \n \n \n1",
          "expected_results": ""
        },
        "13": {
          "action": "\"Cache attempt\" Filter    \n \n  * Observe that the \"Cache attempt\" column has the filter icon. Click on it and observe these values, where \"All Tasks\" is the default   \n \n    (*) All Tasks   \n    ( ) Tasks with cache attempts   \n    ( ) Tasks with 'File not in cache' attempts   \n    ( ) Tasks with 'Failed' cache attempts   \n    ( ) Tasks with 'Succeeded' cache attempts     \n \n  * Click on each of the filter selections, and observe that the resulting row \"Outcome\" values match the selection.   \n   \n    Note the with a clean build, only the \"All Tasks\" and \"Tasks with cache attempts\" will return rows.  \n \n  * Click on \"All Tasks\" and observe that all rows are displayed.   \n \n \n1",
          "expected_results": ""
        },
        "14": {
          "action": "Order, Task, Executed, Outcome, Cache attempt links   \n \n  * Observe that for a given row, the above values are live links that will both take you to the respective task detail page. Click the back button to return.  \n\n  * Observe that for a given row the values in \"Recipe\" and \"Recipe version\" are live links that will both take you to the respective recipe details page. Click the back button to return   \n \n \n1",
          "expected_results": ""
        },
        "15": {
          "action": "Time Page   \n \n  * \"In Toaster, select the build, and select the \"Time\" link in the left sidebar   \n \n  * Observe that the default columns are:    \n   \n    \"Recipe\", \"Task\", \"Executed\", \" Outcome\", \"Time (secs)\"   \n \n  * Observe that the default sort is \"Time (secs)\", in descending order.   \n   \n  * In the \"Edit Columns\" button, turn on all of the columns.   \n   \n  * Observe that the page now matches the \"Tasks\" page, and passes the same tests.   \n \n \n1",
          "expected_results": ""
        },
        "16": {
          "action": "CPU Usage Page   \n \n  * \"In Toaster, select the build, and select the \"CPU Usage\" link in the left sidebar   \n \n  * Observe that the default columns are:    \n   \n    \"Recipe\", \"Task\", \"Executed\", \"Outcome\", \"CPU Usage\"   \n \n  * Observe that the default sort is \"CPU Usage\", in descending order.   \n   \n  * In the \"Edit Columns\" button, turn on all of the columns.   \n   \n  * Observe that the page now matches the \"Tasks\" page, and passes the same tests.   \n \n \n1",
          "expected_results": ""
        },
        "17": {
          "action": "Disk I/O Page   \n  \n   * \"In Toaster, select the build, and select the \"Disk I/O\" link in the left sidebar   \n  \n   * Observe that the default columns are:    \n    \n     \"Recipe\", \"Task\", \"Executed\", \"Outcome\", \"Disk I/O (ms)\"   \n  \n   * Observe that the default sort is \"Disk I/O (ms)\", in descending order.   \n    \n   * In the \"Edit Columns\" button, turn on all of the columns.   \n    \n   * Observe that the page now matches the \"Tasks\" page, and passes the same tests. ",
          "expected_results": "NA"
        }
      },
      "summary": "Tasks_in_toaster_UI"
    }
  },
  {
    "test": {
      "@alias": "toaster-unmanaged-mode.toaster-unmanaged.package_detail_in_toaster_UI",
      "author": [
        {
          "email": "Yuan.Sun2@windriver.com",
          "name": "Yuan.Sun2@windriver.com"
        }
      ],
      "execution": {
        "1": {
          "action": "TOASTER: Test Instructions for \"Package Detail\" page   \n \n",
          "expected_results": ""
        },
        "2": {
          "action": "Start with a default Yocto project (qemux86), start the Toaster, and build \"bitbake core-image-minimal\". ",
          "expected_results": ""
        },
        "3": {
          "action": "In Toaster, select the build, and select the \"Packages\" link in the left sidebar.",
          "expected_results": ""
        },
        "4": {
          "action": "Select a package from the \"Package\" column.",
          "expected_results": ""
        },
        "5": {
          "action": "Breadcrumbs  \n  * Observe that the 3 breadcrumbs at the top left are:   \n    : a live link that will take you back to the image dashboard page \n    \"Packages\": a live link that will take you back to the Packages page  \n    \"bash\": the name of the current package  (not a link)        \n  * Test the breadcrumb live links, return to this page ",
          "expected_results": ""
        },
        "6": {
          "action": "General Layout \n  * Click on any package \n  * Observe that there is no the left-hand box   \n  * Observe that there is a right-hand box, with information about the package \n  * Observe the title is the package name and version, in bold  \n  * Observe that, if the package is installed in an image, there is a link to the image(s) the package appears in  \n  * Observe that, if the package is not installed in the image, there are two tab buttons below the title ",
          "expected_results": ""
        },
        "7": {
          "action": "Observe that the tab buttons are:  \n    Generated files (2)        {highlighted}  \n    Runtime dependencies (4)  \n",
          "expected_results": ""
        },
        "8": {
          "action": "Generated files tab  \n  * Click the \"Generated files\" tab (which should be selected by default)  \n  * Observe that the number of files in the table matches the number in parenthesis after the \"Generated files\" tab title. \n  * Observe that the columns in the table are \"File\" and \"Size\"  \n  * Observe that the table is sorted by \"File\" in ascending alphabetical order (A to Z). ",
          "expected_results": ""
        },
        "9": {
          "action": "Runtime dependencies tab  \n  * Click the \"Runtime dependencies\" tab  \n  * Observe that the number of dependencies in the table matches the number in parenthesis after the \"Runtime dependencies\" tab title.  \n  * Observe that the columns in the table are:  \n    \"Package, Version, Size\"  \n  * Observe that the table is sorted by Package in ascending alphabetical order (A to Z)  \n  * Observe that the package name values are live links to the respective package details page. ",
          "expected_results": "The information icon was eliminated on the columns that where self explanatory.  "
        },
        "10": {
          "action": "Package information box  \n  * Observe that there is a right-hand box, with information about the package, including in this example the fields:  \n    \"Size, License, Recipe, Recipe version, Layer, Layer branch, Layer commit\"  \n  * Observe that each of the field has a question mark icon, and that hovering will provide help text.  \n  * Observe that none of the values in the right-hand box are blank  \n  * Observe that the \"Recipe\" value is a live link to the respective recipe detail page.  ",
          "expected_results": ""
        }
      },
      "summary": "package_detail_in_toaster_UI"
    }
  },
  {
    "test": {
      "@alias": "toaster-unmanaged-mode.toaster-unmanaged.recipes:_Sort_the_content_of_the_recipes_table",
      "author": [
        {
          "email": "Yuan.Sun2@windriver.com",
          "name": "Yuan.Sun2@windriver.com"
        }
      ],
      "execution": {
        "1": {
          "action": "Start with a default Yocto project (qemux86), start the Toaster, and build \"bitbake core-image-minimal\".   \n \n",
          "expected_results": ""
        },
        "2": {
          "action": "In Toaster, select the build, and select the \"Recipes\" link in the left sidebar.  \n\n",
          "expected_results": ""
        },
        "3": {
          "action": "Make sure that by default the \"Recipes\" table is sorted by \"Recipe\" in ascending alphabetical order (A to Z).  \n\n",
          "expected_results": ""
        },
        "4": {
          "action": "Sort my \"Recipes\" table by \"Section\" and then navigate away by selecting a recipe(such as click busybox recipe). When you click \"back\" button in web-browser to go back to the \"Recipes\" table it should still be sorted by \"Section\".  \n\n",
          "expected_results": ""
        },
        "5": {
          "action": "Make sure all column headings are sortable, except \"Recipe version\", \"Dependencies\", \"Reverse dependencies\" and \"Layer commit\".  \n\n",
          "expected_results": ""
        },
        "6": {
          "action": "Sorting and \"Edit columns\" \nIf you use the \"Edit columns\" menu to hide the column with the applied sorting, we revert the sorting to the default sorting (i.e. \"Recipe\"). The default sorting always uses one of the core columns, which cannot be hidden using the \"Edit columns\" menu. \nSort recipes by \"section\" column heading. Then hide \"Section\" column by \"Edit columns\". Make sure that the \"Recipes\" table is sorted by \"Recipe\" in ascending alphabetical order (A to Z). \nNOTE: Bug 5919 is filed against the issue.  \n\n",
          "expected_results": ""
        },
        "7": {
          "action": "Sorting and search \nSearching should have no impact on the applied sorting. Any results returned should be sorted by the sorting criteria selected when the search query was submitted. \nSort recipes by \"section\" column heading. Input a string (such as \"lib\") in search box and click search button. Make sure results returned should be sorted by \"section\". \n",
          "expected_results": "NA"
        }
      },
      "summary": "recipes:_Sort_the_content_of_the_recipes_table."
    }
  },
  {
    "test": {
      "@alias": "toaster-unmanaged-mode.toaster-unmanaged.recipes:_Search_the_content_of_the_recipes_table",
      "author": [
        {
          "email": "Yuan.Sun2@windriver.com",
          "name": "Yuan.Sun2@windriver.com"
        }
      ],
      "execution": {
        "1": {
          "action": "recipes: Search the content of the recipes table  \n\n",
          "expected_results": ""
        },
        "2": {
          "action": "Start with a default Yocto project (qemux86), start the Toaster, and build \"bitbake core-image-minimal\".   \n \n",
          "expected_results": ""
        },
        "3": {
          "action": "In Toaster, select the build, and select the \"Recipes\" link in the left sidebar.  \n\n",
          "expected_results": ""
        },
        "4": {
          "action": "Observe the search is made of a text input field and a \"Search\" button in a toolbar above the table.  \n\n",
          "expected_results": ""
        },
        "5": {
          "action": "When no search query has been entered, we have placeholder text saying: \"Search recipes\".  \n\n",
          "expected_results": ""
        },
        "6": {
          "action": "Input \"lib\" in the text input field. The placeholder text disappears when the first character is typed. Click search button.  \n\n",
          "expected_results": ""
        },
        "7": {
          "action": " \n(1) returned results \nThe search string is kept in the text input field. The results returned occur. Click  \"Clear search\" icon to clear the search and display all recipes. \n(2) no results returned \nIf your search query returns no results, the page heading changes to \"No recipes found\", and we show you an alert with a search form and an option to show all recipes. Observe \"show all recipes\" button is available.  \n\n",
          "expected_results": ""
        },
        "8": {
          "action": "When I run a search, the search happens against the following columns (independently of they being shown or hidden): \n- Recipe \n- Recipe version \n- Recipe file \n- Section \n- License \n- Layer \n- Layer branch \n- Layer commit  \n\nInput a string to search for the above 8 column headings separately to make sure that the search happens against the columns.  \n\n \n\n",
          "expected_results": ""
        },
        "9": {
          "action": "Search, sorting and \"Edit columns\"  \nSearching does not change the state of the table: the same columns remain hidden and the same sorting applied when search results are displayed, but filters are cleared by the search results.\nSearch a string and make sure that the same columns remain hidden and the same sorting applied. Since filter feature of recipes (4296) is obsolete, we don't have to test filter.  \n\n",
          "expected_results": ""
        },
        "10": {
          "action": "Search and filters \nThe scope of the filters is the content currently on the table (this means all table pages, not only the one displayed). The scope of the search is always the content of the database.\nSince filter feature of recipes (4296) is obsolete, we don't have to test filter.  \n\nIf I run a search query, any filter applied afterwards will filter the content returned by the search query.  \n\nIf I run a search query while a filter is applied, the filter is cleared by the results of the search query (i.e. we display the results of the search query and clear the filter applied beforehand).",
          "expected_results": "NA"
        },
        "11": {
          "action": " The same happens if I click the \"Clear search\" icon when a filter is applied to a set of search results (both search results and applied filter are cleared, and the table shows all the tasks). \nSince filter feature of recipes (4296) is obsolete, we don't have to test filter. \n\n",
          "expected_results": "NA"
        }
      },
      "summary": "recipes:_Search_the_content_of_the_recipes_table."
    }
  },
  {
    "test": {
      "@alias": "toaster-unmanaged-mode.toaster-unmanaged.recipes:_Customise_the_columns_of_the_recipes_table",
      "author": [
        {
          "email": "Yuan.Sun2@windriver.com",
          "name": "Yuan.Sun2@windriver.com"
        }
      ],
      "execution": {
        "1": {
          "action": "Start with a default Yocto project (qemux86), start the Toaster, and build \"bitbake core-image-minimal\".   \n \n",
          "expected_results": ""
        },
        "2": {
          "action": "In Toaster, select the build, and select the \"Recipes\" link in the left sidebar.  \n\n",
          "expected_results": ""
        },
        "3": {
          "action": "* Observe that the default columns are:   \n    \"Recipe, Recipe version, Recipe file, Section , License, Layer\"   \n \n  * Click the \"Edit Columns\" button.  \n  * Observe that the fields are sorted as follows (with the indicated items greyed)  \n    [ ] Dependencies  \n    [x] Layer  \n    [ ] Layer branch  \n    [ ] Layer commit  \n    [x] License  \n    [x] Recipe                   {greyed}  \n    [x] Recipe file  \n    [x] Recipe version        {greyed}  \n    [ ] Reverse dependencies  \n    [x] Section    \n \n  * For each of the greyed items, attempt to click them. Observe that they do not change.  \n  * For each of the non-greyed items, attempt to click them. Observe that the respective column dynamically appears when checked and disappears when un-checked.\n",
          "expected_results": "NA"
        }
      },
      "summary": "recipes:_Customise_the_columns_of_the_recipes_table."
    }
  },
  {
    "test": {
      "@alias": "toaster-unmanaged-mode.toaster-unmanaged.recipes:_View_a_table_with_all_the_recipes_included_in_an_image_recipe",
      "author": [
        {
          "email": "Yuan.Sun2@windriver.com",
          "name": "Yuan.Sun2@windriver.com"
        }
      ],
      "execution": {
        "1": {
          "action": "Start with a default Yocto project (qemux86), start the Toaster, and build \"bitbake core-image-minimal\".   \n \n",
          "expected_results": ""
        },
        "2": {
          "action": "In Toaster, select the build, and select the \"Recipes\" link in the left sidebar.  \n\n",
          "expected_results": ""
        },
        "3": {
          "action": "By default, the all recipes table displays the following columns in this order: \n(1) Recipe (2) Recipe version: the target version and revision (3) Dependencies (4)Reverse Dependencies  (5) License: the value of the target's LICENSE variable (6) Layer: the name of the layer providing the target  \n\n",
          "expected_results": ""
        },
        "4": {
          "action": "In the \"Edit columns\" menu, table columns appear listed alphabetically. \nIn the table itself, the default order of columns is as follows: \n(1) Dependencies (2) Layer (3) Layer branch (4) Layer commit (5) License (6) Recipe (7) Recipe file  (8) Reverse dependencies (9) Section (10) Version  \n\nThe minimum table is made of the 2 columns that provide the information needed to identify a target: Recipe and Recipe version.",
          "expected_results": "NA"
        }
      },
      "summary": "recipes:_View_a_table_with_all_the_recipes_included_in_an_image_recipe"
    }
  },
  {
    "test": {
      "@alias": "toaster-unmanaged-mode.toaster-unmanaged.recipes:_View_detailed_information_about_a_recipe。",
      "author": [
        {
          "email": "Yuan.Sun2@windriver.com",
          "name": "Yuan.Sun2@windriver.com"
        }
      ],
      "execution": {
        "1": {
          "action": "Create a default Yocto project (qemux86), and start the Toaster.  \n \n  $ source poky/oe-init-build-env \n  $ source toaster start \n  $ bitbake core-image-minimal \n  $ http://localhost:8000/  \n \n",
          "expected_results": ""
        },
        "2": {
          "action": "Select the \"core-image-minimal\" build link  \n \n",
          "expected_results": ""
        },
        "3": {
          "action": "Select the \"Recipes\" link in the left sidebar  \n \nObserve that the recipes are listed in a table, and that each recipe name is a live URL link.  \n \n",
          "expected_results": ""
        },
        "4": {
          "action": "Observe that \"Packages\" link. It should have an appended value like \"(4)\". Now click on this link.  \n \nObserve: \n  a) The number of packages matches the previous number in parenthesis.  \n \n  b) Each package has a version and a size. The size may be zero.  \n \n  c) Note that if you hover on a package name, it will reveal a URL of the following form. This link should take you to the corresponding package detail page.  \n \n        localhost:8000/gui/build//package/   \n \n",
          "expected_results": ""
        },
        "5": {
          "action": "Observe that recipes of \"Build Dependencies\" link has an appended value like \"(0)\". Now click on this link.  \n \nObserve: \n  a) No dependencies appear, and you get a message of the form:  \n \n  \"$RECIPE_NAME_VERSION has no build dependencies.\"  \n \n",
          "expected_results": ""
        },
        "6": {
          "action": "Observe that \"Reverse build dependencies\" link has an appended value like \"(1)\". Now click on this link.  \n \nObserve: \n  a) The number of packages matches the previous number in parenthesis.  \n \n  b) The recipe dependency should be \"packagegroup-core-boot\",  \n \n  c) There should be a respective version displayed, for example \"1.0-r11\"  \n \n  d) If you hover on the recipe name, it will reveal a URL of the following form. This link should take you to the corresponding recipe detail page.  \n \n        localhost:8000/gui/build//recipe/  \n \n",
          "expected_results": ""
        },
        "7": {
          "action": "Click the breadcrumb \"Recipes\" at the top, locate the \"gdbm\" recipe, and select it.  \n \n",
          "expected_results": ""
        },
        "8": {
          "action": "Observe that \"Packages\" link. It should have an appended value like \"(0)\". Now click on this link.  \n \nObserve: \n  a) No packages appear, and you get a message of the form:  \n \n  \"$PACKAGE_NAME_VERSION does not build any packages.\"  \n \n",
          "expected_results": ""
        },
        "9": {
          "action": "Observe that \"Build dependencies\" link. It should have an appended value like \"(2)\". Now click on this link.  \n \nObserve: \n  a) The number of build dependencies matches the previous number in parenthesis.  \n \n  b) The recipe dependency should have values like \"gettext-native\" and \"libtool-cross\".  \n \n  c) There should be a respective versions displayed for each dependency.  \n \n  d) If you hover on a recipe name, it will reveal a URL of the following form. This link should take you to the corresponding recipe detail page.  \n \n        localhost:8000/gui/build//recipe/  \n \n1",
          "expected_results": ""
        },
        "10": {
          "action": "Observe that \"Reverse build dependencies\" link. It should have an appended value like \"(0)\". Now click on this link.  \n \nObserve: \n  a) No reverse dependencies appear, and you get a message of the form:  \n \n  \"$RECIPE_NAME_VERSION does not build any packages.",
          "expected_results": "NA"
        }
      },
      "summary": "recipes:_View_detailed_information_about_a_recipe。"
    }
  },
  {
    "test": {
      "@alias": "toaster-unmanaged-mode.toaster-unmanaged.variables:_Search_the_content_of_the_bitbake_variables_table",
      "author": [
        {
          "email": "Yuan.Sun2@windriver.com",
          "name": "Yuan.Sun2@windriver.com"
        }
      ],
      "execution": {
        "1": {
          "action": "Start with a default Yocto project (qemux86), start the Toaster, and build \"bitbake core-image-minimal\".   \n \n",
          "expected_results": ""
        },
        "2": {
          "action": "In Toaster, select the build, and select the \"Configuration\" link in the left sidebar. Then click \"BitBake variables\" tab.  \n\n",
          "expected_results": ""
        },
        "3": {
          "action": "When no search query has been entered, we have placeholder text saying: \"Search BitBake variables\".   \n\n",
          "expected_results": ""
        },
        "4": {
          "action": "Input \"lib\" in text input field. The placeholder text disappears when the first character is typed. Click search button.  \n\n",
          "expected_results": ""
        },
        "5": {
          "action": "Observe \"4 variables found\" is showed. (It may be other number.)  \n  If your search query returns no results, we display an alert with: \n    - A h3 heading saying: \"No variables found\" \n    - A search box \n    - The search query is showed in the text input shield. \n    - A link to show all variables. we show the variables table.  \n\n",
          "expected_results": ""
        },
        "6": {
          "action": "We provide a \"Clear search\" icon (icon-remove-sign). Click it to clear the search and display all variables. Check that the \"Clear search\" icon cannot be accessed using the tab key.   \n\n",
          "expected_results": ""
        },
        "7": {
          "action": "Verify search scope. \nWhen I run a search, the search happens against the following columns (independently of they being shown or hidden): \n- Variable \n- Value \n- Set in file \n- Description  \n\n",
          "expected_results": ""
        },
        "8": {
          "action": "Verify \"search, sorting and 'Edit columns'\" \nSearching does not change the state of the table: the same columns remain hidden and the same sorting applied \nwhen search results are displayed, but filters are cleared by the search results.  \n\n",
          "expected_results": ""
        },
        "9": {
          "action": "Search and filters \nIf I run a search query, any filter applied afterwards will filter the content returned by the search query. \nIf I run a search query while a filter is applied, the filter is cleared by the results of the search query. \n",
          "expected_results": "NA"
        }
      },
      "summary": "variables:_Search_the_content_of_the_bitbake_variables_table"
    }
  },
  {
    "test": {
      "@alias": "toaster-unmanaged-mode.toaster-unmanaged.variables:_Sort_the_content_of_the_bitbake_variables_table",
      "author": [
        {
          "email": "Yuan.Sun2@windriver.com",
          "name": "Yuan.Sun2@windriver.com"
        }
      ],
      "execution": {
        "1": {
          "action": "Start with a default Yocto project (qemux86), start the Toaster, and build \"bitbake core-image-minimal\".  \n \n",
          "expected_results": ""
        },
        "2": {
          "action": "In Toaster, select the build, and select the \"Configuration\" link in the left sidebar. Then click \"BitBake variables\" tab. \n\n",
          "expected_results": ""
        },
        "3": {
          "action": "By default, the \"variables\" table is sorted by \"Variable\" in ascending alphabetical order (A to Z). \n\n",
          "expected_results": ""
        },
        "4": {
          "action": "Make sure that \"Variable\" column is sortable (Developers have disabled sort function of all other columns to avoid bug 6004) \n\n",
          "expected_results": ""
        },
        "5": {
          "action": "Sorting and search \nSearching should have no impact on the applied sorting. Any results returned should be sorted by the sorting criteria selected when the search query was submitted.",
          "expected_results": "NA"
        }
      },
      "summary": "variables:_Sort_the_content_of_the_bitbake_variables_table."
    }
  },
  {
    "test": {
      "@alias": "toaster-unmanaged-mode.toaster-unmanaged.builds:_View_a_table_of_all_the_builds_run_for_a_certain_build_directory",
      "author": [
        {
          "email": "Yuan.Sun2@windriver.com",
          "name": "Yuan.Sun2@windriver.com"
        }
      ],
      "execution": {
        "1": {
          "action": "Start up toaster and open localhost:8000. ",
          "expected_results": ""
        },
        "2": {
          "action": "You can see 'Latest builds' section lists. - Builds in progress, sorted by inverse start time (last one starting at the top). - 3 latest completed builds, as long as they are less than 24 hours old.  If there are no builds in progress or builds completed within the last 24 hours we don't display it: the page shows only the 'All builds' section. ",
          "expected_results": ""
        },
        "3": {
          "action": "You can see the following column headings. You can see the their description in https://bugzilla.yoctoproject.org/attachment.cgi?id=1617. outcome, recipe, machine, started on, completed on, failed tasks, errors, warnings, time, image files, project",
          "expected_results": "NA"
        }
      },
      "summary": "builds:_View_a_table_of_all_the_builds_run_for_a_certain_build_directory"
    }
  },
  {
    "test": {
      "@alias": "toaster-unmanaged-mode.toaster-unmanaged.builds:_Customise_the_columns_of_the_builds_table",
      "author": [
        {
          "email": "Yuan.Sun2@windriver.com",
          "name": "Yuan.Sun2@windriver.com"
        }
      ],
      "execution": {
        "1": {
          "action": "Start up toaster.",
          "expected_results": ""
        },
        "2": {
          "action": "Create 2 builds, such as \"bitbake core-image-minimal\" and \"bitbake core-image-sato\". Wait for successful builds and then run: xdg-open http://localhost:8000/",
          "expected_results": ""
        },
        "3": {
          "action": "Enter \"All build\" table in web browser.",
          "expected_results": ""
        },
        "4": {
          "action": "Select a few item in \"Edit columns\" to show or hide them in all builds.",
          "expected_results": "Unchecked items changed to checked should immediately appear in the table.   Checked items changed to unchecked should immediately disappear from the table.   If you uncheck the column with the applied sorting, when you close the \"Edit columns\" menu the applied sorting should revert to the table default sorting. Bug 5919 is filed for the function."
        }
      },
      "summary": "builds:_Customise_the_columns_of_the_builds_table"
    }
  },
  {
    "test": {
      "@alias": "toaster-unmanaged-mode.toaster-unmanaged.packages:_View_a_table_with_all_the_packages_built_for_an_image_recipe",
      "author": [
        {
          "email": "Yuan.Sun2@windriver.com",
          "name": "Yuan.Sun2@windriver.com"
        }
      ],
      "execution": {
        "1": {
          "action": "Start with a default Yocto project (qemux86), start the Toaster, and build \"bitbake core-image-minimal\". ",
          "expected_results": ""
        },
        "2": {
          "action": "In Toaster, select the build, and select the \"Packages\" link in the left sidebar. ",
          "expected_results": ""
        },
        "3": {
          "action": "By default, the built packages table displays the following columns in this order:  Package, Package version, Size ",
          "expected_results": ""
        },
        "4": {
          "action": "Apart from the columns shown by default, the following additional columns are also available to users via the \"Edit columns\" menu:  Layer, Layer branch, Layer commit, License, Recipe version  ",
          "expected_results": ""
        },
        "5": {
          "action": "Enable these columns and observe that table columns appear listed alphabetically in the \"Edit columns\" menu (1)Package (2)Package version (3)Size (4)License (5)Recipe (6)Recipe version (7)Layer (8)Layer branch (9)Layer commit ",
          "expected_results": ""
        },
        "6": {
          "action": "The minimum table is made of the 2 columns that provide the information needed to identify a package: Package and Package version. Their corresponding checkboxes in the \"Edit columns\" menu appear always selected and are in an inactive state.  ",
          "expected_results": "NA"
        }
      },
      "summary": "packages:_View_a_table_with_all_the_packages_built_for_an_image_recipe"
    }
  },
  {
    "test": {
      "@alias": "toaster-unmanaged-mode.toaster-unmanaged.packages:_Sort_the_content_of_the_packages_table",
      "author": [
        {
          "email": "Yuan.Sun2@windriver.com",
          "name": "Yuan.Sun2@windriver.com"
        }
      ],
      "execution": {
        "1": {
          "action": "Start with a default Yocto project (qemux86), start the Toaster, and build \"bitbake core-image-minimal\". ",
          "expected_results": ""
        },
        "2": {
          "action": "In Toaster, select the build, and select the \"Packages\" link in the left sidebar. ",
          "expected_results": ""
        },
        "3": {
          "action": "Observe that by default the \"built packages\" table is sorted by \"Package\" in ascending alphabetical order (A to Z). ",
          "expected_results": ""
        },
        "4": {
          "action": "Click \"Size\" column heading to sort my \"built packages\" table by \"Size\". Then navigate away by selecting a package and you can see the package page. After click \"go back\" button in browser to return to the \"built packages\" table it should still be sorted by \"Size\". ",
          "expected_results": ""
        },
        "5": {
          "action": "Observe that all except \"Package version\", \"Recipe version\", \"Layer commit\" are sortable. ",
          "expected_results": ""
        },
        "6": {
          "action": "If you use the \"Edit columns\" menu to hide the column with the applied sorting, we revert the sorting to the default sorting (i.e. \"Package\"). The default sorting always uses one of the core columns, which cannot be hidden using the \"Edit columns\" menu.   Bug 5919 is filed for the issue. ",
          "expected_results": ""
        },
        "7": {
          "action": "Searching should have no impact on the applied sorting. Any results returned should be sorted by the sorting criteria selected when the search query was submitted.  Sort packages by size and search a string. Observe that results returned should be sorted by size. ",
          "expected_results": ""
        },
        "8": {
          "action": "In Toaster, select the build, and select the \"core-image*\" link in the left sidebar. Observe that by default the \"built packages\" table is sorted by \"Package\" in ascending alphabetical order (A to Z).  ",
          "expected_results": ""
        },
        "9": {
          "action": "If choose to sort my \"included packages\" table by \"Size\" and then navigate away by selecting a package, when I go back to the \"included packages\" table it should still be sorted by \"Size\".  ",
          "expected_results": ""
        },
        "10": {
          "action": "Enable all columns by \"Edit columns\". All except \"Package version\", \"Recipe version\", \"Dependencies\", \"Reverse dependencies\", \"Layer commit\", should be sortable.  ",
          "expected_results": ""
        },
        "11": {
          "action": "If you use the \"Edit columns\" menu to hide the column with the applied sorting, we revert the sorting to the default sorting (i.e. \"Package\"). The default sorting always uses one of the core columns, which cannot be hidden using the \"Edit columns\" menu.  Bug 5919 is filed for the issue.  ",
          "expected_results": ""
        },
        "12": {
          "action": "Searching should have no impact on the applied sorting. Any results returned should be sorted by the sorting criteria selected when the search query was submitted. Sort packages by size and search a string. Observe that results returned should be sorted by size.",
          "expected_results": "NA"
        }
      },
      "summary": "packages:_Sort_the_content_of_the_packages_table"
    }
  },
  {
    "test": {
      "@alias": "toaster-unmanaged-mode.toaster-unmanaged.packages:_Customise_the_columns_of_the_packages_table",
      "author": [
        {
          "email": "Yuan.Sun2@windriver.com",
          "name": "Yuan.Sun2@windriver.com"
        }
      ],
      "execution": {
        "1": {
          "action": "Start with a default Yocto project (qemux86), start the Toaster, and build \"bitbake core-image-minimal\". ",
          "expected_results": ""
        },
        "2": {
          "action": "In Toaster, select the build, and select the \"Packages\" link in the left sidebar. ",
          "expected_results": ""
        },
        "3": {
          "action": "Observe that by default the \"built packages\" table is sorted by \"Package\" in ascending alphabetical order (A to Z). ",
          "expected_results": ""
        },
        "4": {
          "action": "Select 1 column in \"Edit column\" to show the column. ",
          "expected_results": ""
        },
        "5": {
          "action": "Deselect 1 column in \"Edit column\" to hide 1 column by \"Edit columns\".",
          "expected_results": "NA"
        }
      },
      "summary": "packages:_Customise_the_columns_of_the_packages_table"
    }
  },
  {
    "test": {
      "@alias": "toaster-unmanaged-mode.toaster-unmanaged.packages:_Search_the_content_of_the_packages_table",
      "author": [
        {
          "email": "Yuan.Sun2@windriver.com",
          "name": "Yuan.Sun2@windriver.com"
        }
      ],
      "execution": {
        "1": {
          "action": "Start with a default Yocto project (qemux86), start the Toaster, and build \"bitbake core-image-minimal\". ",
          "expected_results": ""
        },
        "2": {
          "action": "In Toaster, select the build, and select the \"Packages\" link in the left sidebar. ",
          "expected_results": ""
        },
        "3": {
          "action": "Observe that by default the \"built packages\" table is sorted by \"Package\" in ascending alphabetical order (A to Z). ",
          "expected_results": ""
        },
        "4": {
          "action": "When no search query has been entered, we have placeholder text saying: \"Search packages built\". The placeholder text disappears when the first character is typed. ",
          "expected_results": ""
        },
        "5": {
          "action": "When a search query has been submitted and results returned: ▪ We keep the search string in the text input field. ▪ We provide a \"Clear search\" icon (icon-remove-sign). Click it to clear the search and display all packages. ▪ We change the page heading to indicate the number of results returned by the search query. ",
          "expected_results": ""
        },
        "6": {
          "action": "If your search query returns no results, the page heading changes to \"No packages found\", and we show you an alert with a search form and an option to show all packages. ",
          "expected_results": ""
        },
        "7": {
          "action": "Searching does not change the state of the table: the same columns remain hidden and the same sorting applied. ",
          "expected_results": ""
        },
        "8": {
          "action": "When I run a search, the search happens against the following columns (independently of they being shown or hidden): - Package - Package version - License - Recipe - Recipe version - Layer - Layer branch - Layer commit ",
          "expected_results": ""
        },
        "9": {
          "action": "Hide all columns except \"Package\" and \"Package version\". Search a string which is included in other hidden columns, not the 2 columns. See if returned results occur. ",
          "expected_results": ""
        },
        "10": {
          "action": "In Toaster, select the build, and select the \"core-image*\" link in the left sidebar. Observe that by default the \"included packages\" table is sorted by \"Package\" in ascending alphabetical order (A to Z). Rerun tests according to step 4~9.",
          "expected_results": "NA"
        }
      },
      "summary": "packages:_Search_the_content_of_the_packages_table"
    }
  },
  {
    "test": {
      "@alias": "toaster-unmanaged-mode.toaster-unmanaged.View_detailed_information_about_a_layer",
      "author": [
        {
          "email": "Yuan.Sun2@windriver.com",
          "name": "Yuan.Sun2@windriver.com"
        }
      ],
      "execution": {
        "1": {
          "action": "Start with a default Yocto project (qemux86), start the Toaster, and build \"bitbake core-image-minimal\". \n\n",
          "expected_results": ""
        },
        "2": {
          "action": "Make sure that layer information is shown in: \n* recipes table \n    All builds-> core-image-minimal-> recipes \n    Select \"Layer\", \"Layer branch\", \"Layer commit\" in Edit columns and observe the 3 columns are showed. Note that the \"Layer branch\" column can be empty.   \n\n* recipe details  \n    All builds-> core-image-minimal-> recipes \n    Click a recipe and you can see \"Layer\", \"Layer branch\", \"Layer commit\", \"Recipe details\" information.  Note that \"Layer branch\" is not required. If there is no layer branch, you should not see the \"Layer branch\" item on the list.",
          "expected_results": "NA"
        },
        "3": {
          "action": "built packages table \n    All builds-> core-image-minimal-> packages \n    Select \"Layer\", \"Layer branch\", \"Layer commit\"  in Edit columns and observer the 3 columns is showed. Note that the \"Layer branch\" column can be empty.   \n\n* built package details \n    All builds-> core-image-minimal-> packages \n    Click a package and you can see \"Layer\", \"Layer branch\", \"Layer commit\" in package information. Note that \"Layer branch\" is not required. If there is no layer branch, you should not see the \"Layer branch\" item on the list.  \n\n* image information \n     All builds-> core-image-minimal-> core-image-minimal(images) \n    Select \"Layer\", \"Layer branch\", \"Layer commit\" in Edit columns and observer the 3 columns is showed.",
          "expected_results": "NA"
        },
        "4": {
          "action": "Note that the \"Layer branch\" column can be empty.   \n\n* installed package details \n    All builds-> core-image-minimal-> core-image-minimal(images) \n    Click a package and you can see layer information in package information. Note that \"Layer branch\" is not required. If there is no layer branch, you should not see the \"Layer branch\" item on the list.  \n\n* configuration \n    All builds-> core-image-minimal-> Configuration \n    You can see \"Layer\", \"Layer branch\", \"Layer commit\"  in configuration summary. Note that the \"Layer branch\" column can be empty.  \n\n* build dashboard \n    All builds-> core-image-minimal \n    You can see \"Layers\" in build summary. ",
          "expected_results": "NA"
        }
      },
      "summary": "View_detailed_information_about_a_layer"
    }
  },
  {
    "test": {
      "@alias": "toaster-unmanaged-mode.toaster-unmanaged.Select_the_number_of_table_rows_displayed_per_page",
      "author": [
        {
          "email": "Yuan.Sun2@windriver.com",
          "name": "Yuan.Sun2@windriver.com"
        }
      ],
      "execution": {
        "1": {
          "action": "Start with a default Yocto project (qemux86), start the Toaster, and build \"bitbake core-image-minimal\". ",
          "expected_results": ""
        },
        "2": {
          "action": "In Toaster, select the build, and select the \"Packages\" link in the left sidebar. ",
          "expected_results": ""
        },
        "3": {
          "action": "Users can select the number of rows they want to see in a table using the \"Show rows\" dropdown menu, which displays above and below each table. The options of the \"Show rows\" dropdown are: 10, 25, 50, 100, 150. ",
          "expected_results": ""
        },
        "4": {
          "action": "The last selected option from the \"Show rows\" menu should be remembered:  * Select one option, for example 10 * Click on a package name to navigate away from the built packages table * Click on the \"Packages\" link in the breadcrumb at the top of the page to go back to the packages table  Note that 25 is still selected in the \"Show rows\" menu.  ",
          "expected_results": ""
        },
        "5": {
          "action": "Observe that the pagination widget is made of: - A \"Previous\" button - A \"Next\" button - A maximum of 5 page buttons.  ",
          "expected_results": ""
        },
        "6": {
          "action": "See the pagination function of \"Tasks\", \"Recipes\" links according to steps 3~4.",
          "expected_results": "Expected result for step 4: This widget has no previous or next button if testing in toaster 2.2. see Bug 9831"
        }
      },
      "summary": "Select_the_number_of_table_rows_displayed_per_page"
    }
  },
  {
    "test": {
      "@alias": "toaster-unmanaged-mode.toaster-unmanaged.View_detailed_configuration_information_for_a_build",
      "author": [
        {
          "email": "Yuan.Sun2@windriver.com",
          "name": "Yuan.Sun2@windriver.com"
        }
      ],
      "execution": {
        "1": {
          "action": "Start with a default Yocto project (qemux86), start the Toaster, and build \"bitbake core-image-minimal\". ",
          "expected_results": ""
        },
        "2": {
          "action": "In Toaster, select the build, and select the \"Configuration\" link in the left sidebar. ",
          "expected_results": ""
        },
        "3": {
          "action": "Observe that the configuration page has 2 tabs: - Summary - BitBake variables The Summary tab is the default tab. ",
          "expected_results": ""
        },
        "4": {
          "action": "The following content is included in summary tab.  (1) Build configuration  (2) Layers (Layer, Layer branch - if any, Layer commit) ",
          "expected_results": ""
        },
        "5": {
          "action": "Observe that \"BitBake variables\" tab includes \"Variable\", \"Value\", \" Set in file\", \"Description\" columns. ",
          "expected_results": ""
        },
        "6": {
          "action": "Click filter button of \"Set in file\" column. Select \"Local configuration variables\" and click \"Apply\" button to see if filter function works well. ",
          "expected_results": ""
        },
        "7": {
          "action": "In the \"Edit columns\" menu, table columns appear listed alphabetically: Description, Set in file, Value, Variable ",
          "expected_results": ""
        },
        "8": {
          "action": "The minimum table is made of the \"Variable\" and \"Value\" columns. ",
          "expected_results": ""
        },
        "9": {
          "action": "Click a variable and a \"History of ${variable}\" dialog will occur. The modal dialog shows the variable value followed by the history table, which has the following columns: - Order: indicates the sequence in which the files set the variable - Configuration file: the location in disk of the file that set the variable - Operation: the value of the operation field as stored in the database. - Line number: the line number where the operation is performed in the configuration file.  For such variables, whose value is an empty string, the Value cell in the variables table isempty, which is probably the right thing. In the modal, instead of the variable value, we show an alert (with the class .alert-info) saying: \"The value of  is an empty string\"  ",
          "expected_results": ""
        },
        "10": {
          "action": "Click arrow links in description tab to see linking variables to the Yocto Project reference manual.",
          "expected_results": "NA"
        }
      },
      "summary": "View_detailed_configuration_information_for_a_build"
    }
  },
  {
    "test": {
      "@alias": "toaster-unmanaged-mode.toaster-unmanaged.variables:_Customise_the_columns_of_the_bitbake_variables_table",
      "author": [
        {
          "email": "Yuan.Sun2@windriver.com",
          "name": "Yuan.Sun2@windriver.com"
        }
      ],
      "execution": {
        "1": {
          "action": "Start with a default Yocto project (qemux86), start the Toaster, and build \"bitbake core-image-minimal\". ",
          "expected_results": ""
        },
        "2": {
          "action": "In Toaster, select the build, and select the \"Configuration\" link in the left sidebar. Then click \"BitBake variables\" tab. ",
          "expected_results": ""
        },
        "3": {
          "action": "Show or hide columns by select or deselect options of \"Edit columns\".",
          "expected_results": "NA"
        }
      },
      "summary": "variables:_Customise_the_columns_of_the_bitbake_variables_table"
    }
  },
  {
    "test": {
      "@alias": "toaster-unmanaged-mode.toaster-unmanaged.variables:_Filter_the_content_of_the_bitbake_variables_table",
      "author": [
        {
          "email": "Yuan.Sun2@windriver.com",
          "name": "Yuan.Sun2@windriver.com"
        }
      ],
      "execution": {
        "1": {
          "action": "Start with a default Yocto project (qemux86), start the Toaster, and build \"bitbake core-image-minimal\". \n \n",
          "expected_results": ""
        },
        "2": {
          "action": "In Toaster, select the build, and select the \"Configuration\" link in the left sidebar. Then click \"BitBake variables\" tab. \n\n",
          "expected_results": ""
        },
        "3": {
          "action": "Observe \"Set in file\" and \"Description\" columns have filters. \n\n",
          "expected_results": ""
        },
        "4": {
          "action": "Filters are mutually exclusive. Only one column filter can be applied to a table at any given time.  \n\n",
          "expected_results": ""
        },
        "5": {
          "action": "Filters are overridden by search. \nThe scope of the filters is the content currently on the table. \nThe scope of the search is always the full content of the database. \nSo: \n- if I run a search query, any filter applied afterwards will filter the content returned by the search query. \nSearch a string and apply a filter. Observe it would filter the content returned by the search query.  \n\n- if I run a search query while a filter is applied, the filter is overridden by the results of the search query. \nApply a filter and search a string. Observe that the previous filtered result is overridden by the search. ",
          "expected_results": "NA"
        }
      },
      "summary": "variables:_Filter_the_content_of_the_bitbake_variables_table"
    }
  },
  {
    "test": {
      "@alias": "toaster-unmanaged-mode.toaster-unmanaged.View_and_navigate_the_full_directory_structure_of_built_images",
      "author": [
        {
          "email": "Yuan.Sun2@windriver.com",
          "name": "Yuan.Sun2@windriver.com"
        }
      ],
      "execution": {
        "1": {
          "action": "Start with a default Yocto project (qemux86), start the Toaster, and build \"bitbake core-image-minimal\".  \n \n",
          "expected_results": ""
        },
        "2": {
          "action": "In Toaster, select the build, and select the \"core-image-minimal\" link in the left sidebar.  \n\n",
          "expected_results": ""
        },
        "3": {
          "action": "Observe image information page has 2 tabs: \n- Packages included: this tab shows a table with all the packages installed in the image. The tab label includes the total number of packages listed in the table and their size. \n- Directory structure: this tab shows all the files included in the image.  \n\n",
          "expected_results": ""
        },
        "4": {
          "action": "By default, the included packages table displays the following columns in this order: \nPackage, Package version, Size, Dependencies  \n\n",
          "expected_results": ""
        },
        "5": {
          "action": "Apart from the columns shown by default, the following additional columns are also available to users via the \"Edit columns\" menu: \nLayer, Layer branch, Layer commit, License, Recipe, Recipe version.  \n\n",
          "expected_results": ""
        },
        "6": {
          "action": "The minimum table is made of the 2 columns that provide the information needed to identify a package: Package and Package version.  \n\n",
          "expected_results": ""
        },
        "7": {
          "action": "By default, the directory structure table shows the top level directories and files in the file system.\nThe table includes the following columns: \nDirectory/File, Symbolic link to, Source package, Size, Permissions, Owner, Group \nOpen some directories and see files. ",
          "expected_results": "NA"
        }
      },
      "summary": "View_and_navigate_the_full_directory_structure_of_built_images"
    }
  },
  {
    "test": {
      "@alias": "toaster-unmanaged-mode.toaster-unmanaged.View_a_summary_of_all_the_information_available_for_a_build",
      "author": [
        {
          "email": "Yuan.Sun2@windriver.com",
          "name": "Yuan.Sun2@windriver.com"
        }
      ],
      "execution": {
        "1": {
          "action": "Start with a default Yocto project (qemux86), start the Toaster, and build \"bitbake core-image-minimal\".  \n \n",
          "expected_results": ""
        },
        "2": {
          "action": "In Toaster, select the build.  \n\n",
          "expected_results": ""
        },
        "3": {
          "action": "A 'Build dashboard' page is showed. \nThe 'Build dashboard' page has two main states: \n(1) Success state: when the build completes successfully. In the success state, if the build target(s) include an image recipe, the page displays an image content module, and the left navigation has an \"Images\" section at the top. \n(2) Fail state: when the build fails (shown in this page). In the fail state, the page always displays an errors content module, and the left navigation does not have an \"Images\" section at the top.  \n\n",
          "expected_results": ""
        },
        "4": {
          "action": "Observe that the page provides access to all information available for the selected build. \n(1) Images \n(2) Build: this group provides links to the following pages: \nConfiguration, Tasks, Recipes, Packages \n(3) Performance: this group provides links to the following pages: \nTime, CPU usage, Disk I/O  \n\n",
          "expected_results": ""
        },
        "5": {
          "action": "The page heading is made of the build target(s) and the machine, such as \"core-image-minimal qemux86\". If the build has more than one target, they show in ascending alphabetical order (A to Z) both in the page heading and in the \"Images\" section of the left navigation. If the build was successful, there is an image content module for each target that is an image recipe. The modules also show in ascending alphabetical order by target name. \n\n",
          "expected_results": ""
        },
        "6": {
          "action": "Packages included, total package size, license manifest, image files are included in the images section.  \n\n",
          "expected_results": ""
        },
        "7": {
          "action": "The information of Machine, Distro, Layers is included in configuration content module of \"Build summary\" section. \nThe information of \"Total number of task\", \"Tasks executed\", \" Tasks not executed\", \"Reuse\" is included in the tasks content module. \nThe information of \"Recipes built\" and \"Packages built\" is included in the \"Recipes&Packages\" content module. ",
          "expected_results": "NA"
        }
      },
      "summary": "View_a_summary_of_all_the_information_available_for_a_build"
    }
  },
  {
    "test": {
      "@alias": "toaster-unmanaged-mode.toaster-unmanaged.Display_the_content_of_error_messages_and_warnings",
      "author": [
        {
          "email": "Yuan.Sun2@windriver.com",
          "name": "Yuan.Sun2@windriver.com"
        }
      ],
      "execution": {
        "1": {
          "action": "Start with a default Yocto project (qemux86), start the Toaster, and create a successful build and a failed build. You can force a build to terminate by ctrl+c. ",
          "expected_results": ""
        },
        "2": {
          "action": "Observe that the number of errors and warnings thrown by a build shows in both 'All builds' page and the 'Latest builds' section. ",
          "expected_results": ""
        },
        "3": {
          "action": "Observe that the number and content of errors and warnings thrown by a build shows in the 'Build dashboard' page. ",
          "expected_results": ""
        },
        "4": {
          "action": "Click warning or error links to see warning and error details.  ",
          "expected_results": "NA"
        }
      },
      "summary": "Display_the_content_of_error_messages_and_warnings."
    }
  },
  {
    "test": {
      "@alias": "toaster-unmanaged-mode.toaster-unmanaged.Build_summary_information_fully_implemented",
      "author": [
        {
          "email": "Yuan.Sun2@windriver.com",
          "name": "Yuan.Sun2@windriver.com"
        }
      ],
      "execution": {
        "1": {
          "action": "Start with a default Yocto project (qemux86), start the Toaster, and create 4 builds. \na) a successful build with images (bitbake core-image-minimal) \nb) a successful build without images (bitbake mtools-native) \nc) a failed build with errors and warnings (run \"bitbake core-image-sato\", then press control+c to terminate the build)",
          "expected_results": ""
        },
        "2": {
          "action": "In Toaster, select a core-image-minimal build.",
          "expected_results": ""
        },
        "3": {
          "action": "Observe that there is a 'Build dashboard' page captured by Toaster. The page does not exist for builds in progress, only for finished builds. \nThe 'Build dashboard' page is made of: \na) Breadcrumb \nb) Navigation \n    IMAGES: core-image-minimal \n    BUILD: \n        Configuration \n        Tasks \n        Recipes \n        Packages \n    PERFORMANCE: \n        Time \n        CPU usage \n        Disk I/O \nc) Page heading (core-image-minimal qemux86) \nd) Section heading (Images, Build summary) \ne) Build status notification (Completed on xx/xx/xx... Build time:xx:xx:xx)",
          "expected_results": ""
        },
        "4": {
          "action": "Observe \"images\" section is made of the following \n.\na) Heading: core-image-minimal, which links to the \"Packages included\" tab of the image information page \nb) Number of packages installed: (packages included xx), which is a link to the \"Packages included\" tab of the image information page \nc) Total installed package size: xxMB \nd) License manifest (which is a link to the \"Packages included\" tab of the information page with the following columns showing: \"Package\", \"Package version\", \"License\" and \"Recipe\". We have bug 6079 open for this). Next to the license manifest is the path to the directory where you can find the license manifest file.  \n \ne) Image files (rootfs file names and rootfs file sizes)",
          "expected_results": ""
        },
        "5": {
          "action": "Observe \"Build summary\" section is made of the following. \na) Configuration (which is a link to the configuration page): \n    Machine \n    Distro \n    Layers (sorted in alphabetical order) \nb) Tasks (which is a link to the tasks page) \n    Total number of tasks (which is a link to the tasks page) \n    Tasks executed (which is a link to the tasks page with the tasks executed filter applied) \n    Tasks not executed (which is a link to the tasks pages with the tasks not executed filter applied)\n    Reuse \nc) Note that \"Total number of tasks\" should equal number of \"Tasks executed\" +  number of \"Tasks not executed\" \nd) Recipes (which is a link to the recipes page) & Packages (which is a link to the packages built page) ",
          "expected_results": ""
        },
        "6": {
          "action": "  Number of recipes built (which is a link to the recipes page)  \n \n    Number of packages built (which is a link to the packages built page)",
          "expected_results": ""
        },
        "7": {
          "action": "Return to localhost:8000 and select a successful build without images (mtools-native) \n.\nObserve the build dashboard for a successful build of a target that is not an image recipe. There is no image content module, and no \"Images\" section in the left navigation.",
          "expected_results": ""
        },
        "8": {
          "action": "Return to localhost:8000 and select the failed build (core-image-sato). Observe the build dashboard for the failed build.  \n \na) the errors content module: \nThis module exists for those builds that throw error(s). It appears immediately below the build status notification. \nThe module has 2 states: \n▪ Expanded (shows number of errors and error content) \n▪ Collapsed (shows only the number of errors) \nBy default, the errors module is in the expanded state. \nErrors content modules include the following information: \n(1.1) A heading, which indicates the number of errors thrown by the build, and toggles the module between its 2 states on click. ",
          "expected_results": "NA"
        },
        "9": {
          "action": "Transitions between states should use a slide up / slide down animation. \n(1.2) Error(s) content  \n\nb) the warning content module: \nThis module exists for those builds that throw warning(s). \nIt is the last content module shown on the build dashboard. \nThe module has 2 states: \n▪ Expanded (shows number of warnings and warning content) \n▪ Collapsed (shows only the number of warnings) \nBy default, the warning module is in the collapsed state. Warnings content modules include the following information: \n(2.1) A heading, which indicates the number of warnings thrown by the build, and toggles the module between its 2 \nstates on click. Transitions between states should use a slide up / slide down animation. \n(2.2) Warning(s) content ",
          "expected_results": "NA"
        }
      },
      "summary": "Build_summary_information_fully_implemented"
    }
  }
]