Commit graph

65 commits

Author SHA1 Message Date
newfrenchy83
ce4fb82173 Filter weapon in [filter student/opponent/etc] rework (pr #4678)
All weapon specials can now be used in [abilities] to effect all weapons of the unit that pass the filter given in [filter_student][filter_weapon].

Explanation: filter_student filters on the unit that is  under the effect of the ability (which is usually the unit itself, but not always if [affect_adjacent] is used).  [filter_student][filter_weapon] filters on the active weapon of that unit (the student) in a specific combat.

[filter_weapon] is now supported in all filter_opponent, filter_student, filter_attacker, filter_defender

Note that constructs like [filter_student][or][filter_weapon] are not suported, [filter_weapon] must be a direct subtag of the four just mentioned tags.
 
[filter_second_weapon] is no longer used for abilities that come from weapon specials.

implements #4629 , #4475 , #4389

Co-authored-by: gfgtdf <daniel.gfgtdf@gmail.com>
2020-01-05 00:27:55 +01:00
Steve Cotton
7359fddecb
Separate unit test statuses for WML exceptions and strict warnings (#4599)
This is part of working out whether a subset of the "fail" tests could be run
in one Wesnoth instance. To run a test that returns TEST_FAIL_BROKE_STRICT with
any other test would require a mechanism to reset lg::broke_strict()'s flag.

All tests that fail with an {ASSERT} will also set the lg::broke_strict() flag,
the tests with the new status are only those that would pass without the strict
flag.

In the SUF tests, change a test from fail-on-success to breaks-strict, rename
the formula tests and add some comments. The rename is because "fai" is
"Formula AI", an obsolete name for WFL.
2019-12-22 19:11:48 +01:00
Steve Cotton
de92d17a6d WIP: Test [move_unit] moving back to the starting hex 2019-12-14 11:31:55 -05:00
Steve Cotton
e50fd80d53
Convert some fail-on-success unit tests to pass-on-success (#4597) 2019-11-25 14:28:03 +01:00
Steve Cotton
16f93cd24c Add a unit test for wesnoth.create_side 2019-11-18 21:00:26 +01:00
Steve Cotton
06dd9a140c Add [find_path] option "nearest_by", and simple_find_path test
Adding this is issue 2 of #4177, changing the behavior when [find_path]
is given a SLF which matches multiple hexes.

The map and tests here should be easy enough for manually editing them. It
duplicates some of the functionality of the existing characterize_pathfinding
tests, however those tests need their expected values to be calculated and
can't be changed by hand.

'''nearest_by''': {DevFeature1.15|2} possible values "movement_cost"
(default), "steps", "hexes". If the [destination] SLF matches multiple hexes,
the one that would need the least movement points to reach may not be the one
that's closest as measured by '''hexes''', or closest as measured by steps,
from the starting point.

Behavior in 1.14 depended on which hex was checked first.
2019-09-11 11:17:56 +02:00
Steve Cotton
1c123fb3fa Allow '1-infinity' in ranges, and tighten the schema's validation of ranges
Fixes #4253.

The schema's validation of ranges now rejects negative numbers, because the C++
code doesn't support them (both before and after this commit):
* utils::parse_range("-7") will return {0,0}, because std::stoi("") throws invalid_argument.
* src/map/location.cpp will parse it as -7, but that will never match an on-map coordinate
2019-08-29 22:28:22 +02:00
Steve Cotton
358f564301 Add unit tests for movement and vision costs
Includes changing the terrain costs, and aliased terrains.

Can be cleanly cherry-picked to 1.14.
2019-07-22 17:18:20 +02:00
Toom
53be0fef39 Add WML unit test for unupgradable (#3336)
* Add WML unit test for unupgradable

* Follow [do_command] requirements

(cherry picked from commit 739df85e1d)
2018-10-28 02:53:08 +00:00
josteph
2f266dde90 Add test for #3663 2018-10-27 20:40:03 +00:00
josteph
2f62302dc7 Healing: Add a unit test. 2018-10-21 17:34:52 +00:00
gfgtdf
a414703946 wml test for cve-2018-1999023
this test whether we succesfully prevent the exceution and parsing of
precompiled lua chunks, which can be used to break the lua sandbox.
This test does not cover all affected functions in particular not the ai
code that loads lua chunks.

(cherry-picked from commit 6b13a63bb0)
2018-10-07 03:23:46 +00:00
Jyrki Vesterinen
1386e3945c Added unit tests about which WML tag names Lua API accepts 2018-01-17 23:23:13 +02:00
Charles Dang
8ae99bc86a Added some event unit tests by @Pentarctagon
Tests event execution order and events with variable names.
2018-01-11 13:12:28 -05:00
Gregory A Lundberg
eaccef65f8 Add WML unit tests for [for] tag 2017-06-21 21:18:24 -05:00
Celtic Minstrel
cb0fad078a WML unit tests for simple aspects 2016-03-22 07:22:22 -07:00
Celtic Minstrel
240b5f61a7 Output formula errors in unit filters to WML error stream
(And consider them to match no units)
2016-03-17 23:27:03 -04:00
Celtic Minstrel
26a2638f2c Make the formula and Lua views of a unit coincide more closely
Several keys were either missing or misnamed in the formula view.
These have been changed to match the Lua and WML names for the keys.
This affects canrecruit, moves, and max_moves, as well as status.

In addition, a large number of keys were missing entirely from the formula view.
Most of these keys have now been added and can be accessed from formulas.
A few that have little use in filters (such as image_mods or profile) are still missing.

The Lua view missed a few keys that the formula view did provide.
Although these could in principle have been obtained by using the special __cfg key,
they have now been added to the Lua view anyway.
2016-03-17 23:27:03 -04:00
Celtic Minstrel
aa2e24d1b7 Finally fix all the [for] issues. Probably.
(With unit tests to back it up!)

- Fixes [for]step=0
- Fixes [for]start,stop=0,0
- Fixes [for]start,end,step=0,1,-1
- Probably fixes several other things too
2015-10-06 13:51:28 -04:00
Celtic Minstrel
7e26e09061 Fix erroneous handling of [break]/[continue] in [elseif] 2015-09-23 00:25:31 -04:00
Celtic Minstrel
aec99429c4 Merge branch 'break-continue' into foreach 2015-09-20 00:48:39 -04:00
Celtic Minstrel
3c329408ce Implement [break], [continue], [return] tags (they take no arguments) 2015-09-20 00:47:23 -04:00
Celtic Minstrel
a5184181df Fix SUF $this_unit only working within [filter_wml] 2015-09-19 00:19:26 -04:00
Elvish_Hunter
d4a3c76447 Improved the [role] unit test
A new unit test, called 'test_role_lua' was added, to ensure that the [role]
tag could be used from Lua.
Also, in the first unit test the types list is stored in a variable, to
ensure that variable substitution works as intended
2015-06-13 21:23:40 +02:00
Elvish_Hunter
1b239aa3e6 Added a new unit test for [role] 2015-06-10 22:07:28 +02:00
Chris Beck
f4c99b3a1a fixup wesnoth.wml_conditionals, add unit tests 2015-04-10 14:16:21 -04:00
Charles Dang
0911b1f4d5 Added some conditional unit tests 2015-04-03 08:31:13 +11:00
Chris Beck
af06820729 re-enable some tests related to pathfinding that were disabled
In relation to bug #23188 and PR # 364
2015-02-28 22:49:03 -05:00
gfgtdf
10a5851a79 Update wml_test_schedule 2015-01-24 13:49:36 +01:00
Chris Beck
8459bf7104 add lua function "fire_wml_menu_item" and unit tests for menu items
this commit also changed slightly the way that wml menu events
are synced. previously they were run via "run_in_synced_context",
now they are run via "run_in_synced_context_if_not_already", which
makes it safe to fire them from lua (a synced context).
2015-01-06 21:42:52 -05:00
Chris Beck
18b5059b23 add some [time_area] unit tests 2015-01-05 02:34:09 -05:00
Chris Beck
6a3321d0db fix bug #23130 (xp modifier not working), add unit tests
Reverts commit e85c37e161 which was
an error.

I chose to use a scoped_pointer this time around because the
definition of play_controller should not actually depend on the
complete definition of unit_type.
2015-01-02 18:03:24 -05:00
Chris Beck
a273be5520 add a wml unit test for {CLEAR_VARIABLE} macro 2014-12-29 00:39:14 -05:00
Chris Beck
2239ab3f65 add a unit test for lua get_sides return object 2014-12-26 01:07:57 -05:00
Chris Beck
d1d0990235 add a unit test for wesnoth.require 2014-12-06 23:32:29 -05:00
Chris Beck
69d7924df5 add a wml unit test for lua dofile 2014-12-05 15:30:12 -05:00
Chris Beck
01fa3ff298 register the tests of {MOVE_UNIT} macro with the test schedule 2014-10-18 16:02:14 -04:00
Chris Beck
acc534d86b disable a wml unit test that occasionally takes too long
"characterize_pathfinding_one"
2014-10-10 18:14:33 -04:00
Chris Beck
6cb9c518c7 Merge branch 'has_ally_master'
Conflicts:
	wml_test_schedule
2014-07-12 11:05:18 -04:00
Chris Beck
5a64d43fae add [has_ally],[has_enemy] tags for standard side filter
Unlike [allied_with] and [enemy_of], these will match if only if
there is *any* ally or enemy matching the filter. The other versions
of the tag match only if all sides matching the filter are
allied / opposed.

This commit also adds a unit test that checks that it works as
expected.
2014-07-12 10:33:56 -04:00
Chris Beck
72d91daed0 fixup [filter_vision] tags
This is the master version of PR #237, with unit tests.
2014-07-12 09:59:24 -04:00
Chris Beck
14808e186b add unit test for an object-based "feeding" ability
based on tekelili's forum post here:
http://forums.wesnoth.org/viewtopic.php?f=8&t=40449#p572206
2014-06-21 22:08:32 -04:00
Chris Beck
5e9d356c9f unit tests for defining custom event handlers in events and firing 2014-06-21 16:58:40 -04:00
Chris Beck
f43cb8edc2 add tests for scenario ending by killing enemy leader
Tests killing, killing on retal, and levelling up on killing,
in various configurations.
2014-06-07 17:21:00 -04:00
Chris Beck
3a102774b5 fixup pathfind tests, add reachability tests 2014-05-28 01:31:09 -04:00
Chris Beck
6cb367594b test [store_locations], and try to characterize [find_path] 2014-05-27 20:30:30 -04:00
Alexander van Gessel
4d7de12e47 Unit tests for deterministic unit facings 2014-05-27 17:30:13 +02:00
Chris Beck
f664b4e5af add test of [modify_unit] facing= attribute 2014-05-26 23:34:48 -04:00
Chris Beck
b272239ea9 add replace_schedule in prestart test 2014-05-26 20:14:16 -04:00
Chris Beck
ec5ec4fb38 add tests of modify_turns tag 2014-05-26 20:02:05 -04:00