Commit Graph

72 Commits

Author SHA1 Message Date
Paul Johnson
bf166225de Move Umbraco.Tests to legacy dir. (#11878)
(makes grep easier)
2022-01-18 10:39:22 +00:00
Paul Johnson
a952d17e74 Make using scoped services in notification handlers less painful. (#11733)
* Add failing test to demo issue with handlers + scoped dependencies.

* Make using scoped services in notification handlers less painful.

* Update comments for accuracy.
2022-01-10 15:31:46 +00:00
Nikolaj Geisle
187cac469e Add package tests (#11824) 2022-01-07 08:55:40 +01:00
Bjarke Berg
642c216f94 Serve Media and App_Plugins using WebRootFileProvider (and allow changing the physical media path) (#11783)
* Allow changing UmbracoMediaPath to an absolute path. Also ensure Imagesharp are handing requests outside of the wwwroot folder.

* Let UmbracoMediaUrl fallback to UmbracoMediaPath when empty

* Add FileSystemFileProvider to expose an IFileSystem as IFileProvider

* Replace IUmbracoMediaFileProvider with IFileProviderFactory implementation

* Fix issue resolving relative paths when media URL has changed

* Remove FileSystemFileProvider and require explicitly implementing IFileProviderFactory

* Update tests (UnauthorizedAccessException isn't thrown anymore for rooted files)

* Update test to use UmbracoMediaUrl

* Add UmbracoMediaPhysicalRootPath global setting

* Remove MediaFileManagerImageProvider and use composited file providers

* Move CreateFileProvider to IFileSystem extension method

* Add rooted path tests

Co-authored-by: Ronald Barendse <ronald@barend.se>
2022-01-06 13:35:24 +01:00
Nikolaj Geisle
bc6d8b5ece v9: Throw error on duplicate routes (#11774)
* Add conflicting route service and check

* Added testclass

* Cleanup

* Update src/Umbraco.Web.BackOffice/Services/ConflictingRouteService.cs

Co-authored-by: Elitsa Marinovska <21998037+elit0451@users.noreply.github.com>

* Implemented out variable

Co-authored-by: Elitsa Marinovska <elm@umbraco.dk>
Co-authored-by: Elitsa Marinovska <21998037+elit0451@users.noreply.github.com>
2021-12-22 13:03:38 +01:00
Nikolaj Geisle
76cf5037e5 v9: Move local xml package files to database instead (#11654)
* Move package to database

* Added migration and implemented new repository

* Updated migrations to use proper xml convert

* Fixed save function and renamed createDate to update date

* Updated dependencyInjection

* Updated UmbracoPlan.cs

* Apply suggestions from code review

Co-authored-by: Elitsa Marinovska <21998037+elit0451@users.noreply.github.com>

* Added File check

* Tried using same context as create table

* Fix DTO

* Fix GetById and local package saving

* Fix images when migrating

* Implement deletion of all local files

* Only delete local repo file, not file snapshots

* Remove static package path and use the one we save

* Update package repo to export package and remove check for ids when exporting

* Minor fixes

* Fix so that you can download package after creating

* Update savePackage method to export package afterwards

Co-authored-by: Nikolaj Geisle <niko737@edu.ucl.dk>
Co-authored-by: Elitsa Marinovska <elm@umbraco.dk>
Co-authored-by: Elitsa Marinovska <21998037+elit0451@users.noreply.github.com>
2021-12-21 14:02:49 +01:00
Ronald Barendse
0ba51f87ea Move member properties to Member Content App (V9 merge regression) (#11768)
* Fix regression after merging to v9

* Update test to align with removed member properties
2021-12-20 08:45:11 +01:00
Bjarke Berg
341aac44b5 Fixed tests after merge 2021-12-14 21:24:19 +01:00
Mole
2268b1e187 Package telemetry (#11738)
* Add TelemetryService

Currently it only allows you to get a list of the name of all the installed packages

* Create model class for package telemetry

And move the telemetry report data out of ReportSiteTask

* Add version as an option in package manifest

* Use TelemetryService to generate telemetry data

Instead of doing it directly in the ReportSiteTask

* Seal TelemetryService

This should not be overwritten

* Add option for package creators to opt out

* Add global setting to restrict package telemetry

* Add TelemetryService unit tests

* Add ManifestParser tests for new properties

* Clean

* Update src/Umbraco.Core/Telemetry/TelemetryService.cs

Co-authored-by: Bjarke Berg <mail@bergmania.dk>

* Create interface for telemetry service

* Use IOptionsMonitor instead of IOptions

However I chose to use CurrentValue since according to microsoft: "Some file systems, such as Docker containers and network shares, may not reliably send change notifications.", additionally TelemetryService only runs once pr. day, so it shouldn't be too much of an issue that it doesn't cache the result.

* Use is false instead of negation

It's a bit more readable

* Track restrict package telemetry value

* Save RestrictPackageTelemetry in report data

Not packages, since it'll be the same for all packages

* Fix TelemetryService unit tests

* Clean

* Update src/Umbraco.Core/Telemetry/ITelemetryService.cs

Co-authored-by: Bjarke Berg <mail@bergmania.dk>

* Remove RestrictPackageTelemetry

Co-authored-by: Bjarke Berg <mail@bergmania.dk>
2021-12-14 16:09:31 +01:00
Sebastiaan Janssen
bc80892f51 Merge branch 'v9/contrib' into v9/dev
# Conflicts:
#	src/Umbraco.Web.UI.Client/src/common/directives/components/localization/localize.directive.js
#	src/Umbraco.Web.UI/umbraco/config/lang/en.xml
#	src/Umbraco.Web.UI/umbraco/config/lang/en_us.xml
#	tests/Umbraco.Tests.AcceptanceTest/cypress/integration/Languages/languages.ts
2021-12-14 13:32:46 +01:00
Elitsa Marinovska
a6903d8abe V9: Display configured log levels (#11715)
* Adding ILogLevelLoader to get Serilog level values (global one and umbraco) and the corresponding dependencies

* Obsoleting old methods

* Fix tests

* Front-end changes

* Changes requested in a review
2021-12-06 11:06:55 +01:00
Bjarke Berg
568dc19929 Merge remote-tracking branch 'origin/v9/9.1' into v9/dev
# Conflicts:
#	build/templates/UmbracoPackage/.template.config/template.json
#	build/templates/UmbracoProject/.template.config/template.json
#	src/Directory.Build.props
2021-12-03 07:20:19 +01:00
Bjarke Berg
915f1cb34c V9: Fix for migration of non-default configurated users/members (#11684)
* https://github.com/umbraco/Umbraco-CMS/issues/11366
Fallback to try login using super legacy HMACSHA1 even when the algorithm is stated as being HMACSHA256. The issue is that v8 saves HMACSHA256 on the user, but when configured to use legacy encoding it actually uses HMACSHA1

* Support migration of members with:
UseLegacyEncoding+Clear
UseLegacyEncoding+Encrypted (Requires machine key)
UseLegacyEncoding+Hashed

* Fixes unit tests

* Avoid exceptions + unit tests

* Save unknown algorithm if we dont know it, instead of persisting a wrong algorithm.

* Added setting to enable clear text password rehashes.

* Removed support for migration of clear text passwords

* Fixed unit test
2021-12-02 10:54:24 +00:00
Paul Johnson
fce97314bd Cherry-pick: support import/export for doc type history cleanup policy (#11708)
* cherry-pick 13a51d32 (V8 History cleanup import/export)

Support import/export for doc type history cleanup policy (#11660)

* Support import/export for doc type history cleanup policy

* Support unset/null history cleanup value

* Resolve issue when api endpoints called without cleanup policy.
noop isn't good enough as map fails for response.

* null conditional vs null coalesce assignment

* Don't overwrite existing policy if omitted in import XML

* Update history cleanup warning and translations

* Change history cleanup alert to infomational styling

* Remove margin around history cleanup config

Co-authored-by: Ronald Barendse <ronald@barend.se>
# Conflicts:
#	src/Umbraco.Core/Models/IContentType.cs
#	src/Umbraco.Core/Packaging/PackageDataInstallation.cs
#	src/Umbraco.Infrastructure/Persistence/Repositories/Implement/ContentTypeRepository.cs
#	src/Umbraco.Infrastructure/Services/Implement/EntityXmlSerializer.cs
#	src/Umbraco.Tests/Packaging/PackageDataInstallationTests.cs
#	src/Umbraco.Tests/Services/Importing/ImportResources.Designer.cs
#	src/Umbraco.Tests/Umbraco.Tests.csproj
#	src/Umbraco.Web.UI/umbraco/config/lang/en.xml
#	src/Umbraco.Web.UI/umbraco/config/lang/en_us.xml
#	src/Umbraco.Web/Models/Mapping/ContentTypeMapDefinition.cs
#	tests/Umbraco.Tests.Integration/Umbraco.Infrastructure/Services/Importing/ImportResources.resx
#	tests/Umbraco.Tests.UnitTests/Umbraco.Core/Services/Importing/SingleDocType-WithCleanupPolicy.xml

* Remove namespace aliases

* Update IContentTypeWithHistoryCleanup documentation

Co-authored-by: Ronald Barendse <ronald@barend.se>
2021-12-02 11:37:12 +01:00
Paul Johnson
08f106a23f Fix smidge bundles not always invalidated between backoffice versions. (#11700)
* Introduced new smidge CacheBuster with sensible defaults.

* Bring back reset functionality in SmidgeRuntimeMinifier

* Clearer obsolete messaging.
2021-12-02 11:32:19 +01:00
Paul Johnson
6a2a5d7fc9 Bugfixes for MNTP / EntityController (#11685)
* Added EntityController.GetUrlsByIds support for int & guid + update MNTP

Fixes issue with MNTP (for 8.18) in a partial view macro - GH #11631

Renamed GetUrlsByUdis to match, don't do this in v9 as it would be
breaking there, instead mark it obsolete.

TODO: v9 ensure integration test coverage, more painful here as no
WebApplicationFactory.

* Added partial test coverage for GetUrlsByIds.

This doesn't actually work in the backoffice because of GH #11448

So lets fix that next.

* Failing test demonstrating #11448

* Fix for #11448 getByIds doesn't work as expected.

ParameterSwapControllerActionSelectorAttribute - cached body survived between requests.

* Expand on sync vs async comment for future confused souls.

* Might aswell cache parsed json vs string for performance

* Make ParameterSwapControllerActionSelector remarks more accurate.

* Share deserialized request body between action constraint and model binder

* Be more defensive with RequestBodyAsJObject HttpContext item

Only store if deserialize success.
Don't assume key being present means can cast as JObject.

* Nest constant a little deeper.

* Final defensive tweak
2021-11-25 13:47:59 +01:00
Nikolaj Geisle
e0701ccd48 Merge branch 'v9/dev' into v9/feature/update-imagesharp-web
# Conflicts:
#	src/Umbraco.Tests.AcceptanceTest/cypress/integration/Users/users.ts
#	src/Umbraco.Web.UI/umbraco/config/lang/cy.xml
#	src/Umbraco.Web.UI/umbraco/config/lang/da.xml
#	src/Umbraco.Web.UI/umbraco/config/lang/en.xml
#	src/Umbraco.Web.UI/umbraco/config/lang/en_us.xml
#	src/Umbraco.Web.UI/umbraco/config/lang/it.xml
#	src/Umbraco.Web.UI/umbraco/config/lang/nl.xml
#	tests/Umbraco.Tests.AcceptanceTest/cypress/integration/DataTypes/dataTypes.ts
2021-11-24 09:11:52 +01:00
Bjarke Berg
8fd013819d Merge remote-tracking branch 'origin/v9/9.1' into v9/dev 2021-11-19 09:29:45 +01:00
Bjarke Berg
082e703863 Migrated / Rewritten ScopedNuCacheTests (#11636)
* Migrated / Rewritten ScopedNuCacheTests

* Cleanup

Co-authored-by: Elitsa Marinovska <elm@umbraco.dk>
2021-11-18 13:34:10 +01:00
Bjarke Berg
b0a4a92f57 ContentVersion cleanup backoffice UI (#11637) (#11644)
* ContentVersion cleanup backoffice UI (#11637)

* init rollback ui prototype

* add busy state to button, deselect version, add pagination status

* add localisation

* style current version

* disable rollback button when nothing is selected

* stop click event

* Endpoints for paginated content versions.
Light on tests, tight on time.

* Endpoints to "pin" content versions

* camel case json output.
Not sure why json formatter not set for controller, bit risky to add it now

* wire up paging

* wire up pin/unpin

* rename getPagedRollbackVersions to getPagedContentVersions

* prevent selection of current version and current draft

* add current draft and current version to UI

* remove pointer if the row is not selectable

* Improve warning for globally disabled cleanup feature.

* Fix current loses prevent cleanup state on publish.

* Added umbracoLog audit entries for "pin" / "unpin"

* Match v9 defaults for keepVersions settings

* Fix - losing preventCleanup on save current with content changes

* update pin/unpin button labels

* fix pagination bug

* add missing "

* always send culture when a doc type can vary

Co-authored-by: Mads Rasmussen <madsr@hey.com>
# Conflicts:
#	src/Umbraco.Core/ContentEditing/ContentVersionMetaViewModel.cs
#	src/Umbraco.Core/Models/HistoricContentVersionMeta.cs
#	src/Umbraco.Infrastructure/Services/Implement/ContentService.cs
#	src/Umbraco.Tests/Persistence/Repositories/DocumentVersionRepository_Tests_Integration.cs
#	src/Umbraco.Tests/Services/ContentVersionCleanupService_Tests_UnitTests.cs
#	src/Umbraco.Web.BackOffice/Controllers/ContentController.cs
#	src/Umbraco.Web.UI.Client/src/common/resources/content.resource.js
#	src/Umbraco.Web.UI/config/umbracoSettings.Release.config
#	src/Umbraco.Web.UI/umbraco/config/lang/en.xml
#	src/Umbraco.Web.UI/umbraco/config/lang/en_us.xml
#	src/Umbraco.Web/Umbraco.Web.csproj

* Added tests

* Misc - missed translation update

* Bugfix - DocumentVersionRepository.Get should not join culture variation

* Bugfix - Missing write lock

* Removed unnecessary view model

* Misc - kill some warnings

* Misc - Kill some more warnings

* Fixed cypress rollback test

* Bugfix - Policy returns items to delete not items to keep.
Switch to inverse behavior.

# Conflicts:
#	src/Umbraco.Tests/Services/DefaultContentVersionCleanupPolicy_Tests_UnitTests.cs

Co-authored-by: Paul Johnson <pmj@umbraco.com>
2021-11-16 13:04:31 +01:00
Matt Darby
0a626c6c2a Replace .first() with localize (#11341)
Replaced usage of first() with localize to target specific action in context menu
2021-11-16 09:25:04 +10:00
Paul Johnson
af942b2558 V9/bugfix/fix lucene immense raw fields prevent indexing (#11599)
* Added failing test to demonstrate issue with large raw_ fields.

* Switched to StoredField to avoid indexing error for immense fields.

StringField indexes all the content as a single token and has a max
length of 32766.

StoredField does not analyze/index the field but enables retrieval with
luceneSearcher.Doc(docId)

Closes GH #11487
2021-11-15 14:24:54 +01:00
Paul Johnson
958cd03b00 V9/bugfix/fix lucene immense raw fields prevent indexing (#11599)
* Added failing test to demonstrate issue with large raw_ fields.

* Switched to StoredField to avoid indexing error for immense fields.

StringField indexes all the content as a single token and has a max
length of 32766.

StoredField does not analyze/index the field but enables retrieval with
luceneSearcher.Doc(docId)

Closes GH #11487
2021-11-15 14:24:20 +01:00
Paul Johnson
f64894d37b Make PublishedContentQueryAccessor usable (#11601)
* Make PublishedContentQueryAccessor usable

Closes #11319

* Make xmldocs for IPublishedContentQueryAccessor more helpful.
2021-11-15 14:23:35 +01:00
Paul Johnson
d147d7d412 Make PublishedContentQueryAccessor usable (#11601)
* Make PublishedContentQueryAccessor usable

Closes #11319

* Make xmldocs for IPublishedContentQueryAccessor more helpful.
2021-11-15 14:23:02 +01:00
Nikolaj Geisle
32d8e0bb96 v9: Fix tests on Linux (#11586)
* downgraded cypress, updated package

* Fixed language test

* Fix language test

* Fixed routing tests to wait for popup

* Publish test artifacts

* Added better element to wait on

* Fix routing tests for linux

* Fix language tests on linux

* Stablize tabs tests

* Implement waiting for inner tree like in content tests

* Assert that we are in settings section so we dont click an element that doesnt exist

* Fixed rollback by not doing cy.reload()

* Fix language test with correct wait

* Stabilize dataTypes by moving API Call, and stabilize systemInformation.ts test by waiting for success notification

* Fix dataTypes, tabs and template tests

* Update node to newer version in package-lock.json and fix template test

* Implemented cy.wait to test if it is because we are too fast

* Added comments

* Bigger wait

* Try another wait instead of magic numbers

Co-authored-by: Nikolaj Geisle <niko737@edu.ucl.dk>
2021-11-15 14:20:10 +01:00
Nikolaj Geisle
5d19c663cd v9: Fix tests on Linux (#11586)
* downgraded cypress, updated package

* Fixed language test

* Fix language test

* Fixed routing tests to wait for popup

* Publish test artifacts

* Added better element to wait on

* Fix routing tests for linux

* Fix language tests on linux

* Stablize tabs tests

* Implement waiting for inner tree like in content tests

* Assert that we are in settings section so we dont click an element that doesnt exist

* Fixed rollback by not doing cy.reload()

* Fix language test with correct wait

* Stabilize dataTypes by moving API Call, and stabilize systemInformation.ts test by waiting for success notification

* Fix dataTypes, tabs and template tests

* Update node to newer version in package-lock.json and fix template test

* Implemented cy.wait to test if it is because we are too fast

* Added comments

* Bigger wait

* Try another wait instead of magic numbers

Co-authored-by: Nikolaj Geisle <niko737@edu.ucl.dk>
2021-11-15 14:19:34 +01:00
Jesper Mayntzhusen
ea9d6919a8 Cy create language (#11546)
* add create language test

* add create language test

* fix bug, move test to new folder and add type definitions

* update to use culture command

Co-authored-by: Jesper <jmh@umbraco.dk>
2021-11-14 02:20:17 +01:00
Bjarke Berg
b0e39fe548 Merge branch 'v9/dev' into v9/9.1 2021-11-12 14:53:11 +01:00
Nikolaj Geisle
d66fde6056 Fix after cherry pick 2021-11-12 14:42:53 +01:00
Nikolaj Geisle
15fa9e1bc1 v9: Don't load all translation files (#11576)
* Update systemInformation.ts

* Added lazy loading

* Update systemInformation.ts

* Update systemInformation.ts

* Use CharArrays.ForwardSlash instead of hardcoded string

* Align braces

Co-authored-by: Nikolaj Geisle <niko737@edu.ucl.dk>
Co-authored-by: Elitsa Marinovska <elm@umbraco.dk>
2021-11-12 14:37:50 +01:00
Nikolaj Geisle
837cef0b14 Update user test to use constants 2021-11-11 13:06:09 +01:00
Nikolaj Geisle
f5ea5df8f3 v9: Don't load all translation files (#11576)
* Update systemInformation.ts

* Added lazy loading

* Update systemInformation.ts

* Update systemInformation.ts

* Use CharArrays.ForwardSlash instead of hardcoded string

* Align braces

Co-authored-by: Nikolaj Geisle <niko737@edu.ucl.dk>
Co-authored-by: Elitsa Marinovska <elm@umbraco.dk>
2021-11-10 11:48:09 +01:00
Paul Johnson
cf38e3a97b Separate customizations for clarity 2021-11-09 19:40:20 +00:00
Bjarke Berg
17abf0474c Added unit tests for ContentVersionService (#11597)
* Added unit tests for ContentVersionService

* Clean up

* Fixed tests after using ConfigureMembers = true

* Fixed tests after using ConfigureMembers = true
2021-11-09 16:48:50 +00:00
Nikolaj Geisle
07feb8f79b Downgraded cypress to 8.4.1 2021-11-05 09:10:37 +01:00
Nikolaj Geisle
cd596b444e v9: Implemented new routing tests (#11571)
* Implemented new routing tests

* Update package-lock.json

* Cleanup

* Updated routing to cleanup before and after tests

Co-authored-by: Nikolaj Geisle <niko737@edu.ucl.dk>
Co-authored-by: Elitsa Marinovska <elm@umbraco.dk>
2021-11-04 16:54:25 +01:00
Nikolaj Geisle
1359eb8f77 v9: Create new 'delete stylesheet' cypress test (#11528)
* Create new cypress test- delete stylesheet

* Cleanup

Co-authored-by: Elitsa Marinovska <elm@umbraco.dk>
Co-authored-by: Nikolaj Geisle <niko737@edu.ucl.dk>
2021-11-04 16:49:21 +01:00
Nikolaj Geisle
740c2e4b53 Update systemInformation.ts (#11572)
Co-authored-by: Nikolaj Geisle <niko737@edu.ucl.dk>
2021-11-04 14:07:59 +01:00
Sebastiaan Janssen
16b0e85ccb Merge branch 'v8/dev' into v9/dev
# Conflicts:
#	src/Umbraco.Tests.AcceptanceTest/cypress/integration/Tour/backofficeTour.ts
#	src/Umbraco.Tests.AcceptanceTest/cypress/integration/Tours/backofficeTour.ts
#	src/Umbraco.Tests.AcceptanceTest/cypress/integration/Users/users.ts
#	src/Umbraco.Tests.AcceptanceTest/cypress/support/commands.js
#	src/Umbraco.Web.UI/umbraco/config/lang/en.xml
#	src/Umbraco.Web.UI/umbraco/config/lang/en_us.xml
#	tests/Umbraco.Tests.AcceptanceTest/cypress/integration/Tours/backofficeTour.ts
#	tests/Umbraco.Tests.AcceptanceTest/package-lock.json
2021-11-03 17:12:33 +01:00
Nikolaj Geisle
a3797aaeef v9: Fixing flaky cypress test "Macro in Grid" (#11485)
* fixed flaky macro test and updated cypress version

* fixed flaky macro test and updated cypress version

* Update package.json

* Fixed failing tabs test

* Amend magic numbers with actual wait

* Update tests/Umbraco.Tests.AcceptanceTest/cypress/integration/Content/content.ts

* Updated UI to click on button instead of icon

* Make macro test click bottom to ensure we're not clicking on icon

Co-authored-by: Nikolaj Geisle <niko737@edu.ucl.dk>
(cherry picked from commit 34be464cf8)

# Conflicts:
#	tests/Umbraco.Tests.AcceptanceTest/cypress/integration/Tabs/tabs.ts
2021-11-03 17:03:14 +01:00
Nikolaj Geisle
0bd82d33aa v9: Update cypress to newest version and fix errors (#11486)
* fixed flaky macro test and updated cypress version

* fixed flaky macro test and updated cypress version

* Update package.json

* Updated cypress to 8.6 and fixed failing script test

* Updated cypress to 8.6 and fixed failing script test

* Update package-lock.json

* Fixed Scripts and stylesheet tests with proper waits instead of magic numbers

* Updated to newest version of cypress and fixed template test

* Remove duplicate click

* Revert version to 8.4.1

* changed template

Co-authored-by: Nikolaj Geisle <niko737@edu.ucl.dk>
(cherry picked from commit e9ae567617)

# Conflicts:
#	src/Umbraco.Tests.AcceptanceTest/package.json
#	tests/Umbraco.Tests.AcceptanceTest/package-lock.json
2021-11-03 17:03:14 +01:00
Bjarke Berg
7f061bd818 Merge pull request #11570 from umbraco/v9/feature/merge_v9_contrib_03-11-2021
V9: Merge `v9/contrib` 03-11-2021
2021-11-03 14:54:59 +01:00
Bjarke Berg
be65f12ed7 Updated nuget dependencies 2021-11-03 14:29:59 +01:00
Sebastiaan Janssen
692f952293 Merge branch 'v9/contrib' into v9/dev
# Conflicts:
#	src/Umbraco.Web.BackOffice/Controllers/ContentTypeController.cs
2021-11-03 13:05:43 +01:00
Bjarke Berg
109487f117 Merge pull request #11568 from umbraco/v9/feature/merge_v8_03-11-2021
V9: Merge v8: 03-11-2021
2021-11-03 12:56:23 +01:00
Bjarke Berg
a91d708bc5 cleanup 2021-11-03 12:11:05 +01:00
Bjarke Berg
fb953ad532 Only run this test on windows 2021-11-03 12:10:42 +01:00
Elitsa Marinovska
236bf88143 Cleanup 2021-11-03 10:23:50 +01:00
Bjarke Berg
ab96e7c17d fix for linux+mac 2021-11-03 09:11:30 +01:00