# Copyright (c) 2021 Project CHIP Authors
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# Auto-generated scripts for harness use only, please review before automation. The endpoints and cluster names are currently set to default

name: 3.12.6. [TC-CONTENTLAUNCHER-10.7] Content Search Verification

PICS:
    - CONTENTLAUNCHER.S

config:
    nodeId: 0x12344321
    cluster: "Basic Information"
    endpoint: 0

tests:
    - label:
          "TH sends a LaunchContent command to the DUT with search parameter
          consisting of Type As 'Actor' and Value as An Actors name, for
          example, Gaby sHoffman"
      PICS: CONTENTLAUNCHER.S.C00.Rsp
      verification: |
          The TH commands for this test step can be invoked using chip-tool (when DUT is a commissionee) or tv-casting-app (when DUT is a commissioner):
          ./chip-tool contentlauncher launch-content '{"parameterList": [ { "type": 0, "value": "Gaby sHoffman", "externalIDList": [ { "name": "exampleName", "value": "exampleValue"} ] } ] }' 0 1 1
          ./chip-tv-casting-app contentlauncher launch-content '{"parameterList": [ { "type": 0, "value": "Gaby sHoffman", "externalIDList": [ { "name": "exampleName", "value": "exampleValue"} ] } ] }' 0 1 1

          On TH  verify the success response (value 0) received  from DUT
          [1651225059.893636][4190:4195] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_050A Command 0x0000_0002
          [1651225059.893741][4190:4195] CHIP:TOO:   LaunchResponse: {
          [1651225059.893814][4190:4195] CHIP:TOO:     status: 0
          [1651225059.893869][4190:4195] CHIP:TOO:     data: exampleData
          [1651225059.893924][4190:4195] CHIP:TOO:    }

          tv-app DUT shows matches via console:

          [1653236823721] [74577:2234439] CHIP: [ZCL]  TEST CASE found match=TV Show Example type=0
      disabled: true

    - label:
          "TH sends a LaunchContent command to the DUT with search parameter
          consisting of Type As 'Channel' and Value as Channel Name name, for
          example, 'PBS'"
      PICS: CONTENTLAUNCHER.S.C00.Rsp
      verification: |
          The TH commands for this test step can be invoked using chip-tool (when DUT is a commissionee) or tv-casting-app (when DUT is a commissioner):
          ./chip-tool contentlauncher launch-content '{"parameterList": [ { "type": 1, "value": "PBS", "externalIDList": [ { "name": "exampleName", "value": "exampleValue"} ] } ] }' 0 1 1
          ./chip-tv-casting-app contentlauncher launch-content '{"parameterList": [ { "type": 1, "value": "PBS", "externalIDList": [ { "name": "exampleName", "value": "exampleValue"} ] } ] }' 0 1 1

          On TH  verify the success response (value 0) received  from DUT
          [1651225141.737648][4203:4209] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_050A Command 0x0000_0002
          [1651225141.737778][4203:4209] CHIP:TOO:   LaunchResponse: {
          [1651225141.737854][4203:4209] CHIP:TOO:     status: 0
          [1651225141.737936][4203:4209] CHIP:TOO:     data: exampleData
          [1651225141.737994][4203:4209] CHIP:TOO:    }

          tv-app DUT shows matches via console:

          [1653236823721] [74577:2234439] CHIP: [ZCL]  TEST CASE found match=TV Show Example type=1
      disabled: true

    - label:
          "TH sends a LaunchContent command to the DUT with search parameter
          consisting of Type As 'Character' and Value as Characters name,for
          example, Snow White"
      PICS: CONTENTLAUNCHER.S.C00.Rsp
      verification: |
          The TH commands for this test step can be invoked using chip-tool (when DUT is a commissionee) or tv-casting-app (when DUT is a commissioner):
          ./chip-tool contentlauncher launch-content '{"parameterList": [ { "type": 2, "value": "Snow White", "externalIDList": [ { "name": "foo", "value": "2"} ] } ] }' 0 1 1
          ./chip-tv-casting-app contentlauncher launch-content '{"parameterList": [ { "type": 2, "value": "Snow White", "externalIDList": [ { "name": "foo", "value": "2"} ] } ] }' 0 1 1

          On TH  verify the success response (value 0) received  from DUT
          [1651578539.231066][9699:9704] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_050A Command 0x0000_0002
          [1651578539.231135][9699:9704] CHIP:TOO:   LaunchResponse: {
          [1651578539.231184][9699:9704] CHIP:TOO:     status: 0
          [1651578539.231214][9699:9704] CHIP:TOO:     data: exampleData
          [1651578539.231247][9699:9704] CHIP:TOO:    }

          tv-app DUT shows matches via console:

          [1653236823721] [74577:2234439] CHIP: [ZCL]  TEST CASE found match=TV Show Example type=2
      disabled: true

    - label:
          "TH sends a LaunchContent command to the DUT with search parameter
          consisting of Type As 'Director' and Value as Directors name, for
          example, Spike Lee"
      PICS: CONTENTLAUNCHER.S.C00.Rsp
      verification: |
          The TH commands for this test step can be invoked using chip-tool (when DUT is a commissionee) or tv-casting-app (when DUT is a commissioner):
          ./chip-tool contentlauncher launch-content '{"parameterList": [ { "type": 3, "value": "Spike Lee", "externalIDList": [ { "name": "Spike Lee", "value": "3"} ] } ] }' 0 1 1
          ./chip-tv-casting-app contentlauncher launch-content '{"parameterList": [ { "type": 3, "value": "Spike Lee", "externalIDList": [ { "name": "Spike Lee", "value": "3"} ] } ] }' 0 1 1

          On TH  verify the success response (value 0) received  from DUT
          [1651578561.129609][9706:9711] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_050A Command 0x0000_0002
          [1651578561.129678][9706:9711] CHIP:TOO:   LaunchResponse: {
          [1651578561.129725][9706:9711] CHIP:TOO:     status: 0
          [1651578561.129760][9706:9711] CHIP:TOO:     data: exampleData
          [1651578561.129796][9706:9711] CHIP:TOO:    }

          tv-app DUT shows matches via console:

          [1653236823721] [74577:2234439] CHIP: [ZCL]  TEST CASE found match=TV Show Example type=3
      disabled: true

    - label:
          "TH sends a LaunchContent command to the DUT with search parameter
          consisting of Type As 'Event' and Value as An Events name , for
          example 'Football games'"
      PICS: CONTENTLAUNCHER.S.C00.Rsp
      verification: |
          The TH commands for this test step can be invoked using chip-tool (when DUT is a commissionee) or tv-casting-app (when DUT is a commissioner):
          ./chip-tool contentlauncher launch-content '{"parameterList": [ { "type": 4, "value": "Football games", "externalIDList": [ { "name": "exampleName", "value": "exampleValue"} ] } ] }' 0 1 1
          ./chip-tv-casting-app contentlauncher launch-content '{"parameterList": [ { "type": 4, "value": "Football games", "externalIDList": [ { "name": "exampleName", "value": "exampleValue"} ] } ] }' 0 1 1

          On TH  verify the success response (value 0) received  from DUT
          [1651578612.348295][9717:9722] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_050A Command 0x0000_0002
          [1651578612.348350][9717:9722] CHIP:TOO:   LaunchResponse: {
          [1651578612.348388][9717:9722] CHIP:TOO:     status: 0
          [1651578612.348413][9717:9722] CHIP:TOO:     data: exampleData
          [1651578612.348437][9717:9722] CHIP:TOO:    }

          tv-app DUT shows matches via console:

          [1653236636669] [74577:2229859] CHIP: [ZCL]  TEST CASE found match=Sports Example type=4
      disabled: true

    - label:
          "TH sends a LaunchContent command to the DUT with search parameter
          consisting of Type As 'Franchise' and Value as Franchises name,for
          example 'Star Wars'"
      PICS: CONTENTLAUNCHER.S.C00.Rsp
      verification: |
          The TH commands for this test step can be invoked using chip-tool (when DUT is a commissionee) or tv-casting-app (when DUT is a commissioner):
          ./chip-tool contentlauncher launch-content '{"parameterList": [ { "type": 5, "value": "Star Wars", "externalIDList": [ { "name": "exampleName", "value": "exampleValue"} ] } ] }' 0 1 1
          ./chip-tv-casting-app contentlauncher launch-content '{"parameterList": [ { "type": 5, "value": "Star Wars", "externalIDList": [ { "name": "exampleName", "value": "exampleValue"} ] } ] }' 0 1 1

          On TH  verify the success response (value 0) received  from DUT

          [1651578634.392516][9725:9730] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_050A Command 0x0000_0002
          [1651578634.392581][9725:9730] CHIP:TOO:   LaunchResponse: {
          [1651578634.392629][9725:9730] CHIP:TOO:     status: 0
          [1651578634.392662][9725:9730] CHIP:TOO:     data: exampleData
          [1651578634.392694][9725:9730] CHIP:TOO:    }

          tv-app DUT shows matches via console:

          [1653236823721] [74577:2234439] CHIP: [ZCL]  TEST CASE found match=TV Show Example type=5
      disabled: true

    - label:
          "TH sends a LaunchContent command to the DUT with search parameter
          consisting of Type As 'Genre' and Value as Genres name, for example
          'Horror'"
      PICS: CONTENTLAUNCHER.S.C00.Rsp
      verification: |
          The TH commands for this test step can be invoked using chip-tool (when DUT is a commissionee) or tv-casting-app (when DUT is a commissioner):
          ./chip-tool contentlauncher launch-content '{"parameterList": [ { "type": 6, "value": "Horror", "externalIDList": [ { "name": "exampleName", "value": "exampleValue"} ] } ] }' 0 1 1
          ./chip-tv-casting-app contentlauncher launch-content '{"parameterList": [ { "type": 6, "value": "Horror", "externalIDList": [ { "name": "exampleName", "value": "exampleValue"} ] } ] }' 0 1 1

          On TH  verify the success response (value 0) received  from DUT
          [1652091775.613303][9916:9922] CHIP:DMG: Received Command Response Data, Endpoint=1 Cluster=0x0000_050A Command=0x0000_0002
          [1652091775.613395][9916:9922] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_050A Command 0x0000_0002
          [1652091775.613490][9916:9922] CHIP:TOO:   LaunchResponse: {
          [1652091775.613578][9916:9922] CHIP:TOO:     status: 0
          [1652091775.613620][9916:9922] CHIP:TOO:     data: exampleData
          [1652091775.613661][9916:9922] CHIP:TOO:    }

          tv-app DUT shows matches via console:

          [1653236823721] [74577:2234439] CHIP: [ZCL]  TEST CASE found match=TV Show Example type=6
      disabled: true

    - label:
          "TH sends a LaunchContent command to the DUT with search parameter
          consisting of Type As 'League' and Value as Leagues name, for example
          'NCAA'"
      PICS: CONTENTLAUNCHER.S.C00.Rsp
      verification: |
          The TH commands for this test step can be invoked using chip-tool (when DUT is a commissionee) or tv-casting-app (when DUT is a commissioner):
          ./chip-tool contentlauncher launch-content '{"parameterList": [ { "type": 7, "value": "NCAA", "externalIDList": [ { "name": "exampleName", "value": "exampleValue"} ] } ] }' 0 1 1
          ./chip-tv-casting-app contentlauncher launch-content '{"parameterList": [ { "type": 7, "value": "NCAA", "externalIDList": [ { "name": "exampleName", "value": "exampleValue"} ] } ] }' 0 1 1

          On TH  verify the success response (value 0) received  from DUT

          [1651578662.336318][9733:9738] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_050A Command 0x0000_0002
          [1651578662.336370][9733:9738] CHIP:TOO:   LaunchResponse: {
          [1651578662.336479][9733:9738] CHIP:TOO:     status: 0
          [1651578662.336505][9733:9738] CHIP:TOO:     data: exampleData
          [1651578662.336526][9733:9738] CHIP:TOO:    }

          tv-app DUT shows matches via console:

          [1653236636669] [74577:2229859] CHIP: [ZCL]  TEST CASE found match=Sports Example type=7
      disabled: true

    - label:
          "TH sends a LaunchContent command to the DUT with search parameter
          consisting of Type As 'Popularity' and Value as Popularitys name"
      PICS: CONTENTLAUNCHER.S.C00.Rsp
      verification: |
          The TH commands for this test step can be invoked using chip-tool (when DUT is a commissionee) or tv-casting-app (when DUT is a commissioner):
          ./chip-tool contentlauncher launch-content '{"parameterList": [ { "type": 8, "value": "Popularity", "externalIDList": [ { "name": "exampleName", "value": "exampleValue"} ] } ] }' 0 1 1
          ./chip-tv-casting-app contentlauncher launch-content '{"parameterList": [ { "type": 8, "value": "Popularity", "externalIDList": [ { "name": "exampleName", "value": "exampleValue"} ] } ] }' 0 1 1

          On TH  verify the success response (value 0) received  from DUT
          [1651578680.236952][9740:9745] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_050A Command 0x0000_0002
          [1651578680.237036][9740:9745] CHIP:TOO:   LaunchResponse: {
          [1651578680.237093][9740:9745] CHIP:TOO:     status: 0
          [1651578680.237135][9740:9745] CHIP:TOO:     data: exampleData
          [1651578680.237176][9740:9745] CHIP:TOO:    }

          tv-app DUT shows matches via console:

          [1653236823721] [74577:2234439] CHIP: [ZCL]  TEST CASE found match=TV Show Example type=8
      disabled: true

    - label:
          "TH sends a LaunchContent command to the DUT with search parameter
          consisting of Type As 'Provider' and Value as Providers name, for
          example 'Netflix'"
      PICS: CONTENTLAUNCHER.S.C00.Rsp
      verification: |
          The TH commands for this test step can be invoked using chip-tool (when DUT is a commissionee) or tv-casting-app (when DUT is a commissioner):
          ./chip-tool contentlauncher launch-content '{"parameterList": [ { "type": 9, "value": "Netflix", "externalIDList": [ { "name": "exampleName", "value": "exampleValue"} ] } ] }' 0 1 1
          ./chip-tv-casting-app contentlauncher launch-content '{"parameterList": [ { "type": 9, "value": "Netflix", "externalIDList": [ { "name": "exampleName", "value": "exampleValue"} ] } ] }' 0 1 1

          On TH  verify the success response (value 0) received  from DUT
          [1651578697.912544][9750:9755] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_050A Command 0x0000_0002
          [1651578697.912620][9750:9755] CHIP:TOO:   LaunchResponse: {
          [1651578697.912673][9750:9755] CHIP:TOO:     status: 0
          [1651578697.912715][9750:9755] CHIP:TOO:     data: exampleData
          [1651578697.912753][9750:9755] CHIP:TOO:    }

          tv-app DUT shows matches via console:

          [1653236823721] [74577:2234439] CHIP: [ZCL]  TEST CASE found match=TV Show Example type=9
      disabled: true

    - label:
          "TH sends a LaunchContent command to the DUT with search parameter
          consisting of Type As 'Sport' and Value as Sports name, for example,
          football"
      PICS: CONTENTLAUNCHER.S.C00.Rsp
      verification: |
          The TH commands for this test step can be invoked using chip-tool (when DUT is a commissionee) or tv-casting-app (when DUT is a commissioner):
          ./chip-tool contentlauncher launch-content '{"parameterList": [ { "type": 10, "value": "football", "externalIDList": [ { "name": "exampleName", "value": "exampleValue"} ] } ] }' 0 1 1
          ./chip-tv-casting-app contentlauncher launch-content '{"parameterList": [ { "type": 10, "value": "football", "externalIDList": [ { "name": "exampleName", "value": "exampleValue"} ] } ] }' 0 1 1

          On TH  verify the success response (value 0) received  from DUT
          [1651578716.145536][9757:9762] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_050A Command 0x0000_0002
          [1651578716.145622][9757:9762] CHIP:TOO:   LaunchResponse: {
          [1651578716.145682][9757:9762] CHIP:TOO:     status: 0
          [1651578716.145725][9757:9762] CHIP:TOO:     data: exampleData
          [1651578716.145767][9757:9762] CHIP:TOO:    }

          tv-app DUT shows matches via console:

          [1653236636669] [74577:2229859] CHIP: [ZCL]  TEST CASE found match=Sports Example type=10
      disabled: true

    - label:
          "TH sends a LaunchContent command to the DUT with search parameter
          consisting of Type As 'SportsTeam' and Value as SportTeams name , for
          example 'Arsenel'"
      PICS: CONTENTLAUNCHER.S.C00.Rsp
      verification: |
          The TH commands for this test step can be invoked using chip-tool (when DUT is a commissionee) or tv-casting-app (when DUT is a commissioner):
          ./chip-tool contentlauncher launch-content '{"parameterList": [ { "type": 11, "value": "Arsenel", "externalIDList": [ { "name": "exampleName", "value": "exampleValue"} ] } ] }' 0 1 1
          ./chip-tv-casting-app contentlauncher launch-content '{"parameterList": [ { "type": 11, "value": "Arsenel", "externalIDList": [ { "name": "exampleName", "value": "exampleValue"} ] } ] }' 0 1 1

          On TH  verify the success response (value 0) received  from DUT
          [1651578735.341387][9764:9769] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_050A Command 0x0000_0002
          [1651578735.341498][9764:9769] CHIP:TOO:   LaunchResponse: {
          [1651578735.341574][9764:9769] CHIP:TOO:     status: 0
          [1651578735.341630][9764:9769] CHIP:TOO:     data: exampleData
          [1651578735.341686][9764:9769] CHIP:TOO:    }

          tv-app DUT shows matches via console:

          [1653236636669] [74577:2229859] CHIP: [ZCL]  TEST CASE found match=Sports Example type=11
      disabled: true

    - label:
          "TH sends a LaunchContent command to the DUT with search parameter
          consisting of Type As 'Type' and Value as Types name, for example
          'TVSeries'"
      PICS: CONTENTLAUNCHER.S.C00.Rsp
      verification: |
          The TH commands for this test step can be invoked using chip-tool (when DUT is a commissionee) or tv-casting-app (when DUT is a commissioner):
          ./chip-tool contentlauncher launch-content '{"parameterList": [ { "type": 12, "value": "TVSeries", "externalIDList": [ { "name": "exampleName", "value": "exampleValue"} ] } ] }' 0 1 1
          ./chip-tv-casting-app contentlauncher launch-content '{"parameterList": [ { "type": 12, "value": "TVSeries", "externalIDList": [ { "name": "exampleName", "value": "exampleValue"} ] } ] }' 0 1 1

          On TH  verify the success response (value 0) received  from DUT
          [1651578755.904379][9773:9778] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_050A Command 0x0000_0002
          [1651578755.904459][9773:9778] CHIP:TOO:   LaunchResponse: {
          [1651578755.904517][9773:9778] CHIP:TOO:     status: 0
          [1651578755.904560][9773:9778] CHIP:TOO:     data: exampleData
          [1651578755.904604][9773:9778] CHIP:TOO:    }

          tv-app DUT shows matches via console:

          [1653236823721] [74577:2234439] CHIP: [ZCL]  TEST CASE found match=Sports Example type=12
      disabled: true
