diff --git a/core/modules/migrate_drupal_ui/src/Tests/MigrateAccessTest.php b/core/modules/migrate_drupal_ui/src/Tests/MigrateAccessTest.php deleted file mode 100644 index 04f2048..0000000 --- a/core/modules/migrate_drupal_ui/src/Tests/MigrateAccessTest.php +++ /dev/null @@ -1,37 +0,0 @@ -drupalLogin($this->rootUser); - $this->drupalGet('upgrade'); - $this->assertResponse(200); - $this->assertText(t('Upgrade')); - - $user = $this->createUser(['administer software updates']); - $this->drupalLogin($user); - $this->drupalGet('upgrade'); - $this->assertResponse(403); - $this->assertNoText(t('Upgrade')); - } - -} diff --git a/core/modules/migrate_drupal_ui/src/Tests/MigrateUpgradeTestBase.php b/core/modules/migrate_drupal_ui/src/Tests/MigrateUpgradeTestBase.php deleted file mode 100644 index b635f2a..0000000 --- a/core/modules/migrate_drupal_ui/src/Tests/MigrateUpgradeTestBase.php +++ /dev/null @@ -1,207 +0,0 @@ -createMigrationConnection(); - $this->sourceDatabase = Database::getConnection('default', 'migrate_drupal_ui'); - - // Log in as user 1. Migrations in the UI can only be performed as user 1. - $this->drupalLogin($this->rootUser); - } - - /** - * Loads a database fixture into the source database connection. - * - * @param string $path - * Path to the dump file. - */ - protected function loadFixture($path) { - $default_db = Database::getConnection()->getKey(); - Database::setActiveConnection($this->sourceDatabase->getKey()); - - if (substr($path, -3) == '.gz') { - $path = 'compress.zlib://' . $path; - } - require $path; - - Database::setActiveConnection($default_db); - } - - /** - * Changes the database connection to the prefixed one. - * - * @todo Remove when we don't use global. https://www.drupal.org/node/2552791 - */ - protected function createMigrationConnection() { - $connection_info = Database::getConnectionInfo('default')['default']; - if ($connection_info['driver'] === 'sqlite') { - // Create database file in the test site's public file directory so that - // \Drupal\simpletest\TestBase::restoreEnvironment() will delete this once - // the test is complete. - $file = $this->publicFilesDirectory . '/' . $this->testId . '-migrate.db.sqlite'; - touch($file); - $connection_info['database'] = $file; - $connection_info['prefix'] = ''; - } - else { - $prefix = is_array($connection_info['prefix']) ? $connection_info['prefix']['default'] : $connection_info['prefix']; - // Simpletest uses fixed length prefixes. Create a new prefix for the - // source database. Adding to the end of the prefix ensures that - // \Drupal\simpletest\TestBase::restoreEnvironment() will remove the - // additional tables. - $connection_info['prefix'] = $prefix . '0'; - } - - Database::addConnectionInfo('migrate_drupal_ui', 'default', $connection_info); - } - - /** - * {@inheritdoc} - */ - protected function tearDown() { - Database::removeConnection('migrate_drupal_ui'); - parent::tearDown(); - } - - /** - * Executes all steps of migrations upgrade. - */ - public function testMigrateUpgrade() { - $connection_options = $this->sourceDatabase->getConnectionOptions(); - $this->drupalGet('/upgrade'); - $this->assertText('Upgrade a site by importing it into a clean and empty new install of Drupal 8. You will lose any existing configuration once you import your site into it. See the online documentation for Drupal site upgrades for more detailed information.'); - - $this->drupalPostForm(NULL, [], t('Continue')); - $this->assertText('Provide credentials for the database of the Drupal site you want to upgrade.'); - $this->assertFieldByName('mysql[host]'); - - $driver = $connection_options['driver']; - $connection_options['prefix'] = $connection_options['prefix']['default']; - - // Use the driver connection form to get the correct options out of the - // database settings. This supports all of the databases we test against. - $drivers = drupal_get_database_types(); - $form = $drivers[$driver]->getFormOptions($connection_options); - $connection_options = array_intersect_key($connection_options, $form + $form['advanced_options']); - $edit = [ - $driver => $connection_options, - 'source_base_path' => $this->getSourceBasePath(), - ]; - if (count($drivers) !== 1) { - $edit['driver'] = $driver; - } - $edits = $this->translatePostValues($edit); - - // Ensure submitting the form with invalid database credentials gives us a - // nice warning. - $this->drupalPostForm(NULL, [$driver . '[database]' => 'wrong'] + $edits, t('Review upgrade')); - $this->assertText('Resolve the issue below to continue the upgrade.'); - - $this->drupalPostForm(NULL, $edits, t('Review upgrade')); - $this->assertResponse(200); - $this->assertText('Are you sure?'); - $this->drupalPostForm(NULL, [], t('Perform upgrade')); - $this->assertText(t('Congratulations, you upgraded Drupal!')); - - // Have to reset all the statics after migration to ensure entities are - // loadable. - $this->resetAll(); - - $expected_counts = $this->getEntityCounts(); - foreach (array_keys(\Drupal::entityTypeManager() - ->getDefinitions()) as $entity_type) { - $real_count = \Drupal::entityQuery($entity_type)->count()->execute(); - $expected_count = isset($expected_counts[$entity_type]) ? $expected_counts[$entity_type] : 0; - $this->assertEqual($expected_count, $real_count, "Found $real_count $entity_type entities, expected $expected_count."); - } - - $version_tag = 'Drupal ' . $this->getLegacyDrupalVersion($this->sourceDatabase); - $plugin_manager = \Drupal::service('plugin.manager.migration'); - /** @var \Drupal\migrate\Plugin\Migration[] $all_migrations */ - $all_migrations = $plugin_manager->createInstancesByTag($version_tag); - foreach ($all_migrations as $migration) { - $id_map = $migration->getIdMap(); - foreach ($id_map as $source_id => $map) { - // Convert $source_id into a keyless array so that - // \Drupal\migrate\Plugin\migrate\id_map\Sql::getSourceHash() works as - // expected. - $source_id_values = array_values(unserialize($source_id)); - $row = $id_map->getRowBySource($source_id_values); - $destination = serialize($id_map->currentDestination()); - $message = "Migration of $source_id to $destination as part of the {$migration->id()} migration. The source row status is " . $row['source_row_status']; - // A completed migration should have maps with - // MigrateIdMapInterface::STATUS_IGNORED or - // MigrateIdMapInterface::STATUS_IMPORTED. - if ($row['source_row_status'] == MigrateIdMapInterface::STATUS_FAILED || $row['source_row_status'] == MigrateIdMapInterface::STATUS_NEEDS_UPDATE) { - $this->fail($message); - } - else { - $this->pass($message); - } - } - } - \Drupal::service('module_installer')->install(['forum']); - \Drupal::service('module_installer')->install(['book']); - } - - /** - * Gets the source base path for the concrete test. - * - * @return string - * The source base path. - */ - abstract protected function getSourceBasePath(); - - /** - * Gets the expected number of entities per entity type after migration. - * - * @return int[] - * An array of expected counts keyed by entity type ID. - */ - abstract protected function getEntityCounts(); - -} diff --git a/core/modules/migrate_drupal_ui/src/Tests/d6/MigrateUpgrade6Test.php b/core/modules/migrate_drupal_ui/src/Tests/d6/MigrateUpgrade6Test.php deleted file mode 100644 index b2ef041..0000000 --- a/core/modules/migrate_drupal_ui/src/Tests/d6/MigrateUpgrade6Test.php +++ /dev/null @@ -1,90 +0,0 @@ -loadFixture(drupal_get_path('module', 'migrate_drupal') . '/tests/fixtures/drupal6.php'); - } - - /** - * {@inheritdoc} - */ - protected function getSourceBasePath() { - return __DIR__ . '/files'; - } - - /** - * {@inheritdoc} - */ - protected function getEntityCounts() { - return [ - 'aggregator_item' => 1, - 'aggregator_feed' => 1, - 'block' => 35, - 'block_content' => 2, - 'block_content_type' => 1, - 'comment' => 3, - 'comment_type' => 3, - 'contact_form' => 5, - 'configurable_language' => 5, - 'editor' => 2, - 'field_config' => 72, - 'field_storage_config' => 47, - 'file' => 7, - 'filter_format' => 7, - 'image_style' => 5, - 'language_content_settings' => 2, - 'migration' => 105, - 'node' => 16, - 'node_type' => 13, - 'rdf_mapping' => 7, - 'search_page' => 2, - 'shortcut' => 2, - 'shortcut_set' => 1, - 'action' => 22, - 'menu' => 8, - 'taxonomy_term' => 7, - 'taxonomy_vocabulary' => 6, - 'tour' => 4, - 'user' => 7, - 'user_role' => 6, - 'menu_link_content' => 4, - 'view' => 14, - 'date_format' => 11, - 'entity_form_display' => 19, - 'entity_form_mode' => 1, - 'entity_view_display' => 43, - 'entity_view_mode' => 14, - 'base_field_override' => 38, - ]; - } - - /** - * Executes all steps of migrations upgrade. - */ - public function testMigrateUpgrade() { - parent::testMigrateUpgrade(); - - // Ensure migrated users can log in. - $user = User::load(2); - $user->pass_raw = 'john.doe_pass'; - $this->drupalLogin($user); - } - -} diff --git a/core/modules/migrate_drupal_ui/src/Tests/d6/files/core/modules/simpletest/files/html-1.txt b/core/modules/migrate_drupal_ui/src/Tests/d6/files/core/modules/simpletest/files/html-1.txt deleted file mode 100644 index 494470d..0000000 --- a/core/modules/migrate_drupal_ui/src/Tests/d6/files/core/modules/simpletest/files/html-1.txt +++ /dev/null @@ -1 +0,0 @@ -

SimpleTest HTML

\ No newline at end of file diff --git a/core/modules/migrate_drupal_ui/src/Tests/d6/files/core/modules/simpletest/files/image-1.png b/core/modules/migrate_drupal_ui/src/Tests/d6/files/core/modules/simpletest/files/image-1.png deleted file mode 100644 index 09e64d6..0000000 --- a/core/modules/migrate_drupal_ui/src/Tests/d6/files/core/modules/simpletest/files/image-1.png +++ /dev/null @@ -1,179 +0,0 @@ -PNG - - IHDRh̡dIDATx^deו&}k{߻Ub%*%REV qذ aܰ fdz P1=b>rr(*'!(> m9c B1a4ˁ%-)CT'% b}gԥX)p9p͡3+a I7 -9"epS3S$%hQyRas$IycaUahZs*+hݥj`K.I@DP FHRqv14#P&BE5Q+̓A 0ALJ`g)\ǒaB;0M|+`QS - QJs9EPA$"Y$TH0%3SJP ɤrRZpQ$4o~@)td,bIo(t7b>\j}805rf(*f2 JP1hL(/cDuK\h %{\j'hU1M+SPB= V+&K迫B>xDBxYzpP8ir4L^Y12s@߯UjEIa(۾4%#X2ԭFcdBS_^Lbx N5hϜxUce{`?mB"W~寞{Y}Ds"k!&E3+%^d@mS"ǽ^ Yr;fI\ngݒ,"\oi?Fa/3/t]5f2G~\~mXcD |7qg6_%K W_#٢ D `|H؜yZ Eac8u@[3xX;Ř`hq*go$ko!|*4alz ضW٫j$sWٳb 4C#8X=лWطnW0Ƕanwα2XnHrsбmls%GxgG9n=pw6G]Zi'GDDs(:=Q]'*i-&+G -@'\S2M8ܽxv~X*xͻN_xC/w2lק냛WMuzO흭O9aBRl?Pl6_h4cO}||u={{)Al:AhgO=/-7C7/O.rX~[۳g\:w4kƉ?ֽc|Y lEYiͫqpx6}>>_lv> Fx(347տKNn}oKv|gu,p:F9 GG?p5#cR4иPEc¡d`&Ƽ1Y@S^@ >#3Gt ir@\FU'6nnlȾ; >b@ k-\=ѩn@ 'Oηn5c߬~问۟g"vO6 yb~n&fq٭;2_v-pVm~;s'A,Bɻ #Q,LB0Irba$o-&ňޘ*Lila&F@z3?p 0ۺ6/]k;u}wGl K?uhǿv#7ډzkzOz;~PVֺ.w](,tmsskU?Y?ql_zWW ,zXz(L*I#U -t#1y!L9 g&U셓Dwh LioAg -"ث2?=qQ.z -ȡ4Wi3] ygtvM.~݃G|9sowlޙ5\n. -(;K5XՕN\3Y6.678?Ls[$xt":( Ll2 - 8 8b 0Z`L|B=ENsiL Ԋ>qeÚcoy[ ޏW(ko?g{{7?ۻԹK7/r{٥gZ޺3pps/7 G#:pG\EZ_;8wim{7]*puf{鲍 -wW~&+"FVS LoweL̥U9&{Qe$z~"E5kSF9lo{쁛?Z7*\TX }[/7f˽/if% -o'eucݨk&P.C[lp_ pw(&8,gLU|+2 /H;#ܧ'ǃ1w$_Ż,T )hm1¬#F/\8uGR_߯f_ls/O|?~߼iM@DIΟxp{sTYok64=v ?sVWA_(@7dK%&*oU -BHzFk 0x`AUncD4Y;n~H4,/\ֿ o>AOO$KWB `a;bvƹ$̱Jb׫ [{cvzty{&]]H2SI!F⩾bO 3u6  sfZL]S(/~Vm`%F/^:ȩm,>2 J.)Lis_ZPVlPl(0~x(CyvzDjs-;n"Ey;ʔ""Yve阓N$<) ->e37sݍRnsFU7sDu٣wrT;?{ok]񶘷Чt&3b<杧w!uᑀ WHYKPfFLBOH)5kz_A_H `Nc@g `szm.:[CS(:M淲_v;w?"*"}#L@Qp*{QyѳW7;F5a/=`}OZ6 B xaݤ0=# 5UnAd;4G4ϖuĤbY]4Nh3@:O;b)c>"TkV6dErK - -d`]%Z@洦﯃F1~l$3p^zw;):)%S|1WnZ?)>ta}/,?SY{ 1di IS %{L˥!羷/s8O qw[;D{A)v\(oiqYMbM4&&@IMb|@:{ WeN=U$E$d}|OԿ>%Q _csOϚ&rdZg$j3бBũQ -+М ޞL 5 NU$v8JkR'#$e LJ :I;vA]Susұ_y:MSt,{QJԿ7')g' u :VI hdCUNtpREdQWG^Lj%0q]&uͶŭMh#(8eU#ڐqgz0 # ,FM IΎSh ^sQɬC$(΂&sALhPn}d+ֱ%CkRS)c^P|JF¿Ahք8 TQ˒\fdǿR*aG -0щORpN2V$0%VV`\#<ꊑ,q^VJƈ;U*]="-RR6_Pv 11R -rň3Hpj`BjR] -64MYN&6fXﲮHyCKiG׻dTc'KOkD)'hIhNO= ) YHͦm43wVHWջM{_/t%d3 ) baY`=8楄0*/<~Ղhh(L{In(%4lSDqkT0Fz(O aL$=mIQ$ۄIrIfxg6afIý[-[2p]T?BT(,vaI9wTo`z=,ٳ4i -2pxoLmHČGqH(`1ZKA݃H%;v#9'ŵ A]Z¹{ۛ ̚A?/U(Z]3tq<#T/ik`>kDd0&NΝ4h%CdMcOʪy^53n5ʃ2p̽N| &c.~d -9Ԧ8Vv~={,V8齝뱧LnLѓ5OS]4O|K&D#靌QaƩ v4I1WKӕBZ <'@;'ؐsd|:94IҊn_\Qç]=h߽[_@n^_1xE8xPLVnˏɅre zVe tfM6K1aCQHṚ9h^Ɣw)\({%ļBF#aݍ.@ $.6iG>wh{O}^Y?e{?J7/J\.J03* ]<|V6w(<\V `,Dw6jl3Bi_|PFќ. -.ӐKf4HnXb!4C Ax F,JG ԛ=oaM79GnW?;[~A -;W>^v^]}(n6Gyf#yTlʌkmf[cX9,pY \/5S?2 -*M]-Ġsp9HK1\8y5fhFI)ܡfu,]##p5):2``e3lw^Ch7Ћk/|­Ƣy6@ܖVVr Igy>U+Vbی)[6A :!{[4)aYѐU„Z±IeGnfbnє dP]ava_kY}#mimfP1]߸2涜cxPH3@}*spΎbXVm\l(|;ΐy-u-z8A4zS{F0FގVI -\aw$"DY 1WdkVb <Ȕg@LKo8ݨ79栅w.wõ4+'fs;'~у]eEɋëC3lqdQV - .^TFF" 7lYMKM$`bq8I&SQO9e1m/V3QϞ}c]kn|B :`A{h.77nO=Y+|"ʈgzkx#3|>\ P"+D!ҤeV`B.B,V.J0Ab"v4332`!)bМ^A=uxiaA#tg=vk觬M|dxEC6v~&(&2XIt׽óTaƃE9"6}R6<Ý[`?f#FQZI;TUaɗ -i}@D*\ K1 )lEE*i,0EZQqPh g~6qYҡյ%Cp%fË͓S ݽ+⅝ºwZY_>z{PWs˭Eu/4s?&lfJiJAfcIsȉF h#c -@lV@Ѓ?[]76XDȚABIjP7g{ZJ:uy贽63ƙM" X"R*pa>b(p -Kt $[ Y!L.dUE\{ja=Kh* (3*E0dMNi1(/OlέWM5i v?y3[{3_4$ǽ7S:6 Κ_΀)4UFkJ2F)F91A4 -)J%4O15`KPa_"Aۙ0 -sUlRemgfTj%B %f.wo=9upۑԕgm9\6l,Z}k_ܙ75h@B#ISU_>:]c~m >}-]dHX\4d9]P₊_}iq]|ϾrE)ýw@_vZJ5uUH4%8G4Q~6@QS: @҈@,#+0͡s_!9O fr D1tjhq^ - >3AVVzcfe>rh__9K]k FܳmwI L6Gr}+9r=O䄓V Wb@>)FIsX`|Y Nbq9ULe˧ Dс~@BV݆jK,,F{;0_{r[ZVk$3E愥_=b.^ -Fi8F0-f!:v -wk[U[$4E99rҔ8 Fr0$}hBWz,NYA ,TF[.6TWu9g25IGJnTF@iv(Sr,Dk۴{k+Rem[b71vtX -hX<ҁT%HPN%0: \7„`a/+fh3J (=$D{.Xkb@s;!kbfCL\=9zlwgۃԆ[z4UǼgBgtkBrtg0w9ӊށg*rĢc+EB ;c!x!ͲdhkT]GAFo7rZKLcqM`pl՛wb`E7{#" @iGFb3i&Q!LMuip܅@%4N -DE;L "z > rۻ]7Mh6q3ӺO/evO10<,jOǯ{ ac^ -@U/?R<-ff3COX)Fs9T3bZz:p˃nzbX5Tmlyrn]a CRhdȃBp o|%dSD'$&vhts_j.4Y U a lbH&b)E蟘B/zn=̈́A DeMy=n>=eNC'2=yܓkZjdf{`gB, Bj/BȆ>dzo1Yp!r*UNP]61IT#'!aash0C|;zj.o}ٟSrL)N~*U5$o5T:r$Î2N -.[ΝE^4Ѥmk=fE5m7ͦ2Y9MLcVz15X jK)UO!ڰZ茋4{ǫgw̭N>wA))#ukU⧉!p ze?M%-LsNXPQ·D`׫Q-tA -Q; j@|/]W1,JkgT!T"D!0c@d;;Rli%ui0Yע6Yk%gTBSa֢g郇}]U.옽\+oEdh[#!B*sX&ۀQ+hq9\vCUL7vw rĕ' <ٿ\ ;/IȀ2  04Dڍ$_MyVϤ#Sۗ?yH||kr8[?bHcjPH(B(JTS -(q'ur)\z1zJ43H>8dTt[TNUћώ_y_ữ#BZWZCɂ1u^Ul@y$ -RbEzhһxi' ۟L|ZG1IH /2?5SI%QXc+q\GɎ&)9gʶʶ0̂ -J :#vڵ.=ޜ^}xe$??|{ SGtJ\q&W`'d$8Zw T -| -k9TQx߼&oN0[[tuVb -l -/~鯢O -d DMCZ: -hM¼e7G$I V\^/.atwnVĢ쭖{g7՟9_|zz~1XFEN엿_3ըZOw֍$tv|} ճ{ {o'@Wp6tݺn.>Wo -$eH) Haj0<#>,Z.#㸳.HYh̢mDbEF~vXtO˽>ܱdPj,p֛WsGK'?*=6e[c sj_v^^S& X?} wo?g DElZT!{_14;7rV[޿?}h?]#E -4}dO '>ԉ*LA}j`:iM}R| 2WdgSt2hƳhǰM\8_ɫkttmu:ksV!ceO>|`YQ}(Gŗx {G/| Q?~=\?  h]\,{o9m?;pL=#ȱ(8X%"U=7)o[`F3fXcUb 95{|4"r=髗y}ř:O_:cRx?>CG,?ytՂG5}Iu|'߿gfl'vx7/s?x -`O595jmKr[0Z]. QVB'_FiT>&Ic)5 -Bn98S`i-xY5&+BFCTRPBcAq~z~/?FӪ:G'@^<ۘ[ֿytmdrJջ#T}]FHL -]L܍^vk.;iWJ"-:8Q S,hW]!3D;CH}'_!G+i (* 7͛$jX N ? fs,%@E# -YvƀaY'k#gٷ75 ->n'O|zW'?{ͬGU@U'lIx,0*;̉,Iim'ib(Gdݜ5U@\AM34MEfkJ/ -݅fb@Prx`lɌ#hF - z(d^XX5Xf=♊e]F{ß~j6b }9n6?UcKUkV9Ұ-@HpMr5#:p k$3(6D4͆jK胠[SaLpBe5Bc$4) 7 j-̄7w|&8 -y~ãN]U!mܽk@"ZVp ɸAn&.J*T$wR/+ʉ(E!!1X9rMԎK@-k/fONO/^Q  )UFe"I=Q{졈 -?m4! rrA+oܾ>8j|9ׇY@4zz?>\,Jz]{pHJ` -iFfűb7mK3_(nƢq@ͬh,˵0zD`B?.O%P~TYQeieQ/h |Eq!%5=7fX=<ק+uj"0W D1͓X{S1=ϺyT;Tz&ܽWk!ݱLՓb˙;{d5QRe[I^ heLcY#kh 'wݯپru5A@ġQY@1qJ#/|(_ykVH}Z7ZaTH -`Ӕ9 |R# -Uxaxڭ'瓗oNB 2D3lJ Ib`b(*>Z{ՏF-`xKA@;4zQq>?9NH*B`V׏?oh!poiaFq%ar~4ZƢ,Oko0w6'G{;'_{].2 KU) MgB"U`QT$2ӫUDjH@TU0p0a:=T4Dl"M(tR5`V?m ?qHuJ -PB_{ EŅN[p`Qs9ڊ.%g~,*dv`Lodu0:&x8ΘeU&%4CD'8p9 3.)kx@ n,y~F Q|ώ;PPcMeaKR ,z&U1 -2 v -EC c1K( 1([TUFD Z?=K^ w_k3yOf"¶V@Ox*NN糛7o\U+~i {UʏxliЖhPGStX脬-3R$=֓Gwf]5~dT{-@gI-1P wF/_{&A -0`?aag#4GQUPspwozVmk/%uxY;KRq AAlҤ֠$j@'!rfS Bg6>ai$F'qya3SpDJ337\mUxqO?17W.}h@y9Mw nW7hB{ADt} vg#vó9n\ xuh[u,^/1X1ӹ\D,PHh7Yqu+m !b<=ckWÇg#V&13nEH*Wodrݏbj݅xˆw?}N@b"*F -4q~[Md<>uw~\@<^DF=fˋ@/7L @(p "p->~6k/`j2]EDIO9?j.Mi& -` -E# &;ޖ@\펯:1uyi&+۵r%gnj@@}=~钀4 \ 7>qFH}Ţ(NAVgq5|>8=̪"v7wlC!ciBBnߡ7l}&' :y}b8kPQɣ_@]5 e,E5 -,&Xxrڦ>iU0f@@@Q'TQ(x~7_arIōڵhd?Ճ9 t$պXlsF ^xkt/-hm2((k7g??|gƓpO{{Mߜb=U=s|Ѳ))j0CK􋌦LADyd^8tm-i-<*siulXu6RZqn.եR„,Ë Oa%l-^WR>īl~?%jaC. y.ivS?폡WLYMn_'?3L޿ŷ>_;^7 -_?ĿY%+~K6 Pt1Febog/KS@og/Ը D )VX_>;8_oνh/d IJVLFhQG|//AVhCxNE=˯L|';1}AN'j `⏙")1KvXG1)F5mҡ_Pa"+:PRep΄էmpWͷZ\^u#ŔC"$'w#@U] ⪻_m -lPЋ8 -vz\ha(t:yt1Yz -0#F'> r\U}Cڈ1u\T;{gߙt 4{g|G&>.t'&Po'H@JSFWtgZ3=/VW[.+PwL]gpޙ<ڠ൯.ewقPԅA =~p;|jՃ{|K]zaVs{tL&Y W&s{B$0KS Pg;/?|BLjC"̏£"j'J%/\PAcٍQ%;hsT' FQSfhgw6-޿ە`PtS #dۣɭo~1S<ŋj@KQ#UA/Q3 > -8Y 3ȤWF⠈?R"lv4^?)w'ߺX. 7T Efj -I ? !o9 -Zum IEq+u?~EZq-;bU J >= U7&7uPDԆw -jkPD;7{}ɧW='=& xœҠ L4$c)`H+G& Q׿LCC&7$gPL\jQA ,P1%R,$M$՚;WTmv,fn6L/;WNBT,~Ӄͷ -АVE ظh3VBAN1k?{"{׮_^<4OϥBʊG@T?EYaȈUVP`ct}nA6߫Qe5Fi(G<O4AJd;ë͋SEhƃf9LU@f >m+C?1-6R -AU+4(G ˽,S蟝3P3?{aJyG @`iP?%%%R0RLg(/wsPk!`w[-Q,y4!V8TB!"pgW}\YR3Vkmn4nQ &y&r͝[Td :\Б4̂jY z7mM˝㓵8ޗDI:j]FHT :1y#% "Ũom ^ƤUVQ(";ؙb6r$Ҋd|.v4&;J83B?i-jsuu֣QaR0FD%4W_LW{apP - y}~Ui[ ,_MgͽEɳkT"$EJ dHEi{^\UH[§[ uCl -bch".lVy pݬni'f%G]<6_~U&`1OFSo}甙k!ގ*  e`+=GpfM&G 2S}abL>e>]Z(>l hY ayE5&(f"~5ɔzw F׭T5eWvٙ-9~utF^HPffoA`'kQk薵A^vuM`mo -[ -A;snO'ǭqRF̄q#BQ")I^$()A ƀJ":b@-C-"9R %͒(ukƻ44 /Q=mYt~Wo3 -j(Av6JUԃ,{dԈsDJfc'3=7 zz!Lժ4MrمuDP\HJBC*JG&+:.)flCADD` E˂VU> KTryB(#Cvl/ P=&;2赋߹Xgctm xbETڱ\_ zPUvG8u<œ56D`خk5p!gr=% -k4)*ªZ\:ADg%Cc X\3ZD1skqqs I#[H@UI;V@ɳ{Zՠ Ԑ4 mI+]WH݅1xRlO0۫7F]mVmA:B u8mZz 2* @0|zrLZD! w쬘Fmѕ(呭W`~ Qy5Ǟҩ_w4^}bUL*Da`,B`ܪ&PQlB4PggVYC@&Ox1zhh= scu =4A LCm9}o -iei{IdM\HYX#4@RɺlKYX4̴mK2_@5vWm+ʻ1/.0C,ر*|jjݸB$¨'+"*T{tQ=3^=^C3y󏖈 HpU+gIW4'%g{[t63_A!Bf9tPVŲ~#歌<`$[8wҭwn,B'TPHq^s7_lFZά"@$ňհG^,_&k89j.-$=(PLKRpK! -)rR;o=H$.KS -B$N[[0"RL&Ųb.QS\䔗0s"~kKНNo-|}ҥaWȨő7𿻶XOioT=."z*W^;K8Y/_nFFe[_^QeFgJ H`^Xv{Q”:\<3DNd%ET-`1ҭ 7_ÞpLX^MW4'<Mۺl{PBꩶ~}<6О^uo6O_f֯cUJZY?&sEUHw1* - zr)PfU,XRgHjA%FhɄ?9I[&#wȺXo虭T Af+\-@^g'6c -ī5>H+6Ԯ:G >[YMRYVE%^هQ*0"`ޠPмt67gkh9,´1d080U!Pl_al nb݆ԛ1 r򲿚 lزctZ5'3cj}4vU181*^'==hLQ >LF{cc ‚2PY"'Je'RJdzt)NTSW=jɾ35 if'A_Z VpҪV7v\R_O/'{kAfEO(- f=n\nCzX6 -gpգ ^Ӵ 0bb| " r9GAHnM"[Rr!)=ƍQm?yxg2H%6Ⱗ5%HqiJ9nvWM6<:Ͳ~8b A}_7+t@Bh[NQs(u0ƑY5zs/έ57wzPm%TWpلеWkY ރ+[`ս87';d">)*M4 k[rq#XRN UVYd))"& \"+ՔJg}n EQe弞@B*2kja:F;'+o}+%' nUN[#8]Es{rՕf(|t&* TU(p3#l,řdX:?sJ$LIlJ5r:Jsk>(@E(Rx})<9?~t4'4{_NƜKJ73uv/W_÷q;B*HHiX_w8ʚ!ˡx,N\8 ~BXce5pm"VܡOj -`ȸBy媢T*]!6 j9M|? `Bsz/;oH\}`=w%U]|9w:ju޻(N,d<cu|R8hV!G,|$̒:|/J -TcO#w/E 9Y "_ 0Ä H"v@a,[YLO_ׯ3!mɗ㦗wF{ߣ/_{j~U-j`p7fwsnV9`-7lS._jEƊNT],OANs_B5(%C4)xJj~'M[eX嘻z'`" -1nezl=?rly5;ܜ3L2 >ql 8\ٚOƲ9"gX4?!>*2$U" X=ftɛԤ|c%]4ZPh -L&gEP)2-Z4ޫ7|<%QHRm,];{4iZnV TG -] V*xK@j.Cѓ >Xv{i `JbNuo&OrˊnH3.aƵB Qwчxgo$hbL "jw׼?f HiKe!*=<=L!jPQԽiPMО8lL->? 8[ :H%܊!*ixonP\l;5(IH”fRPD$&- -(H p 29[o&nP6z/J}a뀎 d!{ٙ\]Æ|5jR@厫+닇: a-gkKc͇[iKxIe:I@ @ ի@ *, $skJmg QIYq" XI-BCFh׈#*12AP+ "ηph6C1Aj -0UR 5wR)Z0ҥ+ѪXA3 -Jbxޒ`2"X0 ȈȢAD iJĆ3a_!wP`<߬foZq0􏟝N>K`Z#bVB Hi(ki#nҸ}~/A4 E+h8~UDfj:7*r["xQˈ@2{kd)"dY@hǒ5! 3U'ԯ6AR{2Nx1^rX!)CRA@>orq]&Rr{R:h!Vw☾'Op.V fQ1ΑAÑ5YEQl2FwgX}EQĵsTs4OZOF\N>bU*5,Ϫj< 8|mT+%t hdlۀ &)0Ujvфw3^v.van;FݺOF -|wbfdE~e(PYZ‹m,l -)ǻ-b& @Jq "P\,… OJV,NJ` -XbIIAr50[>j`[/7x,ȾD.XCkl k0@uP'e6ͮ U]IVFFl†DÓT'w]kio69H2A$S: & -i Ows~2"I Ehj(p v#>z dw0Txw -ON;@)/ a.\Es*7J=ijn"bO0I\|^:E!RUjҹCDP-@Q` -$P -`Ռ`:zV߁Mo`\Ѵ>9:]Z1`@9N'M%eBgZJ%l@* i/K듐(Z( |+cGS+aU"0yVPUOܣPy*\z߻==;yCPn߬m^E*"qLaԭ^]ƜX{TȈ81/DMٹ o|8ҁi FNvkndQGtc:\ޘL؉3ٓϮD-p)&E(a-b&qyP9LDjD3_ E8>Wra]y< SQ>hu}ˑŌ! 1퍯OfgU= ,^ -]hqkπ*ˤ=?\=k"gِe3:gN$DBYnK0qIJM/C~.+ tԸ) 5'@<bn,i?;ݩ[zB\r籮l٘UΝ{G4A9.UQ$gQԭW觀B =dQZ*aNÊJ{ђX ->-iJM\TMHD+AsBD3Qd#ޫH% `E`PBK& #M - -A,{WIb$.sI7D2E|ڪ[pTL3âty1&o -lJ6mЎ#qVĞ/r#z>h#U},3x`dgDZ,*Ih";~ -D"6U%&,20@2&% -Voک0:`/76dҞٷ9j, -z-o$F$t 8+RAӣTak{WlK' 8*RA!n#- -4FaQ,,EK7,t4|Ҝs|tA-%_7o^#2,a0VP;#o.W߬5%3Jk SZLh ^AA ]PMN=g"U^J̩5TIӍg" 3pS+mG>ZE$G<|ыL*8vc -~d%w]XZdu>7w2|UEP-A_48Fq4>Z g5WKO)$B4.@](~)QĻIiNw->vwgSEP2ȪPDHV{JL** VrKbBϓ{B 8,6# a%K|(D)]|,;+n{M1dVEYl{v}O:D!L96Dy4Iش``}A 6 nsdz$an #&LZ* P'IE$J [4KcZe`C 3VWy>ͶKݺ2pTЁ=èaey1 WL@j+VOcsA:qj:#4M&zUЀBO{\ׄBl#>nOg{[Q*' J9c"F_ RM실Lel SM~CUi@$Ͷ}$PA#H䲒Ox.àf@"!c@ԯt<!t}ZqV$!,$Lӈ)4üFY M'@ԟѪ%ovY;3SO4OAGcyJde=5ElBTڝsL *C$#xi+$I%vvf 33+L 4,@ؚl%HĪlNS4jj rrDn[⑓11V>]@F - -Ou[qhUrD;茎 `S yX<18@JҎ^(=GXEcʴiݟ3<2)b3#rA5.D`o%&{*"o`F+AhpBK V=4c^:T[A>H׊II ۺn= Cc).F4˫Nh(5>/xgVImL(o " P)tbMHK;IW;R@ JG` 3g\ ImֹM?Ā!ĤWd('n-G|?y2A 3ʢ3I =MTk9 cV 4ޤZY(I",oy"f -ܲP,~+gNIn߷qCu3\(wa$QiЯضJC//qөt0kUz)1<O{J D:oxQPtUUsҥz'͠05C;2<1P, dBI)Y FOtw ~}%scfq- 0JCtLka j^ފ6%Vds<TC)6h%9PJސ0BJK#{,7^_I: jK816N2Ttr -²~əV_̚B -Ń njWk>˧֬ Ce qQJMqcY1JTma5r0bskGbfTe⺐>2pEsD,RR ]se]""᥽"ԓU75ݣZߚau~ٍ{ 952+Tݬf*hF"U/̨f84|nna\x$jd4ӱ܀7v&nPDW¡$l= _s6X-kCޏo\Wk$hHDRfp|(YMuSk늃Ɣ&|Ǻ) @Bc2infR,S,xIJiW DsHnAp &["ZۤBLP -Ȃ;ǗJۣ_F* u*Ktk7qجkLwhmjwB8L%h!F/Dkd|"AY%oh<Ϛ|xI}łd𜴗q,\<[Y(֨8M]w8UY%kt?_V\X4"3@kd"9@dG_$xy+-ƅA 4Iq0e1iL[pPh!rUG?ziBh=P BDunŏ}{9T Jb+tv*v쬂 6BG$P r\<$x=0VXIC#]m+/ټTy'СK*s2|Ud> _>J#*R.D"͊B8ruRz=Ӫk=v0ڹaZa+' ̛ٝ[J.7**j&2#RY+C{4%qJXEdQXi@uΐ_U/YةSE5; ٠-~1H6h@+5Zx~;BC GIhP} !EՒLdePP1DsE$[.RXC齍ځzUCbH64e:ΨwJa(y[aXNGt  -OQxb<4 (VKO H|*99=((ȃ%Z)R:RLȜbWVi{ F4xb APA<[ri8o6Wq4X|IdquX|>2z\c kTHdzmN-:MM3G4JQA[\poqC2iX*Ƃ (nC3 >="EOy2X wek6c*ϕ(T˕b#1+AR^T$웩n";{2[m*UW5Me(BكJb܎L++Rpr51 x悩 ~ -;,s4D4sUߝ]`Uܢ[@l$(/;C=j, 0'<ҹ[cnqpt*jAn3(+_j|nӃTTA C$y#N5  4FŻr-ý;bSC5N* bLՌjv1V@k0Xldۀ0PRݖFH[.7)v#*î*n(`C(&>o؛*4BUd5 i[+3ss8qvCz2 3"x *jfSVų%Xf~^+ !8c9/ٰ%*:>41$ǼdzXѡkܑ?b$"oO:/ u^҄W8L,֣k iFvjucQl "B ]x0H"a:Bed %o"CʔU#IUR%WLi!jG[.Jʇ-B3Q*BU=5<-qf*'0u cwrf\d>Q ԣ-:@lĨX  L"C)ݢ)j(W"1a@fsaM"WW!?(|2 <72}N "Ȗ/ru-}*BL 8ǦN34&,mfoߺ>tGH4 [XXûCߣ!A@= 5E Ť.% 7l1+I82b=矷,OHQ@M:¦W:b:(\rDBL\6/'94_5POaDv555̈́ bH= ZF2)U;s%X#h.UJY"ѢmUs6E[Kv"QףDkh{$Ɯ,IW(/t:a""0%bx $E=v*tgLJxy?[^.\to24l>ؐ ->WkAYB+q'x+R5p8`rEɞ[Ya>Ki1BI$"ͺZ, )A< e&<+ݸyJ zPrG)'/4~LS A:!b\%g8sЬTf`8S Wǂˆ#:!1rOp1  fAwfµr˶䒖Z@Ȏ:۪ᖤB9I\QbMC Yqaq~*1@jϳzheycbe .جZiҸ0 H鷎{?5JH3#r$N@Datq,pF K>2Ű32zAp@iDU. -}xP5Dzs!PsN;km|ƅcs&VI:%92!|F"p]0GjUφF?}ctQ5Tj - ƠU:cQsb]':u0M -pE&NDgf_oN ZTGީif}Q].")̢|Ct t;m}|Έ8)Yi+bhnAd|ƌad</9fR?sK^%BS \rtt5+(x1klLr\YMi -vupA<zXjj'$.1Ч_/uxk֖3n2GQ7 .yzTFrD3 l}B DMw ƚ}[ymQ$QH F7 `ȗX@ӂH3~Q>AJ] - c軳S6?ԺCԿ -tIp:fRA-\UAS$?v2gFq;tnwo zDNVU.Ĝw -}l.~$RV0#n޸37;|7 \ -R+xiKut Edn9x4sOc f|_~GF2TP<[o zx"2]䨅,SSͦgg5–EtIp]#؝0OnUUwo1wG.~l -D %$G'6!2)n]ۈf^gQW8/R@v~vָݚ&vvTXV_fgǴπ{SI{5,ϞJ-Ŝr^rM9<ɳm{ΣJk\Rfa̷LZf d=EA+HYIZp)@bVm:H4YD5)pQjeQɑnHK759iE:\HwL j@n'%`o7 h[ -(ihi-(O-D҅n(ZY 8ߓ ?$f YgyjB$,uwi-0OHF{J߬\e~U?}>q¾c > {CGY[!ن^H:I a"t$͑3l* k뉓\]==k4ҶGt|J V:b@6$dDg<ҳJ4_u3DBK}AMs;24z1SjQ)$r%NW\DڶyjMGл}۟ T~k -7;80܏iDt}L\~Ha$F:\?EF5dmͷMQZ|Z/ ,3U_tBnrKԦEq>VT)ch%4ԕQr힦1,]A;A[%"aUVGWڅQWݍQ%gkиca2ӤL WIj-C--5/-Pޥk੩ո \!13RB0, S@+Fp"C GLĿ6LFa"z }=)$Al!ԝ4dyL 5USYޕUzRPg}595|brI3WY[w'%vvyvIRQ>I4e${zשBSj]/^NLBB3՞i)%9]݄Ya0?c۱ -듽|OF:wSimpleTest HTML \ No newline at end of file diff --git a/core/modules/migrate_drupal_ui/src/Tests/d7/MigrateUpgrade7Test.php b/core/modules/migrate_drupal_ui/src/Tests/d7/MigrateUpgrade7Test.php deleted file mode 100644 index 94a42e2..0000000 --- a/core/modules/migrate_drupal_ui/src/Tests/d7/MigrateUpgrade7Test.php +++ /dev/null @@ -1,91 +0,0 @@ -loadFixture(drupal_get_path('module', 'migrate_drupal') . '/tests/fixtures/drupal7.php'); - } - - /** - * {@inheritdoc} - */ - protected function getSourceBasePath() { - return __DIR__ . '/files'; - } - - /** - * {@inheritdoc} - */ - protected function getEntityCounts() { - return [ - 'aggregator_item' => 10, - 'aggregator_feed' => 1, - 'block' => 25, - 'block_content' => 1, - 'block_content_type' => 1, - 'comment' => 1, - 'comment_type' => 8, - // Module 'language' comes with 'en', 'und', 'zxx'. Migration adds 'is'. - 'configurable_language' => 4, - 'contact_form' => 3, - 'editor' => 2, - 'field_config' => 52, - 'field_storage_config' => 39, - 'file' => 2, - 'filter_format' => 7, - 'image_style' => 6, - 'language_content_settings' => 2, - 'migration' => 73, - 'node' => 3, - 'node_type' => 6, - 'rdf_mapping' => 7, - 'search_page' => 2, - 'shortcut' => 6, - 'shortcut_set' => 2, - 'action' => 16, - 'menu' => 6, - 'taxonomy_term' => 18, - 'taxonomy_vocabulary' => 4, - 'tour' => 4, - 'user' => 4, - 'user_role' => 3, - 'menu_link_content' => 7, - 'view' => 14, - 'date_format' => 11, - 'entity_form_display' => 18, - 'entity_form_mode' => 1, - 'entity_view_display' => 29, - 'entity_view_mode' => 14, - 'base_field_override' => 9, - ]; - } - - /** - * Executes all steps of migrations upgrade. - */ - public function testMigrateUpgrade() { - parent::testMigrateUpgrade(); - - // Ensure migrated users can log in. - $user = User::load(2); - $user->pass_raw = 'a password'; - $this->drupalLogin($user); - } - -} diff --git a/core/modules/migrate_drupal_ui/src/Tests/d7/files/sites/default/files/cube.jpeg b/core/modules/migrate_drupal_ui/src/Tests/d7/files/sites/default/files/cube.jpeg deleted file mode 100644 index 652a7db..0000000 --- a/core/modules/migrate_drupal_ui/src/Tests/d7/files/sites/default/files/cube.jpeg +++ /dev/null @@ -1 +0,0 @@ -******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************** \ No newline at end of file diff --git a/core/modules/migrate_drupal_ui/src/Tests/d7/files/sites/default/files/ds9.txt b/core/modules/migrate_drupal_ui/src/Tests/d7/files/sites/default/files/ds9.txt deleted file mode 100644 index b49b7f6..0000000 --- a/core/modules/migrate_drupal_ui/src/Tests/d7/files/sites/default/files/ds9.txt +++ /dev/null @@ -1,79 +0,0 @@ - __ ___ ___ - ,' ,' | | `. `. - ,' ,' |===| `. `. - / // |___| \\ \ - / // |___| \\ \ - //// |___| \\\\ - / / || || \ \ - / / || || \ \ - /| | || || | |\ - || | | : o : | | || - | \| | .===. | |/ | - | |\ /| (___) |\ /| | - |__||.\ .-. // /,_._,\ \\ .-. /.||__| - |__||_.\ `-.\ //_ [:(|):] _\\ /.-' /._||__| - __/| ||___`._____ ___\\__/___/_ ||| _\___\__//___ _____.'___||_ |\__ -/___//__________/.-/_____________|.-.|_____________\-.\__________\\___\ -\___\\__\\\_____\`-\__\\\\__\____|_-_|____/_//_____/-'/__//______//__// - \|__||__..' // \ _ \__|||__/ _ / \\ `..__||__|/ - |__||_./ .-'/ \\ |(|)| // \`-. \..||__| - | || / `-' \\ \'/ // `-' \ || | - | |/ \| :(-): |/ \| | - | /| | : o : | |\ | - || | | |___| | | || - \| | || || | |/ - \ \ || || / / - \ \ ||___|| / / - \\\\ |___| //// - \ \\ |___| // / - \ \\ | | // / - `. `. |===| ,' ,' - `._`. |___| ,'_,' - - - _ _ - _____---' \_n_/ `---_____ - _ / ... ----------- ... \ _ - ( )-' . '::.\__ V __/.::' . `-( ) - _ .-' ':::. ____ \ / ____ .:::' `-. _ - ,-'.`' __.--' \ | | / `--.__ `'.`-. - / ''::.. \ || || / ..::'' \ - / ..... ,'\,' ||_|| `./`. ..... \ - / :::::' ,' | | `. '::::: \ - | '::: ,' | | `. :::' | - _/ :: / |___| \ :: \_ - (/ / ,-' `-. \ \) - _/ `. ,-' ooo oo `-. ,' \_ - | /`./ ,-'\ /`-. \.'\ | - | .: / / \ \_ __.---.__ _/ / \ \ :. | - .' :;: | _ / o \[ ' \ / ` ]/ \ _ | ::: `. - | ':: | ( `-. / | | \ ,-' ) | ::' | - |: ': | `-./ / ___ \ \,-' | :' :| -.':: ' | | / `-. .-' . `-. .-' \ o | | ' ::`. -| ::. | | o ,| `-. / \`_|_'/ \ .-' |. o | | .:: | - \ |_ |____| | ` / \ ' | |____| _| / - (| _] ]____[ |- ( (O) ) -| ]____[ [_ |) - /.: | | | | . \_ _/ . | | | | :.\ -| :' | | o `|-,-' \ /..|..\ / `-.-|' o | |. ': | -`. :: | | o \ .-' `-.___.-' `-. / o | | :: .' - | .:: | _.\ \| | | \/ /._ | ::. | - | ': | _.-' \ o \ | | / o / `-._ | :' | - `. __ |__.-'_ _.\ /[_.__ | | __._]\ o /._ _`-.__| __ .' - | \ \_.--''.' .-' \ / / `---' \ \ / `-. `.``--__/ / | - |_\ __ ,',-' `-./ o \,-' `-.`. __ /_| - \\ / .',' `-. oo .-. oo ,-' `.`. \ // - (\\ \ \ `-._| |_,-' / / //) - \\ ) \ (_) / ( // - / \/ `. ,' \/ \ - \ .::. `. ,' .::: / - \ ':::. `-./`. .'\.-' '''''' / - \ ''' /_ _ _\ ::.. / - `-.'::' `--.______| |______.--' ,-' - `-'`-._ .. .: .: _,-'`' - (_)-. ::. '':::: :::::: : ,-(_) - \_____ '' _ _ ' _____/ - ---._/ u \_.--- - -Used with permission from: -Orbital Space Station (Terok Nor - Deep Space 9) - Joe Reiss -https://startrekasciiart.blogspot.co.uk/2011/05/deep-space-nine.html diff --git a/core/modules/migrate_drupal_ui/tests/src/Functional/MigrateAccessTest.php b/core/modules/migrate_drupal_ui/tests/src/Functional/MigrateAccessTest.php new file mode 100644 index 0000000..3c475e2 --- /dev/null +++ b/core/modules/migrate_drupal_ui/tests/src/Functional/MigrateAccessTest.php @@ -0,0 +1,37 @@ +drupalLogin($this->rootUser); + $this->drupalGet('upgrade'); + $this->assertResponse(200); + $this->assertText(t('Upgrade')); + + $user = $this->createUser(['administer software updates']); + $this->drupalLogin($user); + $this->drupalGet('upgrade'); + $this->assertResponse(403); + $this->assertNoText(t('Upgrade')); + } + +} diff --git a/core/modules/migrate_drupal_ui/tests/src/Functional/MigrateUpgradeTestBase.php b/core/modules/migrate_drupal_ui/tests/src/Functional/MigrateUpgradeTestBase.php new file mode 100644 index 0000000..2cdf3ad --- /dev/null +++ b/core/modules/migrate_drupal_ui/tests/src/Functional/MigrateUpgradeTestBase.php @@ -0,0 +1,206 @@ +createMigrationConnection(); + $this->sourceDatabase = Database::getConnection('default', 'migrate_drupal_ui'); + + // Log in as user 1. Migrations in the UI can only be performed as user 1. + $this->drupalLogin($this->rootUser); + } + + /** + * Loads a database fixture into the source database connection. + * + * @param string $path + * Path to the dump file. + */ + protected function loadFixture($path) { + $default_db = Database::getConnection()->getKey(); + Database::setActiveConnection($this->sourceDatabase->getKey()); + + if (substr($path, -3) == '.gz') { + $path = 'compress.zlib://' . $path; + } + require $path; + + Database::setActiveConnection($default_db); + } + + /** + * Changes the database connection to the prefixed one. + * + * @todo Remove when we don't use global. https://www.drupal.org/node/2552791 + */ + protected function createMigrationConnection() { + $connection_info = Database::getConnectionInfo('default')['default']; + if ($connection_info['driver'] === 'sqlite') { + // Create database file in the test site's public file directory so that + // \Drupal\simpletest\TestBase::restoreEnvironment() will delete this once + // the test is complete. + $file = $this->publicFilesDirectory . '/' . $this->testId . '-migrate.db.sqlite'; + touch($file); + $connection_info['database'] = $file; + $connection_info['prefix'] = ''; + } + else { + $prefix = is_array($connection_info['prefix']) ? $connection_info['prefix']['default'] : $connection_info['prefix']; + // Simpletest uses fixed length prefixes. Create a new prefix for the + // source database. Adding to the end of the prefix ensures that + // \Drupal\simpletest\TestBase::restoreEnvironment() will remove the + // additional tables. + $connection_info['prefix'] = $prefix . '0'; + } + + Database::addConnectionInfo('migrate_drupal_ui', 'default', $connection_info); + } + + /** + * {@inheritdoc} + */ + protected function tearDown() { + Database::removeConnection('migrate_drupal_ui'); + parent::tearDown(); + } + + /** + * Executes all steps of migrations upgrade. + */ + public function testMigrateUpgrade() { + $connection_options = $this->sourceDatabase->getConnectionOptions(); + $this->drupalGet('/upgrade'); + $this->assertText('Upgrade a site by importing it into a clean and empty new install of Drupal 8. You will lose any existing configuration once you import your site into it. See the online documentation for Drupal site upgrades for more detailed information.'); + + $this->drupalPostForm(NULL, [], t('Continue')); + $this->assertText('Provide credentials for the database of the Drupal site you want to upgrade.'); + $this->assertFieldByName('mysql[host]'); + + $driver = $connection_options['driver']; + $connection_options['prefix'] = $connection_options['prefix']['default']; + + // Use the driver connection form to get the correct options out of the + // database settings. This supports all of the databases we test against. + $drivers = drupal_get_database_types(); + $form = $drivers[$driver]->getFormOptions($connection_options); + $connection_options = array_intersect_key($connection_options, $form + $form['advanced_options']); + $edit = [ + $driver => $connection_options, + 'source_base_path' => $this->getSourceBasePath(), + ]; + if (count($drivers) !== 1) { + $edit['driver'] = $driver; + } + $edits = $this->translatePostValues($edit); + + // Ensure submitting the form with invalid database credentials gives us a + // nice warning. + $this->drupalPostForm(NULL, [$driver . '[database]' => 'wrong'] + $edits, t('Review upgrade')); + $this->assertText('Resolve the issue below to continue the upgrade.'); + + $this->drupalPostForm(NULL, $edits, t('Review upgrade')); + $this->assertResponse(200); + $this->assertText('Are you sure?'); + $this->drupalPostForm(NULL, [], t('Perform upgrade')); + $this->assertText(t('Congratulations, you upgraded Drupal!')); + + // Have to reset all the statics after migration to ensure entities are + // loadable. + $this->resetAll(); + + $expected_counts = $this->getEntityCounts(); + foreach (array_keys(\Drupal::entityTypeManager() + ->getDefinitions()) as $entity_type) { + $real_count = \Drupal::entityQuery($entity_type)->count()->execute(); + $expected_count = isset($expected_counts[$entity_type]) ? $expected_counts[$entity_type] : 0; + $this->assertEqual($expected_count, $real_count, "Found $real_count $entity_type entities, expected $expected_count."); + } + + $version_tag = 'Drupal ' . $this->getLegacyDrupalVersion($this->sourceDatabase); + $plugin_manager = \Drupal::service('plugin.manager.migration'); + /** @var \Drupal\migrate\Plugin\Migration[] $all_migrations */ + $all_migrations = $plugin_manager->createInstancesByTag($version_tag); + foreach ($all_migrations as $migration) { + $id_map = $migration->getIdMap(); + foreach ($id_map as $source_id => $map) { + // Convert $source_id into a keyless array so that + // \Drupal\migrate\Plugin\migrate\id_map\Sql::getSourceHash() works as + // expected. + $source_id_values = array_values(unserialize($source_id)); + $row = $id_map->getRowBySource($source_id_values); + $destination = serialize($id_map->currentDestination()); + $message = "Migration of $source_id to $destination as part of the {$migration->id()} migration. The source row status is " . $row['source_row_status']; + // A completed migration should have maps with + // MigrateIdMapInterface::STATUS_IGNORED or + // MigrateIdMapInterface::STATUS_IMPORTED. + if ($row['source_row_status'] == MigrateIdMapInterface::STATUS_FAILED || $row['source_row_status'] == MigrateIdMapInterface::STATUS_NEEDS_UPDATE) { + $this->fail($message); + } + else { + $this->pass($message); + } + } + } + \Drupal::service('module_installer')->install(['forum']); + \Drupal::service('module_installer')->install(['book']); + } + + /** + * Gets the source base path for the concrete test. + * + * @return string + * The source base path. + */ + abstract protected function getSourceBasePath(); + + /** + * Gets the expected number of entities per entity type after migration. + * + * @return int[] + * An array of expected counts keyed by entity type ID. + */ + abstract protected function getEntityCounts(); + +} diff --git a/core/modules/migrate_drupal_ui/tests/src/Functional/d6/MigrateUpgrade6Test.php b/core/modules/migrate_drupal_ui/tests/src/Functional/d6/MigrateUpgrade6Test.php new file mode 100644 index 0000000..2684479 --- /dev/null +++ b/core/modules/migrate_drupal_ui/tests/src/Functional/d6/MigrateUpgrade6Test.php @@ -0,0 +1,90 @@ +loadFixture(drupal_get_path('module', 'migrate_drupal') . '/tests/fixtures/drupal6.php'); + } + + /** + * {@inheritdoc} + */ + protected function getSourceBasePath() { + return __DIR__ . '/files'; + } + + /** + * {@inheritdoc} + */ + protected function getEntityCounts() { + return [ + 'aggregator_item' => 1, + 'aggregator_feed' => 1, + 'block' => 35, + 'block_content' => 2, + 'block_content_type' => 1, + 'comment' => 3, + 'comment_type' => 3, + 'contact_form' => 5, + 'configurable_language' => 5, + 'editor' => 2, + 'field_config' => 72, + 'field_storage_config' => 47, + 'file' => 7, + 'filter_format' => 7, + 'image_style' => 5, + 'language_content_settings' => 2, + 'migration' => 105, + 'node' => 16, + 'node_type' => 13, + 'rdf_mapping' => 7, + 'search_page' => 2, + 'shortcut' => 2, + 'shortcut_set' => 1, + 'action' => 22, + 'menu' => 8, + 'taxonomy_term' => 7, + 'taxonomy_vocabulary' => 6, + 'tour' => 4, + 'user' => 7, + 'user_role' => 6, + 'menu_link_content' => 4, + 'view' => 14, + 'date_format' => 11, + 'entity_form_display' => 19, + 'entity_form_mode' => 1, + 'entity_view_display' => 43, + 'entity_view_mode' => 14, + 'base_field_override' => 38, + ]; + } + + /** + * Executes all steps of migrations upgrade. + */ + public function testMigrateUpgrade() { + parent::testMigrateUpgrade(); + + // Ensure migrated users can log in. + $user = User::load(2); + $user->passRaw = 'john.doe_pass'; + $this->drupalLogin($user); + } + +} diff --git a/core/modules/migrate_drupal_ui/tests/src/Functional/d6/files/core/modules/simpletest/files/html-1.txt b/core/modules/migrate_drupal_ui/tests/src/Functional/d6/files/core/modules/simpletest/files/html-1.txt new file mode 100644 index 0000000..494470d --- /dev/null +++ b/core/modules/migrate_drupal_ui/tests/src/Functional/d6/files/core/modules/simpletest/files/html-1.txt @@ -0,0 +1 @@ +

SimpleTest HTML

\ No newline at end of file diff --git a/core/modules/migrate_drupal_ui/tests/src/Functional/d6/files/core/modules/simpletest/files/image-1.png b/core/modules/migrate_drupal_ui/tests/src/Functional/d6/files/core/modules/simpletest/files/image-1.png new file mode 100644 index 0000000..09e64d6 --- /dev/null +++ b/core/modules/migrate_drupal_ui/tests/src/Functional/d6/files/core/modules/simpletest/files/image-1.png @@ -0,0 +1,179 @@ +PNG + + IHDRh̡dIDATx^deו&}k{߻Ub%*%REV qذ aܰ fdz P1=b>rr(*'!(> m9c B1a4ˁ%-)CT'% b}gԥX)p9p͡3+a I7 +9"epS3S$%hQyRas$IycaUahZs*+hݥj`K.I@DP FHRqv14#P&BE5Q+̓A 0ALJ`g)\ǒaB;0M|+`QS + QJs9EPA$"Y$TH0%3SJP ɤrRZpQ$4o~@)td,bIo(t7b>\j}805rf(*f2 JP1hL(/cDuK\h %{\j'hU1M+SPB= V+&K迫B>xDBxYzpP8ir4L^Y12s@߯UjEIa(۾4%#X2ԭFcdBS_^Lbx N5hϜxUce{`?mB"W~寞{Y}Ds"k!&E3+%^d@mS"ǽ^ Yr;fI\ngݒ,"\oi?Fa/3/t]5f2G~\~mXcD |7qg6_%K W_#٢ D `|H؜yZ Eac8u@[3xX;Ř`hq*go$ko!|*4alz ضW٫j$sWٳb 4C#8X=лWطnW0Ƕanwα2XnHrsбmls%GxgG9n=pw6G]Zi'GDDs(:=Q]'*i-&+G +@'\S2M8ܽxv~X*xͻN_xC/w2lק냛WMuzO흭O9aBRl?Pl6_h4cO}||u={{)Al:AhgO=/-7C7/O.rX~[۳g\:w4kƉ?ֽc|Y lEYiͫqpx6}>>_lv> Fx(347տKNn}oKv|gu,p:F9 GG?p5#cR4иPEc¡d`&Ƽ1Y@S^@ >#3Gt ir@\FU'6nnlȾ; >b@ k-\=ѩn@ 'Oηn5c߬~问۟g"vO6 yb~n&fq٭;2_v-pVm~;s'A,Bɻ #Q,LB0Irba$o-&ňޘ*Lila&F@z3?p 0ۺ6/]k;u}wGl K?uhǿv#7ډzkzOz;~PVֺ.w](,tmsskU?Y?ql_zWW ,zXz(L*I#U +t#1y!L9 g&U셓Dwh LioAg +"ث2?=qQ.z +ȡ4Wi3] ygtvM.~݃G|9sowlޙ5\n. +(;K5XՕN\3Y6.678?Ls[$xt":( Ll2 + 8 8b 0Z`L|B=ENsiL Ԋ>qeÚcoy[ ޏW(ko?g{{7?ۻԹK7/r{٥gZ޺3pps/7 G#:pG\EZ_;8wim{7]*puf{鲍 +wW~&+"FVS LoweL̥U9&{Qe$z~"E5kSF9lo{쁛?Z7*\TX }[/7f˽/if% +o'eucݨk&P.C[lp_ pw(&8,gLU|+2 /H;#ܧ'ǃ1w$_Ż,T )hm1¬#F/\8uGR_߯f_ls/O|?~߼iM@DIΟxp{sTYok64=v ?sVWA_(@7dK%&*oU +BHzFk 0x`AUncD4Y;n~H4,/\ֿ o>AOO$KWB `a;bvƹ$̱Jb׫ [{cvzty{&]]H2SI!F⩾bO 3u6  sfZL]S(/~Vm`%F/^:ȩm,>2 J.)Lis_ZPVlPl(0~x(CyvzDjs-;n"Ey;ʔ""Yve阓N$<) +>e37sݍRnsFU7sDu٣wrT;?{ok]񶘷Чt&3b<杧w!uᑀ WHYKPfFLBOH)5kz_A_H `Nc@g `szm.:[CS(:M淲_v;w?"*"}#L@Qp*{QyѳW7;F5a/=`}OZ6 B xaݤ0=# 5UnAd;4G4ϖuĤbY]4Nh3@:O;b)c>"TkV6dErK + +d`]%Z@洦﯃F1~l$3p^zw;):)%S|1WnZ?)>ta}/,?SY{ 1di IS %{L˥!羷/s8O qw[;D{A)v\(oiqYMbM4&&@IMb|@:{ WeN=U$E$d}|OԿ>%Q _csOϚ&rdZg$j3бBũQ ++М ޞL 5 NU$v8JkR'#$e LJ :I;vA]Susұ_y:MSt,{QJԿ7')g' u :VI hdCUNtpREdQWG^Lj%0q]&uͶŭMh#(8eU#ڐqgz0 # ,FM IΎSh ^sQɬC$(΂&sALhPn}d+ֱ%CkRS)c^P|JF¿Ahք8 TQ˒\fdǿR*aG +0щORpN2V$0%VV`\#<ꊑ,q^VJƈ;U*]="-RR6_Pv 11R +rň3Hpj`BjR] +64MYN&6fXﲮHyCKiG׻dTc'KOkD)'hIhNO= ) YHͦm43wVHWջM{_/t%d3 ) baY`=8楄0*/<~Ղhh(L{In(%4lSDqkT0Fz(O aL$=mIQ$ۄIrIfxg6afIý[-[2p]T?BT(,vaI9wTo`z=,ٳ4i +2pxoLmHČGqH(`1ZKA݃H%;v#9'ŵ A]Z¹{ۛ ̚A?/U(Z]3tq<#T/ik`>kDd0&NΝ4h%CdMcOʪy^53n5ʃ2p̽N| &c.~d -9Ԧ8Vv~={,V8齝뱧LnLѓ5OS]4O|K&D#靌QaƩ v4I1WKӕBZ <'@;'ؐsd|:94IҊn_\Qç]=h߽[_@n^_1xE8xPLVnˏɅre zVe tfM6K1aCQHṚ9h^Ɣw)\({%ļBF#aݍ.@ $.6iG>wh{O}^Y?e{?J7/J\.J03* ]<|V6w(<\V `,Dw6jl3Bi_|PFќ. +.ӐKf4HnXb!4C Ax F,JG ԛ=oaM79GnW?;[~A +;W>^v^]}(n6Gyf#yTlʌkmf[cX9,pY \/5S?2 +*M]-Ġsp9HK1\8y5fhFI)ܡfu,]##p5):2``e3lw^Ch7Ћk/|­Ƣy6@ܖVVr Igy>U+Vbی)[6A :!{[4)aYѐU„Z±IeGnfbnє dP]ava_kY}#mimfP1]߸2涜cxPH3@}*spΎbXVm\l(|;ΐy-u-z8A4zS{F0FގVI +\aw$"DY 1WdkVb <Ȕg@LKo8ݨ79栅w.wõ4+'fs;'~у]eEɋëC3lqdQV + .^TFF" 7lYMKM$`bq8I&SQO9e1m/V3QϞ}c]kn|B :`A{h.77nO=Y+|"ʈgzkx#3|>\ P"+D!ҤeV`B.B,V.J0Ab"v4332`!)bМ^A=uxiaA#tg=vk觬M|dxEC6v~&(&2XIt׽óTaƃE9"6}R6<Ý[`?f#FQZI;TUaɗ +i}@D*\ K1 )lEE*i,0EZQqPh g~6qYҡյ%Cp%fË͓S ݽ+⅝ºwZY_>z{PWs˭Eu/4s?&lfJiJAfcIsȉF h#c +@lV@Ѓ?[]76XDȚABIjP7g{ZJ:uy贽63ƙM" X"R*pa>b(p -Kt $[ Y!L.dUE\{ja=Kh* (3*E0dMNi1(/OlέWM5i v?y3[{3_4$ǽ7S:6 Κ_΀)4UFkJ2F)F91A4 +)J%4O15`KPa_"Aۙ0 +sUlRemgfTj%B %f.wo=9upۑԕgm9\6l,Z}k_ܙ75h@B#ISU_>:]c~m >}-]dHX\4d9]P₊_}iq]|ϾrE)ýw@_vZJ5uUH4%8G4Q~6@QS: @҈@,#+0͡s_!9O fr D1tjhq^ + >3AVVzcfe>rh__9K]k FܳmwI L6Gr}+9r=O䄓V Wb@>)FIsX`|Y Nbq9ULe˧ Dс~@BV݆jK,,F{;0_{r[ZVk$3E愥_=b.^ +Fi8F0-f!:v +wk[U[$4E99rҔ8 Fr0$}hBWz,NYA ,TF[.6TWu9g25IGJnTF@iv(Sr,Dk۴{k+Rem[b71vtX +hX<ҁT%HPN%0: \7„`a/+fh3J (=$D{.Xkb@s;!kbfCL\=9zlwgۃԆ[z4UǼgBgtkBrtg0w9ӊށg*rĢc+EB ;c!x!ͲdhkT]GAFo7rZKLcqM`pl՛wb`E7{#" @iGFb3i&Q!LMuip܅@%4N +DE;L "z > rۻ]7Mh6q3ӺO/evO10<,jOǯ{ ac^ +@U/?R<-ff3COX)Fs9T3bZz:p˃nzbX5Tmlyrn]a CRhdȃBp o|%dSD'$&vhts_j.4Y U a lbH&b)E蟘B/zn=̈́A DeMy=n>=eNC'2=yܓkZjdf{`gB, Bj/BȆ>dzo1Yp!r*UNP]61IT#'!aash0C|;zj.o}ٟSrL)N~*U5$o5T:r$Î2N +.[ΝE^4Ѥmk=fE5m7ͦ2Y9MLcVz15X jK)UO!ڰZ茋4{ǫgw̭N>wA))#ukU⧉!p ze?M%-LsNXPQ·D`׫Q-tA +Q; j@|/]W1,JkgT!T"D!0c@d;;Rli%ui0Yע6Yk%gTBSa֢g郇}]U.옽\+oEdh[#!B*sX&ۀQ+hq9\vCUL7vw rĕ' <ٿ\ ;/IȀ2  04Dڍ$_MyVϤ#Sۗ?yH||kr8[?bHcjPH(B(JTS +(q'ur)\z1zJ43H>8dTt[TNUћώ_y_ữ#BZWZCɂ1u^Ul@y$ +RbEzhһxi' ۟L|ZG1IH /2?5SI%QXc+q\GɎ&)9gʶʶ0̂ +J :#vڵ.=ޜ^}xe$??|{ SGtJ\q&W`'d$8Zw T +| +k9TQx߼&oN0[[tuVb +l +/~鯢O +d DMCZ: +hM¼e7G$I V\^/.atwnVĢ쭖{g7՟9_|zz~1XFEN엿_3ըZOw֍$tv|} ճ{ {o'@Wp6tݺn.>Wo +$eH) Haj0<#>,Z.#㸳.HYh̢mDbEF~vXtO˽>ܱdPj,p֛WsGK'?*=6e[c sj_v^^S& X?} wo?g DElZT!{_14;7rV[޿?}h?]#E +4}dO '>ԉ*LA}j`:iM}R| 2WdgSt2hƳhǰM\8_ɫkttmu:ksV!ceO>|`YQ}(Gŗx {G/| Q?~=\?  h]\,{o9m?;pL=#ȱ(8X%"U=7)o[`F3fXcUb 95{|4"r=髗y}ř:O_:cRx?>CG,?ytՂG5}Iu|'߿gfl'vx7/s?x +`O595jmKr[0Z]. QVB'_FiT>&Ic)5 +Bn98S`i-xY5&+BFCTRPBcAq~z~/?FӪ:G'@^<ۘ[ֿytmdrJջ#T}]FHL +]L܍^vk.;iWJ"-:8Q S,hW]!3D;CH}'_!G+i (* 7͛$jX N ? fs,%@E# -YvƀaY'k#gٷ75 +>n'O|zW'?{ͬGU@U'lIx,0*;̉,Iim'ib(Gdݜ5U@\AM34MEfkJ/ +݅fb@Prx`lɌ#hF + z(d^XX5Xf=♊e]F{ß~j6b }9n6?UcKUkV9Ұ-@HpMr5#:p k$3(6D4͆jK胠[SaLpBe5Bc$4) 7 j-̄7w|&8 +y~ãN]U!mܽk@"ZVp ɸAn&.J*T$wR/+ʉ(E!!1X9rMԎK@-k/fONO/^Q  )UFe"I=Q{졈 +?m4! rrA+oܾ>8j|9ׇY@4zz?>\,Jz]{pHJ` +iFfűb7mK3_(nƢq@ͬh,˵0zD`B?.O%P~TYQeieQ/h |Eq!%5=7fX=<ק+uj"0W D1͓X{S1=ϺyT;Tz&ܽWk!ݱLՓb˙;{d5QRe[I^ heLcY#kh 'wݯپru5A@ġQY@1qJ#/|(_ykVH}Z7ZaTH -`Ӕ9 |R# +Uxaxڭ'瓗oNB 2D3lJ Ib`b(*>Z{ՏF-`xKA@;4zQq>?9NH*B`V׏?oh!poiaFq%ar~4ZƢ,Oko0w6'G{;'_{].2 KU) MgB"U`QT$2ӫUDjH@TU0p0a:=T4Dl"M(tR5`V?m ?qHuJ +PB_{ EŅN[p`Qs9ڊ.%g~,*dv`Lodu0:&x8ΘeU&%4CD'8p9 3.)kx@ n,y~F Q|ώ;PPcMeaKR ,z&U1 +2 v +EC c1K( 1([TUFD Z?=K^ w_k3yOf"¶V@Ox*NN糛7o\U+~i {UʏxliЖhPGStX脬-3R$=֓Gwf]5~dT{-@gI-1P wF/_{&A +0`?aag#4GQUPspwozVmk/%uxY;KRq AAlҤ֠$j@'!rfS Bg6>ai$F'qya3SpDJ337\mUxqO?17W.}h@y9Mw nW7hB{ADt} vg#vó9n\ xuh[u,^/1X1ӹ\D,PHh7Yqu+m !b<=ckWÇg#V&13nEH*Wodrݏbj݅xˆw?}N@b"*F +4q~[Md<>uw~\@<^DF=fˋ@/7L @(p "p->~6k/`j2]EDIO9?j.Mi& +` +E# &;ޖ@\펯:1uyi&+۵r%gnj@@}=~钀4 \ 7>qFH}Ţ(NAVgq5|>8=̪"v7wlC!ciBBnߡ7l}&' :y}b8kPQɣ_@]5 e,E5 +,&Xxrڦ>iU0f@@@Q'TQ(x~7_arIōڵhd?Ճ9 t$պXlsF ^xkt/-hm2((k7g??|gƓpO{{Mߜb=U=s|Ѳ))j0CK􋌦LADyd^8tm-i-<*siulXu6RZqn.եR„,Ë Oa%l-^WR>īl~?%jaC. y.ivS?폡WLYMn_'?3L޿ŷ>_;^7 +_?ĿY%+~K6 Pt1Febog/KS@og/Ը D )VX_>;8_oνh/d IJVLFhQG|//AVhCxNE=˯L|';1}AN'j `⏙")1KvXG1)F5mҡ_Pa"+:PRep΄էmpWͷZ\^u#ŔC"$'w#@U] ⪻_m +lPЋ8 +vz\ha(t:yt1Yz +0#F'> r\U}Cڈ1u\T;{gߙt 4{g|G&>.t'&Po'H@JSFWtgZ3=/VW[.+PwL]gpޙ<ڠ൯.ewقPԅA =~p;|jՃ{|K]zaVs{tL&Y W&s{B$0KS Pg;/?|BLjC"̏£"j'J%/\PAcٍQ%;hsT' FQSfhgw6-޿ە`PtS #dۣɭo~1S<ŋj@KQ#UA/Q3 > +8Y 3ȤWF⠈?R"lv4^?)w'ߺX. 7T Efj +I ? !o9 +Zum IEq+u?~EZq-;bU J >= U7&7uPDԆw +jkPD;7{}ɧW='=& xœҠ L4$c)`H+G& Q׿LCC&7$gPL\jQA ,P1%R,$M$՚;WTmv,fn6L/;WNBT,~Ӄͷ +АVE ظh3VBAN1k?{"{׮_^<4OϥBʊG@T?EYaȈUVP`ct}nA6߫Qe5Fi(G<O4AJd;ë͋SEhƃf9LU@f >m+C?1-6R +AU+4(G ˽,S蟝3P3?{aJyG @`iP?%%%R0RLg(/wsPk!`w[-Q,y4!V8TB!"pgW}\YR3Vkmn4nQ &y&r͝[Td :\Б4̂jY z7mM˝㓵8ޗDI:j]FHT :1y#% "Ũom ^ƤUVQ(";ؙb6r$Ҋd|.v4&;J83B?i-jsuu֣QaR0FD%4W_LW{apP + y}~Ui[ ,_MgͽEɳkT"$EJ dHEi{^\UH[§[ uCl +bch".lVy pݬni'f%G]<6_~U&`1OFSo}甙k!ގ*  e`+=GpfM&G 2S}abL>e>]Z(>l hY ayE5&(f"~5ɔzw F׭T5eWvٙ-9~utF^HPffoA`'kQk薵A^vuM`mo +[ +A;snO'ǭqRF̄q#BQ")I^$()A ƀJ":b@-C-"9R %͒(ukƻ44 /Q=mYt~Wo3 +j(Av6JUԃ,{dԈsDJfc'3=7 zz!Lժ4MrمuDP\HJBC*JG&+:.)flCADD` E˂VU> KTryB(#Cvl/ P=&;2赋߹Xgctm xbETڱ\_ zPUvG8u<œ56D`خk5p!gr=% +k4)*ªZ\:ADg%Cc X\3ZD1skqqs I#[H@UI;V@ɳ{Zՠ Ԑ4 mI+]WH݅1xRlO0۫7F]mVmA:B u8mZz 2* @0|zrLZD! w쬘Fmѕ(呭W`~ Qy5Ǟҩ_w4^}bUL*Da`,B`ܪ&PQlB4PggVYC@&Ox1zhh= scu =4A LCm9}o +iei{IdM\HYX#4@RɺlKYX4̴mK2_@5vWm+ʻ1/.0C,ر*|jjݸB$¨'+"*T{tQ=3^=^C3y󏖈 HpU+gIW4'%g{[t63_A!Bf9tPVŲ~#歌<`$[8wҭwn,B'TPHq^s7_lFZά"@$ňհG^,_&k89j.-$=(PLKRpK! +)rR;o=H$.KS +B$N[[0"RL&Ųb.QS\䔗0s"~kKНNo-|}ҥaWȨő7𿻶XOioT=."z*W^;K8Y/_nFFe[_^QeFgJ H`^Xv{Q”:\<3DNd%ET-`1ҭ 7_ÞpLX^MW4'<Mۺl{PBꩶ~}<6О^uo6O_f֯cUJZY?&sEUHw1* + zr)PfU,XRgHjA%FhɄ?9I[&#wȺXo虭T Af+\-@^g'6c +ī5>H+6Ԯ:G >[YMRYVE%^هQ*0"`ޠPмt67gkh9,´1d080U!Pl_al nb݆ԛ1 r򲿚 lزctZ5'3cj}4vU181*^'==hLQ >LF{cc ‚2PY"'Je'RJdzt)NTSW=jɾ35 if'A_Z VpҪV7v\R_O/'{kAfEO(- f=n\nCzX6 +gpգ ^Ӵ 0bb| " r9GAHnM"[Rr!)=ƍQm?yxg2H%6Ⱗ5%HqiJ9nvWM6<:Ͳ~8b A}_7+t@Bh[NQs(u0ƑY5zs/έ57wzPm%TWpلеWkY ރ+[`ս87';d">)*M4 k[rq#XRN UVYd))"& \"+ՔJg}n EQe弞@B*2kja:F;'+o}+%' nUN[#8]Es{rՕf(|t&* TU(p3#l,řdX:?sJ$LIlJ5r:Jsk>(@E(Rx})<9?~t4'4{_NƜKJ73uv/W_÷q;B*HHiX_w8ʚ!ˡx,N\8 ~BXce5pm"VܡOj +`ȸBy媢T*]!6 j9M|? `Bsz/;oH\}`=w%U]|9w:ju޻(N,d<cu|R8hV!G,|$̒:|/J +TcO#w/E 9Y "_ 0Ä H"v@a,[YLO_ׯ3!mɗ㦗wF{ߣ/_{j~U-j`p7fwsnV9`-7lS._jEƊNT],OANs_B5(%C4)xJj~'M[eX嘻z'`" +1nezl=?rly5;ܜ3L2 >ql 8\ٚOƲ9"gX4?!>*2$U" X=ftɛԤ|c%]4ZPh +L&gEP)2-Z4ޫ7|<%QHRm,];{4iZnV TG +] V*xK@j.Cѓ >Xv{i `JbNuo&OrˊnH3.aƵB Qwчxgo$hbL "jw׼?f HiKe!*=<=L!jPQԽiPMО8lL->? 8[ :H%܊!*ixonP\l;5(IH”fRPD$&- +(H p 29[o&nP6z/J}a뀎 d!{ٙ\]Æ|5jR@厫+닇: a-gkKc͇[iKxIe:I@ @ ի@ *, $skJmg QIYq" XI-BCFh׈#*12AP+ "ηph6C1Aj +0UR 5wR)Z0ҥ+ѪXA3 +Jbxޒ`2"X0 ȈȢAD iJĆ3a_!wP`<߬foZq0􏟝N>K`Z#bVB Hi(ki#nҸ}~/A4 E+h8~UDfj:7*r["xQˈ@2{kd)"dY@hǒ5! 3U'ԯ6AR{2Nx1^rX!)CRA@>orq]&Rr{R:h!Vw☾'Op.V fQ1ΑAÑ5YEQl2FwgX}EQĵsTs4OZOF\N>bU*5,Ϫj< 8|mT+%t hdlۀ &)0Ujvфw3^v.van;FݺOF +|wbfdE~e(PYZ‹m,l +)ǻ-b& @Jq "P\,… OJV,NJ` +XbIIAr50[>j`[/7x,ȾD.XCkl k0@uP'e6ͮ U]IVFFl†DÓT'w]kio69H2A$S: & +i Ows~2"I Ehj(p v#>z dw0Txw +ON;@)/ a.\Es*7J=ijn"bO0I\|^:E!RUjҹCDP-@Q` +$P +`Ռ`:zV߁Mo`\Ѵ>9:]Z1`@9N'M%eBgZJ%l@* i/K듐(Z( |+cGS+aU"0yVPUOܣPy*\z߻==;yCPn߬m^E*"qLaԭ^]ƜX{TȈ81/DMٹ o|8ҁi FNvkndQGtc:\ޘL؉3ٓϮD-p)&E(a-b&qyP9LDjD3_ E8>Wra]y< SQ>hu}ˑŌ! 1퍯OfgU= ,^ +]hqkπ*ˤ=?\=k"gِe3:gN$DBYnK0qIJM/C~.+ tԸ) 5'@<bn,i?;ݩ[zB\r籮l٘UΝ{G4A9.UQ$gQԭW觀B =dQZ*aNÊJ{ђX +>-iJM\TMHD+AsBD3Qd#ޫH% `E`PBK& #M + +A,{WIb$.sI7D2E|ڪ[pTL3âty1&o +lJ6mЎ#qVĞ/r#z>h#U},3x`dgDZ,*Ih";~ +D"6U%&,20@2&% +Voک0:`/76dҞٷ9j, +z-o$F$t 8+RAӣTak{WlK' 8*RA!n#- +4FaQ,,EK7,t4|Ҝs|tA-%_7o^#2,a0VP;#o.W߬5%3Jk SZLh ^AA ]PMN=g"U^J̩5TIӍg" 3pS+mG>ZE$G<|ыL*8vc +~d%w]XZdu>7w2|UEP-A_48Fq4>Z g5WKO)$B4.@](~)QĻIiNw->vwgSEP2ȪPDHV{JL** VrKbBϓ{B 8,6# a%K|(D)]|,;+n{M1dVEYl{v}O:D!L96Dy4Iش``}A 6 nsdz$an #&LZ* P'IE$J [4KcZe`C 3VWy>ͶKݺ2pTЁ=èaey1 WL@j+VOcsA:qj:#4M&zUЀBO{\ׄBl#>nOg{[Q*' J9c"F_ RM실Lel SM~CUi@$Ͷ}$PA#H䲒Ox.àf@"!c@ԯt<!t}ZqV$!,$Lӈ)4üFY M'@ԟѪ%ovY;3SO4OAGcyJde=5ElBTڝsL *C$#xi+$I%vvf 33+L 4,@ؚl%HĪlNS4jj rrDn[⑓11V>]@F + +Ou[qhUrD;茎 `S yX<18@JҎ^(=GXEcʴiݟ3<2)b3#rA5.D`o%&{*"o`F+AhpBK V=4c^:T[A>H׊II ۺn= Cc).F4˫Nh(5>/xgVImL(o " P)tbMHK;IW;R@ JG` 3g\ ImֹM?Ā!ĤWd('n-G|?y2A 3ʢ3I =MTk9 cV 4ޤZY(I",oy"f +ܲP,~+gNIn߷qCu3\(wa$QiЯضJC//qөt0kUz)1<O{J D:oxQPtUUsҥz'͠05C;2<1P, dBI)Y FOtw ~}%scfq- 0JCtLka j^ފ6%Vds<TC)6h%9PJސ0BJK#{,7^_I: jK816N2Ttr +²~əV_̚B +Ń njWk>˧֬ Ce qQJMqcY1JTma5r0bskGbfTe⺐>2pEsD,RR ]se]""᥽"ԓU75ݣZߚau~ٍ{ 952+Tݬf*hF"U/̨f84|nna\x$jd4ӱ܀7v&nPDW¡$l= _s6X-kCޏo\Wk$hHDRfp|(YMuSk늃Ɣ&|Ǻ) @Bc2infR,S,xIJiW DsHnAp &["ZۤBLP +Ȃ;ǗJۣ_F* u*Ktk7qجkLwhmjwB8L%h!F/Dkd|"AY%oh<Ϛ|xI}łd𜴗q,\<[Y(֨8M]w8UY%kt?_V\X4"3@kd"9@dG_$xy+-ƅA 4Iq0e1iL[pPh!rUG?ziBh=P BDunŏ}{9T Jb+tv*v쬂 6BG$P r\<$x=0VXIC#]m+/ټTy'СK*s2|Ud> _>J#*R.D"͊B8ruRz=Ӫk=v0ڹaZa+' ̛ٝ[J.7**j&2#RY+C{4%qJXEdQXi@uΐ_U/YةSE5; ٠-~1H6h@+5Zx~;BC GIhP} !EՒLdePP1DsE$[.RXC齍ځzUCbH64e:ΨwJa(y[aXNGt  +OQxb<4 (VKO H|*99=((ȃ%Z)R:RLȜbWVi{ F4xb APA<[ri8o6Wq4X|IdquX|>2z\c kTHdzmN-:MM3G4JQA[\poqC2iX*Ƃ (nC3 >="EOy2X wek6c*ϕ(T˕b#1+AR^T$웩n";{2[m*UW5Me(BكJb܎L++Rpr51 x悩 ~ +;,s4D4sUߝ]`Uܢ[@l$(/;C=j, 0'<ҹ[cnqpt*jAn3(+_j|nӃTTA C$y#N5  4FŻr-ý;bSC5N* bLՌjv1V@k0Xldۀ0PRݖFH[.7)v#*î*n(`C(&>o؛*4BUd5 i[+3ss8qvCz2 3"x *jfSVų%Xf~^+ !8c9/ٰ%*:>41$ǼdzXѡkܑ?b$"oO:/ u^҄W8L,֣k iFvjucQl "B ]x0H"a:Bed %o"CʔU#IUR%WLi!jG[.Jʇ-B3Q*BU=5<-qf*'0u cwrf\d>Q ԣ-:@lĨX  L"C)ݢ)j(W"1a@fsaM"WW!?(|2 <72}N "Ȗ/ru-}*BL 8ǦN34&,mfoߺ>tGH4 [XXûCߣ!A@= 5E Ť.% 7l1+I82b=矷,OHQ@M:¦W:b:(\rDBL\6/'94_5POaDv555̈́ bH= ZF2)U;s%X#h.UJY"ѢmUs6E[Kv"QףDkh{$Ɯ,IW(/t:a""0%bx $E=v*tgLJxy?[^.\to24l>ؐ +>WkAYB+q'x+R5p8`rEɞ[Ya>Ki1BI$"ͺZ, )A< e&<+ݸyJ zPrG)'/4~LS A:!b\%g8sЬTf`8S Wǂˆ#:!1rOp1  fAwfµr˶䒖Z@Ȏ:۪ᖤB9I\QbMC Yqaq~*1@jϳzheycbe .جZiҸ0 H鷎{?5JH3#r$N@Datq,pF K>2Ű32zAp@iDU. +}xP5Dzs!PsN;km|ƅcs&VI:%92!|F"p]0GjUφF?}ctQ5Tj + ƠU:cQsb]':u0M +pE&NDgf_oN ZTGީif}Q].")̢|Ct t;m}|Έ8)Yi+bhnAd|ƌad</9fR?sK^%BS \rtt5+(x1klLr\YMi +vupA<zXjj'$.1Ч_/uxk֖3n2GQ7 .yzTFrD3 l}B DMw ƚ}[ymQ$QH F7 `ȗX@ӂH3~Q>AJ] + c軳S6?ԺCԿ +tIp:fRA-\UAS$?v2gFq;tnwo zDNVU.Ĝw +}l.~$RV0#n޸37;|7 \ +R+xiKut Edn9x4sOc f|_~GF2TP<[o zx"2]䨅,SSͦgg5–EtIp]#؝0OnUUwo1wG.~l +D %$G'6!2)n]ۈf^gQW8/R@v~vָݚ&vvTXV_fgǴπ{SI{5,ϞJ-Ŝr^rM9<ɳm{ΣJk\Rfa̷LZf d=EA+HYIZp)@bVm:H4YD5)pQjeQɑnHK759iE:\HwL j@n'%`o7 h[ +(ihi-(O-D҅n(ZY 8ߓ ?$f YgyjB$,uwi-0OHF{J߬\e~U?}>q¾c > {CGY[!ن^H:I a"t$͑3l* k뉓\]==k4ҶGt|J V:b@6$dDg<ҳJ4_u3DBK}AMs;24z1SjQ)$r%NW\DڶyjMGл}۟ T~k +7;80܏iDt}L\~Ha$F:\?EF5dmͷMQZ|Z/ ,3U_tBnrKԦEq>VT)ch%4ԕQr힦1,]A;A[%"aUVGWڅQWݍQ%gkиca2ӤL WIj-C--5/-Pޥk੩ո \!13RB0, S@+Fp"C GLĿ6LFa"z }=)$Al!ԝ4dyL 5USYޕUzRPg}595|brI3WY[w'%vvyvIRQ>I4e${zשBSj]/^NLBB3՞i)%9]݄Ya0?c۱ +듽|OF:wSimpleTest HTML \ No newline at end of file diff --git a/core/modules/migrate_drupal_ui/tests/src/Functional/d7/MigrateUpgrade7Test.php b/core/modules/migrate_drupal_ui/tests/src/Functional/d7/MigrateUpgrade7Test.php new file mode 100644 index 0000000..6bb46a9 --- /dev/null +++ b/core/modules/migrate_drupal_ui/tests/src/Functional/d7/MigrateUpgrade7Test.php @@ -0,0 +1,91 @@ +loadFixture(drupal_get_path('module', 'migrate_drupal') . '/tests/fixtures/drupal7.php'); + } + + /** + * {@inheritdoc} + */ + protected function getSourceBasePath() { + return __DIR__ . '/files'; + } + + /** + * {@inheritdoc} + */ + protected function getEntityCounts() { + return [ + 'aggregator_item' => 10, + 'aggregator_feed' => 1, + 'block' => 25, + 'block_content' => 1, + 'block_content_type' => 1, + 'comment' => 1, + 'comment_type' => 8, + // Module 'language' comes with 'en', 'und', 'zxx'. Migration adds 'is'. + 'configurable_language' => 4, + 'contact_form' => 3, + 'editor' => 2, + 'field_config' => 52, + 'field_storage_config' => 39, + 'file' => 2, + 'filter_format' => 7, + 'image_style' => 6, + 'language_content_settings' => 2, + 'migration' => 73, + 'node' => 3, + 'node_type' => 6, + 'rdf_mapping' => 7, + 'search_page' => 2, + 'shortcut' => 6, + 'shortcut_set' => 2, + 'action' => 16, + 'menu' => 6, + 'taxonomy_term' => 18, + 'taxonomy_vocabulary' => 4, + 'tour' => 4, + 'user' => 4, + 'user_role' => 3, + 'menu_link_content' => 7, + 'view' => 14, + 'date_format' => 11, + 'entity_form_display' => 18, + 'entity_form_mode' => 1, + 'entity_view_display' => 29, + 'entity_view_mode' => 14, + 'base_field_override' => 9, + ]; + } + + /** + * Executes all steps of migrations upgrade. + */ + public function testMigrateUpgrade() { + parent::testMigrateUpgrade(); + + // Ensure migrated users can log in. + $user = User::load(2); + $user->passRaw = 'a password'; + $this->drupalLogin($user); + } + +} diff --git a/core/modules/migrate_drupal_ui/tests/src/Functional/d7/files/sites/default/files/cube.jpeg b/core/modules/migrate_drupal_ui/tests/src/Functional/d7/files/sites/default/files/cube.jpeg new file mode 100644 index 0000000..652a7db --- /dev/null +++ b/core/modules/migrate_drupal_ui/tests/src/Functional/d7/files/sites/default/files/cube.jpeg @@ -0,0 +1 @@ +******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************** \ No newline at end of file diff --git a/core/modules/migrate_drupal_ui/tests/src/Functional/d7/files/sites/default/files/ds9.txt b/core/modules/migrate_drupal_ui/tests/src/Functional/d7/files/sites/default/files/ds9.txt new file mode 100644 index 0000000..b49b7f6 --- /dev/null +++ b/core/modules/migrate_drupal_ui/tests/src/Functional/d7/files/sites/default/files/ds9.txt @@ -0,0 +1,79 @@ + __ ___ ___ + ,' ,' | | `. `. + ,' ,' |===| `. `. + / // |___| \\ \ + / // |___| \\ \ + //// |___| \\\\ + / / || || \ \ + / / || || \ \ + /| | || || | |\ + || | | : o : | | || + | \| | .===. | |/ | + | |\ /| (___) |\ /| | + |__||.\ .-. // /,_._,\ \\ .-. /.||__| + |__||_.\ `-.\ //_ [:(|):] _\\ /.-' /._||__| + __/| ||___`._____ ___\\__/___/_ ||| _\___\__//___ _____.'___||_ |\__ +/___//__________/.-/_____________|.-.|_____________\-.\__________\\___\ +\___\\__\\\_____\`-\__\\\\__\____|_-_|____/_//_____/-'/__//______//__// + \|__||__..' // \ _ \__|||__/ _ / \\ `..__||__|/ + |__||_./ .-'/ \\ |(|)| // \`-. \..||__| + | || / `-' \\ \'/ // `-' \ || | + | |/ \| :(-): |/ \| | + | /| | : o : | |\ | + || | | |___| | | || + \| | || || | |/ + \ \ || || / / + \ \ ||___|| / / + \\\\ |___| //// + \ \\ |___| // / + \ \\ | | // / + `. `. |===| ,' ,' + `._`. |___| ,'_,' + + + _ _ + _____---' \_n_/ `---_____ + _ / ... ----------- ... \ _ + ( )-' . '::.\__ V __/.::' . `-( ) + _ .-' ':::. ____ \ / ____ .:::' `-. _ + ,-'.`' __.--' \ | | / `--.__ `'.`-. + / ''::.. \ || || / ..::'' \ + / ..... ,'\,' ||_|| `./`. ..... \ + / :::::' ,' | | `. '::::: \ + | '::: ,' | | `. :::' | + _/ :: / |___| \ :: \_ + (/ / ,-' `-. \ \) + _/ `. ,-' ooo oo `-. ,' \_ + | /`./ ,-'\ /`-. \.'\ | + | .: / / \ \_ __.---.__ _/ / \ \ :. | + .' :;: | _ / o \[ ' \ / ` ]/ \ _ | ::: `. + | ':: | ( `-. / | | \ ,-' ) | ::' | + |: ': | `-./ / ___ \ \,-' | :' :| +.':: ' | | / `-. .-' . `-. .-' \ o | | ' ::`. +| ::. | | o ,| `-. / \`_|_'/ \ .-' |. o | | .:: | + \ |_ |____| | ` / \ ' | |____| _| / + (| _] ]____[ |- ( (O) ) -| ]____[ [_ |) + /.: | | | | . \_ _/ . | | | | :.\ +| :' | | o `|-,-' \ /..|..\ / `-.-|' o | |. ': | +`. :: | | o \ .-' `-.___.-' `-. / o | | :: .' + | .:: | _.\ \| | | \/ /._ | ::. | + | ': | _.-' \ o \ | | / o / `-._ | :' | + `. __ |__.-'_ _.\ /[_.__ | | __._]\ o /._ _`-.__| __ .' + | \ \_.--''.' .-' \ / / `---' \ \ / `-. `.``--__/ / | + |_\ __ ,',-' `-./ o \,-' `-.`. __ /_| + \\ / .',' `-. oo .-. oo ,-' `.`. \ // + (\\ \ \ `-._| |_,-' / / //) + \\ ) \ (_) / ( // + / \/ `. ,' \/ \ + \ .::. `. ,' .::: / + \ ':::. `-./`. .'\.-' '''''' / + \ ''' /_ _ _\ ::.. / + `-.'::' `--.______| |______.--' ,-' + `-'`-._ .. .: .: _,-'`' + (_)-. ::. '':::: :::::: : ,-(_) + \_____ '' _ _ ' _____/ + ---._/ u \_.--- + +Used with permission from: +Orbital Space Station (Terok Nor - Deep Space 9) - Joe Reiss +https://startrekasciiart.blogspot.co.uk/2011/05/deep-space-nine.html diff --git a/core/tests/Drupal/Tests/BrowserTestBase.php b/core/tests/Drupal/Tests/BrowserTestBase.php index bd50c23..b4c55cd 100644 --- a/core/tests/Drupal/Tests/BrowserTestBase.php +++ b/core/tests/Drupal/Tests/BrowserTestBase.php @@ -1419,4 +1419,26 @@ protected function checkForMetaRefresh() { return FALSE; } + /** + * Transforms a nested array into a flat array suitable for BrowserTestBase::drupalPostForm(). + * + * @param array $values + * A multi-dimensional form values array to convert. + * + * @return array + * The flattened $edit array suitable for BrowserTestBase::drupalPostForm(). + */ + protected function translatePostValues(array $values) { + $edit = []; + // The easiest and most straightforward way to translate values suitable for + // BrowserTestBase::drupalPostForm() is to actually build the POST data string + // and convert the resulting key/value pairs back into a flat array. + $query = http_build_query($values); + foreach (explode('&', $query) as $item) { + list($key, $value) = explode('=', $item); + $edit[urldecode($key)] = urldecode($value); + } + return $edit; + } + }