[
https://issues.apache.org/jira/browse/UNOMI-1004?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Serge Huber updated UNOMI-1004:
-------------------------------
Description:
h3. Summary
The hover event condition matches when either the target id or the target path
matches (since UNOMI-828). Since UNOMI-982, a part of a condition whose
parameter is not set counts as "always true".
The two changes together mean that a hover condition with only a target id, or
only a target path, matches every hover event. A segment or rule that uses it
then applies to everyone.
The goal of this ticket is that the condition only checks the parameters that
are set.
h3. Ways to explore
* Leave out the parts of an "or" whose parameter is not set. If no parameter is
set at all, the condition must match nothing, or be refused when it is saved.
It must not match everything.
* Look for other built-in conditions that combine optional parameters with "or".
h3. How to test
Manual check: create hover events on two different targets. A condition with
only the target id of the first one must match only the first event.
Automated tests to add, both for the in-memory evaluation and for the
Elasticsearch and OpenSearch queries (condition evaluator and query builder
integration tests). Each must fail on the 4.0.0 release candidate and pass once
the fix is in:
* Hover condition with only a target id, only a target path, both, and neither.
Each matches exactly the expected events. With neither, it matches nothing or
is refused when saved.
* A generic "or" condition with optional parameters: unset parts are left out,
and an "or" with no parts left never matches everything.
* The same cases for any other built-in condition found that combines optional
parameters with "or".
* The existing tests for UNOMI-982 (unset parameters in an "and") still pass.
was:
h3. Summary
The hover event condition matches when either the target id or the target path
matches (since UNOMI-828). Since UNOMI-982, a part of a condition whose
parameter is not set counts as "always true".
The two changes together mean that a hover condition with only a target id, or
only a target path, matches every hover event. A segment or rule that uses it
then applies to everyone.
The goal of this ticket is that the condition only checks the parameters that
are set.
h3. Ways to explore
* Leave out the parts of an "or" whose parameter is not set. If no parameter is
set at all, the condition must match nothing, or be refused when it is saved.
It must not match everything.
* Look for other built-in conditions that combine optional parameters with "or".
h3. How to test
Create hover events on two different targets. A condition with only the target
id of the first one must match only the first event. Check both the in-memory
evaluation and the Elasticsearch / OpenSearch queries.
> A hover condition with only a target id matches every hover event
> -----------------------------------------------------------------
>
> Key: UNOMI-1004
> URL: https://issues.apache.org/jira/browse/UNOMI-1004
> Project: Apache Unomi
> Issue Type: Bug
> Affects Versions: unomi-4.0.0
> Reporter: Serge Huber
> Priority: Major
> Fix For: unomi-4.0.0
>
>
> h3. Summary
> The hover event condition matches when either the target id or the target
> path matches (since UNOMI-828). Since UNOMI-982, a part of a condition whose
> parameter is not set counts as "always true".
> The two changes together mean that a hover condition with only a target id,
> or only a target path, matches every hover event. A segment or rule that uses
> it then applies to everyone.
> The goal of this ticket is that the condition only checks the parameters that
> are set.
> h3. Ways to explore
> * Leave out the parts of an "or" whose parameter is not set. If no parameter
> is set at all, the condition must match nothing, or be refused when it is
> saved. It must not match everything.
> * Look for other built-in conditions that combine optional parameters with
> "or".
> h3. How to test
> Manual check: create hover events on two different targets. A condition with
> only the target id of the first one must match only the first event.
> Automated tests to add, both for the in-memory evaluation and for the
> Elasticsearch and OpenSearch queries (condition evaluator and query builder
> integration tests). Each must fail on the 4.0.0 release candidate and pass
> once the fix is in:
> * Hover condition with only a target id, only a target path, both, and
> neither. Each matches exactly the expected events. With neither, it matches
> nothing or is refused when saved.
> * A generic "or" condition with optional parameters: unset parts are left
> out, and an "or" with no parts left never matches everything.
> * The same cases for any other built-in condition found that combines
> optional parameters with "or".
> * The existing tests for UNOMI-982 (unset parameters in an "and") still pass.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)