Commit Graph

162 Commits

Author SHA1 Message Date
Antonin Delpeuch
343c8afbea
Ignore invalid regexes from Wikibase format constraints. (#3721)
* Ignore invalid regexes from Wikibase format constraints. Closes #3274.

* Add logging
2021-04-04 13:25:07 -04:00
Antonin Delpeuch
fa9d670d30
Remove EditGroups URL template from Wikibase schema (#3779)
* Remove EditGroups URL template from Wikibase schema

Instead it is fetched from the manifest and stored in operation metadata.

Closes #3656.

* Fix compatibility with older JDKs

* Remove unnecessary fallback in ManifestV1 constructor
2021-04-01 13:58:28 +02:00
Antonin Delpeuch
2a6003c5d2
Sanitize cookie keys in Wikibase extension. Fixes #3745. (#3746) 2021-03-18 07:47:38 +01:00
Ekta Mishra
b92691d946
Add SchemaPropertyFetcher class (#3060)
* Add SchemaPropertyFetcher class

To retrieve and inspect all the properties appearing in the issues tab.

* created new list from unmodifiable lists

* created new list from unmodifiable lists

* rebased successfully

* overriden getMultipleDocuments method

* Test failure issue resolved

* added tests for SchemaPropertyExtractor class
2020-09-17 20:49:44 +02:00
Lu Liu
7d4e182c75
Extend Wikidata extension to support arbitrary Wikibase instances (#2810)
Closes #1640. All Wikibase-dependent parameters, which were previously hard-coded for Wikidata, are now described in a JSON manifest. The manifest is currently constructed by hand, but, in the future, will hopefully be published by each Wikibase instance at a standard location.

* setup the manifest framework

* add dependency mechanism to scrutinizers & update tests

* add json creators to constraint entities

* adapt the backend (units tests are to be updated)

* remove the call to prepareDependencies() in the constructor

* update code according to review feedback

* update scrutinizers tests

* fix typo & update ConstraintsV1

* log if a scrutinizer is skipped

* update versioning handling in the backend

* correct the order of "actual" and "expected" for assertEquals method

* use regex to check manifest versions

* 1. add wikibase-manager.js, wikibase-dialog.js, etc.
2. move dialog/schema-alignment-dialog.js -> schema-alignment.js
3. remove unused schema-alignment-dialog.html
4. change most mentions of "Wikidata" to "Wikibase"

* support saving cookies for different Wikibases & fix LoginCommandTest

* fix schema related tests

* removed unused WikibaseCredentials

* include MediaWiki API endpoint in the schema

* fetch language codes for different Wikibases

* fix lgtm-bot alerts

* keep a connection map (MediaWiki API endpoint => Connection) in ConnectionManager

* simplify the constraint configurations of the manifest and remove lots of unnecessary code.

* add slash to the end of mediawiki.root

* add manifest schema and use ajv to validate the manifest

* remove JSONP support (Wikibase manifest host should support CORS)

* save manifests on manifest update

* add unit tests for Manifest

* include the exception in logger.error() method to make it easier to debug

* include the message of ManifestException when calling respondError

* test multiple connections

* test no manifest & test invalid manifest

* adapt manage-account-dialog.js to support multiple Wikibase connections

* update instance/subclass of related translations

* beautify import-schema-dialog.html

* use "${lang}" variable in the reconciliation service endpoint of the manifest

* adapt schema-alignment.js after introducing "${lang}" variable in the reconciliation service endpoint

* use WikibaseManager.getSelectedWikibaseApi() in SchemaAlignment._getPropertyType

* replace more mentions of "Wikidata" to "Wikibase"

* use WikibaseManager.getSelectedWikibaseApi() in previewrenderer.js

* support fetching language codes of different Wikibases in the frontend

* skip EditInspector if missing 'property_constraint_pid' in the manifest

* improve unit tests for fetching lang codes

* skip scrutinizers depending on fetcher if 'property_constraint_pid' is missing in the manifest

* make sure the schema alignment panel is set up before rendering

* fix preview bug

* add getters of "instance of" and "subclass of" to the Manifest interface and use them in NewItemScrutinizer

* fix hardcode for Wikidata in WbItemVariable

* rename 'entity_prefix' to 'site_iri' and move it from 'manifest.wikibase.properties' to 'manifest.wikibase'

* include oauth configurations in the manifest & support logging in with owner-only consumer for Wikibases with the OAuth extension

* correct schema fallback logic

* select default wikibase according to the saved schema

* include maxlag in the manifest

* [backend] move maxlag setting from preferences to request parameter

* support setting maxlag when uploading edits

* rename "Manage Wikibase" to "Select Wikibase instance" and localize it

* fix manifest updating bug

* include EditGroups in the manifest

* add the reconciliation service from the manifest to standard services if it's not present yet when adding a new manifest

* update according to review feedback

1. use inherited color variable
2. rename 'gridwroks' to 'openrefine'
3. remove unnecessary 'async: true'
4. add 'format: url' validation to urls to the schema

* rename 'wikibasePrefix' to 'siteIri'
2020-08-22 11:58:56 -04:00
Ekta Mishra
f50efb3699
Changed List return type to ImmutableList in Wikidata schema package classes (#3070)
* replaced ImmutableList to unmodifiableList

* added test cases to check unmodifiable Lists

* improved test cases
2020-08-13 09:59:54 +02:00
Tom Morris
52194e1685 Add https for all TestNG DTDs 2020-08-03 12:27:58 -04:00
Ekta Mishra
fb6c309da8
Update EntityCache class (#2991)
* updated EntityCache class

* added overridden methods in CacheLoader and updated test file
2020-07-28 21:03:22 +02:00
Tom Morris
83ed9ffdaf
Refactor importer APIs - Fixes #2963 (#2978)
* Make sure data directory is directory, not a file

* Add a test for zip archive import

Also tests the saving of the archive file name and source filename

* Add TODOs - no functional changes

* Cosmetic cleanups

* Revert importer API changes for archive file name parameter

Fixes #2963
- restore binary compatibility to the API
- hoist the handling of both fileSource and archiveFileName from
TabularImportingParserBase and TreeImportingParserBase to
ImportingParserBase so that there's only one copy. These 3 classes are
all part of the internal implementation, so there should be no
compatibility issue.

* Revert weird flow of control for import options metadata

This reverts the very convoluted control flow that was introduced
when adding the input options to the project metadata. Instead
the metadata is all handled in the importer framework rather than
having to change APIs are have individual importers worry about
it.

The feature never had test coverage, so that is still to be added.

* Add test for import options in project metadata & fix bug

Fixes bug where same options object was being reused and overwritten,
so all copies in the list ended up the same.
2020-07-23 18:36:14 +02:00
Ekta Mishra
a4e5e49aaf
Add Citation needed scrutinizer (#2925)
Implemented Citation needed Cconstraint as part of #2354

Test class added with appropriate testc cases

Updated severity level to critical as well as the messages

merged unsourced and citation-needed scrutinizer

updated severity levels and warning messages
2020-07-21 08:09:37 +02:00
Ekta Mishra
6ab6bacd13
fixed some minor typos and refactoring in scrutinizer test files (#2958) 2020-07-20 20:58:15 +02:00
Ekta Mishra
dd17d7a2b6
Add test-cases for methods defined in WikidataConstraintFetcher (#2943)
* Add test-cases for methods defined in WikidataConstraintFetcher

tests for getConstraintsByTpe & getConstraintStatements methods.

* Tests updated
2020-07-16 18:34:26 +02:00
Ekta Mishra
2bf493a498
Add One-of qualifier value property constraint (#2907)
* Add One-of qualifier value property constraint

Implemented one-of qualifier value property constraint as part of #2354

* Test class added

* Test cases updated and working fine

* resolved merge conflicts
2020-07-15 14:13:49 +02:00
Ekta Mishra
fe275ae634
Move findValues method to EditScrtuinzer (#2941)
* Move findValues method to EditScrtuinzer

As findValues method is not concerned with fetching, therefore moving it to EditScrtuinizer

* updated test classes accordingly

* updated test classes accordingly

* test files updated after shifting the findValues method
2020-07-15 11:46:06 +02:00
Ekta Mishra
c7a8dfb329
Reuse Constraint IDs and Property IDs (#2937)
* Revert "Revert "Reused Constraint IDs and Parameter PIDs (#2893)""

This reverts commit 4c739be843.

* Reuse Constraint IDs and Parameter PIDs

After the cleanup of MockConstraintFetcher, using constraint IDs and property IDs defined in the corresponding scrtinizer for the test files.
2020-07-14 20:51:18 +02:00
Antonin Delpeuch
4c739be843 Revert "Reused Constraint IDs and Parameter PIDs (#2893)"
This introduces a build failure since other refactorings took place.

This reverts commit f41ce3a752.
2020-07-14 20:15:59 +02:00
Ekta Mishra
f41ce3a752
Reused Constraint IDs and Parameter PIDs (#2893)
Reused the hardcodedd constraint & paramter IDs from the scrutinizer classes into the test classes repectively.
2020-07-14 20:12:46 +02:00
Ekta Mishra
c5e6ac9f90
Remove unused scrutinizer specific methods (#2935)
After adding the code for fetching parameters for different scrutinizers in their corresponding classes, we should remove the redundant code from the ConstraintFetcher
2020-07-14 17:51:06 +02:00
Ekta Mishra
bf3d7234b9
Add ItemRequires Constraint (#2901)
* Add ItemRequires Constraint

Implemented Item requires constraint as part of #2354

* done with implementation of ItemRequiresScrutinizer Class

* Test class added with suitable test cases
2020-07-14 16:11:25 +02:00
Ekta Mishra
29f6885ccc
MockConstraintFetcher cleanup part-I (#2882)
* MockConstraintFetcher cleanup part-I

Removed its use from different test files

* Removed MockConstraintFetcher's use from various test files
2020-07-06 18:27:16 +02:00
Ekta Mishra
d871a2e151
Implemented RestrictedPosition Scrutinizer tests using mocks (#2868)
* Implemented RestrictedPosition Scrutinizer tests using mocks

Added RestrictedPositionConstraint class and updated test cases using mocks

* Tests updated & working fine
2020-07-04 14:25:00 +02:00
Ekta Mishra
a0a164bb8b
Implemented ResctrictedValue Scrutinizer tests using mocks (#2877)
* Implemented RestrictedValueScrutinizer tests using mocks

Added AllowedValueConstraint & DisallowedValueConstraint classes & updated the test cases too.

* Tests updated
2020-07-04 14:23:52 +02:00
Antonin Delpeuch
952447461f
Fix wikidata logout when credentials have expired. Fixes #2873 (#2878) 2020-07-04 08:38:17 +02:00
Ekta Mishra
c68047a614
Implemented QuantityScrutinizer tests using Mocks (#2862)
* Implemented QunatityScrutinizer tests using Mockito

Updated test cases and added AllowedUnitsConstraint class

* Test cases updated
2020-07-03 14:14:32 +02:00
Ekta Mishra
9edb1e514d
Implemented Difference-within-range Scrutinizer tests using mocks (#2864)
Updated all test cases and added DifferenceWithinRangeConstraint class.
2020-07-03 14:13:31 +02:00
Ekta Mishra
cd0ed11dad
Implemented Format Scrutinizer tests using Mockito (#2849)
* Implemented Format Scrutinizer tests using Mockito

Updated implementation of the scrutinzer & tests

* Testcases updated in FormatScrutinizerTest
2020-07-02 16:28:56 +02:00
Ekta Mishra
9dfb9114c4
Implemented QualifierComaptibilty Scrutinizer tests using Mockito (#2860)
Updated test cases & added AlLowedQualifierConstraint and MandatoryQualifierConstraint classes.
2020-07-02 14:22:50 +02:00
Ekta Mishra
67bc8581ce
Implemented InverseScrutinizer tests using Mocks (#2855)
* Implemented InverseScrutinizer tests using Mocks

updated testcases and added InverseConstraint Class

* Test cases updated & working fine
2020-07-01 20:49:15 +02:00
Ekta Mishra
cef2e84e7f
Implemented EntityTypeScrutinizer tests usings mocks (#2839)
Updates all the testcases in EntityTypeScrutinizerTest
2020-06-30 22:59:43 +02:00
Ekta Mishra
bc672047f6
Implemented DistinctValueScrutinizer tests using mockito (#2833)
* Implemented DistinctValueScrutinizer tests using mcokito

Added inner class to the scrutinizer and updated the tests using mocks.

* Tests updated-testNoIssue added

* all tests updated & working fine
2020-06-29 16:00:37 +02:00
Ekta Mishra
46c510b5e2
Implemented SingleValue Scrutinizer tests using mocks (#2818)
* Implemented SingleValue Scrutinizer tests using mocks

Updated test class & added inner class to the scrutinizer

* tests updated

* Updated SingleValueConstraint class
2020-06-29 15:59:53 +02:00
Ekta Mishra
f32f6a6ea2
Change return type of getConstraintsByType method (#2838)
changed the return type of getConstraintsByTpye method from Stream<Statement> to List<Statement>
2020-06-29 08:43:38 +02:00
Ekta Mishra
1b04927d12
Add constraint class (#2822)
* Add constraint class

* Add constraint class

* updated names
2020-06-28 10:20:18 +02:00
Ekta Mishra
7ac41b4609
Implemented ConflictsWithScrutinizer tests using Mockito (#2804)
updated test class by creating mocks for ConstraintFetcher

Implemented tests for conflicts-with scrutinizer using mocks

Added testcase for no statementList & multiple constraint.

Implemented tests using mock for conflicts-with scrutinizer

Implemented tests using mock for conflicts-with scrutinizer

Added test case for multiple constraints

Added test case for multiple constraints
2020-06-27 17:17:20 +02:00
Ekta Mishra
8c1d8cdcb7
New implementation for Multivalue Scrutinizer (#2807)
Created inner class for Multivalue & mocks for unit tests

New implementation for multivalue scrutinizer

tests updated
2020-06-26 10:14:34 +02:00
Tom Morris
b59228185e
Merge pull request #2756 from OpenRefine/wikidata-extension-oauth
Wikidata extension two-legged OAuth support
2020-06-19 12:49:52 -04:00
Ekta Mishra
45fab05bf6
New implementation for Conflicts-With Scrutinizer (#2693)
part of #2354
2020-06-19 10:18:21 +02:00
afkbrb
7b237b4d83 call setSecure explicitly & fix HTTP response splitting 2020-06-19 14:38:35 +08:00
Lu Liu
335e81a26c OAuth support for the Wikidata extension (#2661)
Closes #1612 

Merges @afkbrb work to finish @wetneb protype, including:
* adding support for OAuth in addition to basic auth
* supporting registration of single user Wikidata OAuth consumers.
* adding extensive tests
* cleaning up the login dialog

This depends on the next release of the Wikidata Toolkit, but we're currently publishing our own snapshot that includes the necessary changes (thanks @wetneb!)

Co-authored-by: Antonin Delpeuch <antonin@delpeuch.eu>
2020-06-18 23:51:22 -04:00
james-cui
04055153a1
add archive column (#2573)
Co-authored-by: Antonin Delpeuch <antonin@delpeuch.eu>
2020-06-15 19:56:00 +02:00
darecoder1999
4983dbc0f7 Fixed typos made in PR #2641 2020-06-10 09:45:53 +05:30
Ekta Mishra
cf851ee636
Added conflicts-with constraints (#2641)
Implemented conflicts-with scrutinizer as part of #2354
2020-06-09 20:45:15 +02:00
Ekta Mishra
1638d68e35
Added difference-within-range Scrutinizer (#2634) 2020-06-06 19:48:14 +01:00
Ekta Mishra
29a757dc57
Added support for Multi-value Constraint in Wikidata extension (#2629) 2020-05-31 14:24:51 +01:00
james-cui
7311581df0
make maxlag configurable (#2469) 2020-03-26 08:46:49 +01:00
Lu Liu
c20dc69294
mock Wikidata service (#2412) 2020-03-14 15:36:09 +00:00
afkbrb
be5f6e6402 move check functions in DescriptionScrutinizer to CommonDescriptionScrutinizer 2020-03-02 21:59:55 +08:00
afkbrb
82f95f2bbf update DescriptionScrutinizer & create EnglishDescriptionScrutinizer 2020-03-02 14:35:42 +08:00
afkbrb
077b4c7afa add DescriptionScrutinizerTest 2020-03-01 22:04:37 +08:00
afkbrb
6ad252c55a add corresponding tests 2020-02-29 11:05:23 +08:00