| # Copyright (c) 2023 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. |
| |
| name: 133.2.5. [TC-ACL-2.5] AccessControlExtensionChanged event |
| |
| PICS: |
| - ACL.S |
| - ACL.S.A0001 |
| |
| config: |
| nodeId: 0x12344321 |
| cluster: "Access Control" |
| endpoint: 0 |
| D_OK_EMPTY: |
| type: octet_string |
| defaultValue: "hex:1718" |
| D_OK_SINGLE: |
| type: octet_string |
| defaultValue: "hex:17D00000F1FF01003D48656C6C6F20576F726C642E205468697320697320612073696E676C6520656C656D656E74206C6976696E6720617320612063686172737472696E670018" |
| D_BAD_LENGTH: |
| type: octet_string |
| defaultValue: "hex:17D00000F1FF01003D48656C6C6F20576F726C642E205468697320697320612073696E676C6520656C656D656E74206C6976696E6720617320612063686172737472696E6700D00000F1FF02003248656C6C6F20576F726C642E205468697320697320612073696E676C6520656C656D656E7420616761696E2E2E2E2E2E2E0018" |
| |
| tests: |
| - label: "Step 1: TH1 commissions DUT using admin node ID N1" |
| cluster: "DelayCommands" |
| command: "WaitForCommissionee" |
| arguments: |
| values: |
| - name: "nodeId" |
| value: nodeId |
| |
| - label: "Read the commissioner node ID" |
| cluster: "CommissionerCommands" |
| command: "GetCommissionerNodeId" |
| response: |
| values: |
| - name: "nodeId" |
| saveAs: CommissionerNodeId |
| |
| - label: |
| "Step 2: TH1 reads DUT Endpoint 0 OperationalCredentials cluster |
| CurrentFabricIndex attribute" |
| command: "readAttribute" |
| cluster: "Operational Credentials" |
| attribute: "CurrentFabricIndex" |
| response: |
| saveAs: CurrentFabricIndexValue |
| |
| #Issue: https://github.com/project-chip/connectedhomeip/issues/24081 |
| - label: |
| "Step 3: TH1 reads DUT Endpoint 0 AccessControl cluster |
| AccessControlExtensionChanged event" |
| verification: | |
| ./chip-tool accesscontrol read-event access-control-extension-changed 1 0 |
| |
| Via the TH (chip-tool), Verify AccessControl cluster AccessControlExtensionChanged event value is an empty list |
| |
| 848.856174][2311:2316] CHIP:EM: Removed CHIP MessageCounter:265690133 from RetransTable on exchange 23190i |
| [1657283848.856239][2311:2316] CHIP:DMG: ReportDataMessage = |
| [1657283848.856278][2311:2316] CHIP:DMG: { |
| [1657283848.856313][2311:2316] CHIP:DMG: SuppressResponse = true, |
| [1657283848.856351][2311:2316] CHIP:DMG: InteractionModelRevision = 1 |
| [1657283848.856385][2311:2316] CHIP:DMG: } |
| [1657283848.856483][2311:2316] CHIP:EM: Sending Standalone Ack for MessageCounter:33251086 on exchange 23190i |
| [1657283848.856560][2311:2316] CHIP:IN: Prepared secure message 0xffff877ed958 to 0x0000000000000001 (1) of type 0x10 and protocolId (0, 0) on exchange 23190i with MessageCounter:265690134. |
| [1657283848.856638][2311:2316] CHIP:IN: Sending encrypted msg 0xffff877ed958 with MessageCounter:265690134 to 0x0000000000000001 (1) at monotonic time: 00000000000A1C64 msec |
| cluster: "LogCommands" |
| command: "UserPrompt" |
| PICS: PICS_SKIP_SAMPLE_APP && ACL.S.E01 |
| arguments: |
| values: |
| - name: "message" |
| value: "Enter 'y' after success" |
| - name: "expectedValue" |
| value: "y" |
| |
| - label: |
| "Step 4: TH1 writes DUT Endpoint 0 AccessControl cluster Extension |
| attribute, value is list of AccessControlExtensionStruct containing 1 |
| element struct Data field: D_OK_EMPTY" |
| PICS: ACL.S.A0001 |
| command: "writeAttribute" |
| attribute: "Extension" |
| arguments: |
| value: [{ Data: D_OK_EMPTY, FabricIndex: CurrentFabricIndexValue }] |
| |
| - label: |
| "Step 5: TH1 reads DUT Endpoint 0 AccessControl cluster |
| AccessControlExtensionChanged event" |
| PICS: ACL.S.E01 |
| command: "readEvent" |
| event: "AccessControlExtensionChanged" |
| eventNumber: "LastReceivedEventNumber + 1" |
| response: |
| value: |
| { |
| AdminNodeID: CommissionerNodeId, |
| AdminPasscodeID: null, |
| ChangeType: 1, |
| LatestValue: |
| { |
| Data: D_OK_EMPTY, |
| FabricIndex: CurrentFabricIndexValue, |
| }, |
| FabricIndex: CurrentFabricIndexValue, |
| } |
| |
| - label: |
| "Step 6: TH1 writes DUT Endpoint 0 AccessControl cluster Extension |
| attribute, value is list of AccessControlExtensionStruct containing 1 |
| element struct Data field: D_OK_SINGLE" |
| PICS: ACL.S.A0001 |
| command: "writeAttribute" |
| attribute: "Extension" |
| arguments: |
| value: [{ Data: D_OK_SINGLE, FabricIndex: CurrentFabricIndexValue }] |
| |
| - label: |
| "Step 7: TH1 reads DUT Endpoint 0 AccessControl cluster |
| AccessControlExtensionChanged event" |
| PICS: ACL.S.E01 |
| command: "readEvent" |
| event: "AccessControlExtensionChanged" |
| eventNumber: "LastReceivedEventNumber + 1" |
| response: |
| - values: |
| - value: |
| { |
| AdminNodeID: CommissionerNodeId, |
| AdminPasscodeID: null, |
| ChangeType: 2, |
| LatestValue: |
| { |
| Data: D_OK_EMPTY, |
| FabricIndex: CurrentFabricIndexValue, |
| }, |
| FabricIndex: CurrentFabricIndexValue, |
| } |
| - values: |
| - value: |
| { |
| AdminNodeID: CommissionerNodeId, |
| AdminPasscodeID: null, |
| ChangeType: 1, |
| LatestValue: |
| { |
| Data: D_OK_SINGLE, |
| FabricIndex: CurrentFabricIndexValue, |
| }, |
| FabricIndex: CurrentFabricIndexValue, |
| } |
| |
| - label: |
| "Step 8: TH1 writes DUT Endpoint 0 AccessControl cluster Extension |
| attribute, value is list of AccessControlExtensionStruct containing 1 |
| element struct Data field: D_BAD_LENGTH" |
| PICS: ACL.S.A0001 |
| command: "writeAttribute" |
| attribute: "Extension" |
| arguments: |
| value: [{ Data: D_BAD_LENGTH, FabricIndex: CurrentFabricIndexValue }] |
| response: |
| error: CONSTRAINT_ERROR |
| |
| - label: |
| "Step 9: TH1 reads DUT Endpoint 0 AccessControl cluster |
| AccessControlExtensionChanged event" |
| PICS: ACL.S.E01 |
| command: "readEvent" |
| event: "AccessControlExtensionChanged" |
| eventNumber: "LastReceivedEventNumber + 1" |
| response: |
| value: |
| { |
| AdminNodeID: CommissionerNodeId, |
| AdminPasscodeID: null, |
| ChangeType: 2, |
| LatestValue: |
| { |
| Data: D_OK_SINGLE, |
| FabricIndex: CurrentFabricIndexValue, |
| }, |
| FabricIndex: CurrentFabricIndexValue, |
| } |
| |
| - label: |
| "Step 10: TH1 writes DUT Endpoint 0 AccessControl cluster Extension |
| attribute, value is list of AccessControlExtensionStruct containing 2 |
| elements struct Data field: D_OK_EMPTY struct Data field: D_OK_SINGLE" |
| PICS: ACL.S.A0001 |
| command: "writeAttribute" |
| attribute: "Extension" |
| arguments: |
| value: |
| [ |
| { Data: D_OK_EMPTY, FabricIndex: CurrentFabricIndexValue }, |
| { Data: D_OK_SINGLE, FabricIndex: CurrentFabricIndexValue }, |
| ] |
| response: |
| error: CONSTRAINT_ERROR |
| |
| - label: |
| "Step 11: TH1 reads DUT Endpoint 0 AccessControl cluster |
| AccessControlExtensionChanged event" |
| PICS: ACL.S.E01 |
| command: "readEvent" |
| event: "AccessControlExtensionChanged" |
| eventNumber: "LastReceivedEventNumber + 1" |
| response: |
| value: |
| { |
| AdminNodeID: CommissionerNodeId, |
| AdminPasscodeID: null, |
| ChangeType: 1, |
| LatestValue: |
| { |
| Data: D_OK_EMPTY, |
| FabricIndex: CurrentFabricIndexValue, |
| }, |
| FabricIndex: CurrentFabricIndexValue, |
| } |
| |
| - label: |
| "Step 12: TH1 writes DUT Endpoint 0 AccessControl cluster Extension |
| attribute, value is an empty list" |
| PICS: ACL.S.A0001 |
| command: "writeAttribute" |
| attribute: "Extension" |
| arguments: |
| value: [] |
| |
| - label: |
| "Step 13: TH1 reads DUT Endpoint 0 AccessControl cluster |
| AccessControlExtensionChanged event" |
| PICS: ACL.S.E01 |
| command: "readEvent" |
| event: "AccessControlExtensionChanged" |
| eventNumber: "LastReceivedEventNumber + 1" |
| response: |
| value: |
| { |
| AdminNodeID: CommissionerNodeId, |
| AdminPasscodeID: null, |
| ChangeType: 2, |
| LatestValue: |
| { |
| Data: D_OK_EMPTY, |
| FabricIndex: CurrentFabricIndexValue, |
| }, |
| FabricIndex: CurrentFabricIndexValue, |
| } |