Skip to content

Commit 0f6e3d4

Browse files
committed
Refactor AtCanvasPolicy
1 parent 6b19f15 commit 0f6e3d4

20 files changed

Lines changed: 34 additions & 135 deletions

File tree

core/src/org/testar/core/policy/AtCanvasPolicy.java

Lines changed: 0 additions & 15 deletions
This file was deleted.

dialog/src/org/testar/dialog/editor/CustomPoliciesEditor.java

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -36,8 +36,6 @@ public CustomPoliciesEditor(String policiesResourcePath) {
3636
"widgetFilterPolicies=",
3737
"replaceVisiblePolicies=false",
3838
"visiblePolicies=",
39-
"replaceAtCanvasPolicies=false",
40-
"atCanvasPolicies=",
4139
"replaceTopLevelPolicies=false",
4240
"topLevelPolicies=",
4341
""

dialog/src/org/testar/dialog/helper/PolicyWorkspaceHelper.java

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -36,8 +36,6 @@ public final class PolicyWorkspaceHelper {
3636
"org.testar.core.policy.WidgetFilterPolicy", "allows", "return true;"),
3737
new PolicyDefinition("visiblePolicies", "Visible policies", "VisiblePolicy",
3838
"org.testar.core.policy.VisiblePolicy", "isVisible", "return true;"),
39-
new PolicyDefinition("atCanvasPolicies", "At-canvas policies", "AtCanvasPolicy",
40-
"org.testar.core.policy.AtCanvasPolicy", "isAtCanvas", "return true;"),
4139
new PolicyDefinition("topLevelPolicies", "Top-level policies", "TopLevelPolicy",
4240
"org.testar.core.policy.TopLevelPolicy", "isTopLevel", "return true;")
4341
};

docs/ARCHITECTURE.md

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -255,9 +255,6 @@ The main policy contracts are in `org.testar.core.policy`.
255255
- `VisiblePolicy`
256256
Decides whether a widget should be considered visible for state, action, oracle, or reporting logic.
257257
File: `core/src/org/testar/core/policy/VisiblePolicy.java`
258-
- `AtCanvasPolicy`
259-
Decides whether a widget should be considered inside the actionable or inspectable canvas area.
260-
File: `core/src/org/testar/core/policy/AtCanvasPolicy.java`
261258
- `TopLevelPolicy`
262259
Decides whether a widget should be treated as a top-level widget for higher-level queries or orchestration.
263260
File: `core/src/org/testar/core/policy/TopLevelPolicy.java`
@@ -384,8 +381,6 @@ Examples:
384381
Produces one `WidgetFilterPolicy` from one or more explicit widget-filter rules.
385382
- `CompositeVisiblePolicy`
386383
Produces one `VisiblePolicy` from one or more visibility rules.
387-
- `CompositeAtCanvasPolicy`
388-
Produces one `AtCanvasPolicy` from one or more canvas-scope rules.
389384
- `CompositeTopLevelPolicy`
390385
Produces one `TopLevelPolicy` from one or more top-level rules.
391386

@@ -449,7 +444,6 @@ It stores effective policies by their policy-interface type, for example:
449444
- `BlockedPolicy.class`
450445
- `WidgetFilterPolicy.class`
451446
- `VisiblePolicy.class`
452-
- `AtCanvasPolicy.class`
453447
- `TopLevelPolicy.class`
454448

455449
This shows the intended role of `engine`:
@@ -705,7 +699,6 @@ The current derivation gating in `StateActionDeriver` uses:
705699
- `BlockedPolicy`
706700
- `WidgetFilterPolicy`
707701
- `VisiblePolicy`
708-
- `AtCanvasPolicy`
709702
- `TopLevelPolicy`
710703

711704
Then the widget-level deriver uses capability policies such as:

docs/policy/architecture_policy_composition.mmd

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@ flowchart LR
77
BP["BlockedPolicy"]
88
WFP["WidgetFilterPolicy"]
99
VP["VisiblePolicy"]
10-
ACP["AtCanvasPolicy"]
1110
TLP["TopLevelPolicy"]
1211
end
1312

@@ -19,7 +18,6 @@ flowchart LR
1918
CBP["CompositeBlockedPolicy<br/>semantics: ANY"]
2019
CWFP["CompositeWidgetFilterPolicy<br/>semantics: ALL"]
2120
CVP["CompositeVisiblePolicy<br/>semantics: ALL"]
22-
CACP["CompositeAtCanvasPolicy<br/>semantics: ALL"]
2321
CTLP["CompositeTopLevelPolicy<br/>semantics: ALL"]
2422
end
2523

@@ -35,7 +33,6 @@ flowchart LR
3533
PTP["PlatformTypeablePolicy (WindowsTypeablePolicy / WebdriverTypeablePolicy / AndroidTypeablePolicy)"]
3634
PSP["PlatformScrollablePolicy (WindowsScrollablePolicy / WebdriverScrollablePolicy / AndroidScrollablePolicy)"]
3735
PVP["PlatformVisiblePolicy (WindowsVisiblePolicy / WebdriverVisiblePolicy / AndroidVisiblePolicy)"]
38-
PACP["PlatformAtCanvasPolicy (WebdriverAtCanvasPolicy / AndroidAtCanvasPolicy)"]
3936
end
4037

4138
subgraph CustomPolicyImplementations["custom policy implementations"]
@@ -56,7 +53,6 @@ flowchart LR
5653
PTP -. implements .-> TP
5754
PSP -. implements .-> SP
5855
PVP -. implements .-> VP
59-
PACP -. implements .-> ACP
6056

6157
TEP -. implements .-> EP
6258
TBP -. implements .-> BP
@@ -73,7 +69,6 @@ flowchart LR
7369
BP -- "1..n policies" --> CBP
7470
WFP -- "1..n policies" --> CWFP
7571
VP -- "1..n policies" --> CVP
76-
ACP -- "1..n policies" --> CACP
7772
TLP -- "1..n policies" --> CTLP
7873

7974
CCP --> PPC
@@ -83,7 +78,6 @@ flowchart LR
8378
CBP --> PPC
8479
CWFP --> PPC
8580
CVP --> PPC
86-
CACP --> PPC
8781
CTLP --> PPC
8882

8983
PPC --> SPC

engine/src/org/testar/engine/action/derivation/StateActionDeriver.java

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,6 @@
1111

1212
import org.testar.core.Assert;
1313
import org.testar.core.action.Action;
14-
import org.testar.core.policy.AtCanvasPolicy;
1514
import org.testar.core.policy.BlockedPolicy;
1615
import org.testar.core.policy.EnabledPolicy;
1716
import org.testar.core.state.SUT;
@@ -42,14 +41,12 @@ public Set<Action> derive(SUT system, State state, SessionPolicyContext context)
4241
BlockedPolicy blockedPolicy = context.require(BlockedPolicy.class);
4342
WidgetFilterPolicy widgetFilterPolicy = context.require(WidgetFilterPolicy.class);
4443
VisiblePolicy visiblePolicy = context.require(VisiblePolicy.class);
45-
AtCanvasPolicy atCanvasPolicy = context.require(AtCanvasPolicy.class);
4644
TopLevelPolicy topLevelPolicy = context.require(TopLevelPolicy.class);
4745
for (Widget widget : state) {
4846
if (enabledPolicy.isEnabled(widget)
4947
&& !blockedPolicy.isBlocked(widget)
5048
&& widgetFilterPolicy.allows(widget)
5149
&& visiblePolicy.isVisible(widget)
52-
&& atCanvasPolicy.isAtCanvas(widget)
5350
&& topLevelPolicy.isTopLevel(widget)) {
5451
actions.addAll(widgetActionDeriver.derive(system, state, widget, context));
5552
}

engine/src/org/testar/engine/policy/composite/CompositeAtCanvasPolicy.java

Lines changed: 0 additions & 32 deletions
This file was deleted.

engine/test/org/testar/engine/action/derivation/ComposedActionDerivationServiceTest.java

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,6 @@
1010
import org.testar.core.action.Action;
1111
import org.testar.core.action.ActionRoles;
1212
import org.testar.core.alayer.Role;
13-
import org.testar.core.policy.AtCanvasPolicy;
1413
import org.testar.core.policy.BlockedPolicy;
1514
import org.testar.core.policy.ClickablePolicy;
1615
import org.testar.core.policy.EnabledPolicy;
@@ -25,7 +24,6 @@
2524
import org.testar.core.tag.TaggableBase;
2625
import org.testar.core.tag.Tags;
2726
import org.testar.engine.policy.SessionPolicyContext;
28-
import org.testar.engine.policy.composite.CompositeAtCanvasPolicy;
2927
import org.testar.engine.policy.composite.CompositeBlockedPolicy;
3028
import org.testar.engine.policy.composite.CompositeClickablePolicy;
3129
import org.testar.engine.policy.composite.CompositeEnabledPolicy;
@@ -133,7 +131,6 @@ public void exposesComposedPoliciesThroughContext() {
133131
BlockedPolicy blocked = widget -> false;
134132
WidgetFilterPolicy filter = widget -> true;
135133
VisiblePolicy visible = widget -> true;
136-
AtCanvasPolicy atCanvas = widget -> true;
137134
TopLevelPolicy topLevel = widget -> true;
138135

139136
ComposedActionDerivationService service = new ComposedActionDerivationService(
@@ -145,7 +142,6 @@ public void exposesComposedPoliciesThroughContext() {
145142
Arrays.asList(blocked),
146143
Arrays.asList(filter),
147144
Arrays.asList(visible),
148-
Arrays.asList(atCanvas),
149145
Arrays.asList(topLevel)
150146
),
151147
new ActionDerivationPlan(
@@ -163,7 +159,6 @@ public void exposesComposedPoliciesThroughContext() {
163159
Assert.assertFalse(service.context().require(BlockedPolicy.class).isBlocked(widget));
164160
Assert.assertTrue(service.context().require(WidgetFilterPolicy.class).allows(widget));
165161
Assert.assertTrue(service.context().require(VisiblePolicy.class).isVisible(widget));
166-
Assert.assertTrue(service.context().require(AtCanvasPolicy.class).isAtCanvas(widget));
167162
Assert.assertTrue(service.context().require(TopLevelPolicy.class).isTopLevel(widget));
168163
}
169164

@@ -316,7 +311,6 @@ private SessionPolicyContext context(java.util.List<ClickablePolicy> clickablePo
316311
blockedPolicies,
317312
widgetFilterPolicies,
318313
Collections.singletonList(widget -> true),
319-
Collections.singletonList(widget -> true),
320314
Collections.singletonList(widget -> true)
321315
);
322316
}
@@ -328,7 +322,6 @@ private SessionPolicyContext context(java.util.List<ClickablePolicy> clickablePo
328322
java.util.List<BlockedPolicy> blockedPolicies,
329323
java.util.List<WidgetFilterPolicy> widgetFilterPolicies,
330324
java.util.List<VisiblePolicy> visiblePolicies,
331-
java.util.List<AtCanvasPolicy> atCanvasPolicies,
332325
java.util.List<TopLevelPolicy> topLevelPolicies) {
333326
return new SessionPolicyContext(
334327
new CompositeClickablePolicy(clickablePolicies),
@@ -338,7 +331,6 @@ private SessionPolicyContext context(java.util.List<ClickablePolicy> clickablePo
338331
new CompositeBlockedPolicy(blockedPolicies),
339332
new CompositeWidgetFilterPolicy(widgetFilterPolicies),
340333
new CompositeVisiblePolicy(visiblePolicies),
341-
new CompositeAtCanvasPolicy(atCanvasPolicies),
342334
new CompositeTopLevelPolicy(topLevelPolicies)
343335
);
344336
}

engine/test/org/testar/engine/action/derivation/StateActionDeriverTest.java

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,6 @@
1616
import org.testar.engine.policy.SessionPolicyContext;
1717
import org.testar.engine.policy.TagBlockedPolicy;
1818
import org.testar.engine.policy.TagEnabledPolicy;
19-
import org.testar.engine.policy.composite.CompositeAtCanvasPolicy;
2019
import org.testar.engine.policy.composite.CompositeBlockedPolicy;
2120
import org.testar.engine.policy.composite.CompositeClickablePolicy;
2221
import org.testar.engine.policy.composite.CompositeEnabledPolicy;
@@ -125,7 +124,6 @@ private static SessionPolicyContext allowAllContext() {
125124
new CompositeBlockedPolicy(Collections.singletonList(new TagBlockedPolicy())),
126125
new CompositeWidgetFilterPolicy(Collections.singletonList(widget -> true)),
127126
new CompositeVisiblePolicy(Collections.singletonList(widget -> true)),
128-
new CompositeAtCanvasPolicy(Collections.singletonList(widget -> true)),
129127
new CompositeTopLevelPolicy(Collections.singletonList(widget -> true))
130128
);
131129
}
@@ -139,7 +137,6 @@ private static SessionPolicyContext filteredContext(WidgetStub filteredWidget) {
139137
new CompositeBlockedPolicy(Collections.singletonList(widget -> false)),
140138
new CompositeWidgetFilterPolicy(Collections.singletonList(widget -> widget != filteredWidget)),
141139
new CompositeVisiblePolicy(Collections.singletonList(widget -> true)),
142-
new CompositeAtCanvasPolicy(Collections.singletonList(widget -> true)),
143140
new CompositeTopLevelPolicy(Collections.singletonList(widget -> true))
144141
);
145142
}

plugin/src/org/testar/plugin/configuration/SessionPolicyContextComposer.java

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,6 @@
1212
import java.util.Set;
1313

1414
import org.testar.core.Assert;
15-
import org.testar.core.policy.AtCanvasPolicy;
1615
import org.testar.core.policy.BlockedPolicy;
1716
import org.testar.core.policy.ClickablePolicy;
1817
import org.testar.core.policy.EnabledPolicy;
@@ -24,7 +23,6 @@
2423
import org.testar.core.policy.VisiblePolicy;
2524
import org.testar.core.policy.WidgetFilterPolicy;
2625
import org.testar.engine.policy.SessionPolicyContext;
27-
import org.testar.engine.policy.composite.CompositeAtCanvasPolicy;
2826
import org.testar.engine.policy.composite.CompositeBlockedPolicy;
2927
import org.testar.engine.policy.composite.CompositeClickablePolicy;
3028
import org.testar.engine.policy.composite.CompositeEnabledPolicy;
@@ -119,9 +117,6 @@ private static Policy composePolicies(Class<? extends Policy> policyType,
119117
if (policyType == VisiblePolicy.class) {
120118
return new CompositeVisiblePolicy((List<VisiblePolicy>) policies);
121119
}
122-
if (policyType == AtCanvasPolicy.class) {
123-
return new CompositeAtCanvasPolicy((List<AtCanvasPolicy>) policies);
124-
}
125120
if (policyType == TopLevelPolicy.class) {
126121
return new CompositeTopLevelPolicy((List<TopLevelPolicy>) policies);
127122
}

0 commit comments

Comments
 (0)